I: pbuilder: network access will be disabled during build I: Current time: Sun Dec 5 07:50:09 +14 2021 I: pbuilder-time-stamp: 1638640209 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/buster-reproducible-base.tgz] I: copying local configuration I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [ironic_11.1.0-6.dsc] I: copying [./ironic_11.1.0.orig.tar.xz] I: copying [./ironic_11.1.0-6.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/root/.gnupg/trustedkeys.kbx': General error 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 dpkg-source: info: extracting ironic in ironic-11.1.0 dpkg-source: info: unpacking ironic_11.1.0.orig.tar.xz dpkg-source: info: unpacking ironic_11.1.0-6.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying adds-alembic.ini-in-MANIFEST.in.patch dpkg-source: info: applying Fix_async_keyword_for_Python.patch 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/858869/tmp/hooks/D01_modify_environment starting debug: Running on ionos11-amd64. I: Changing host+domainname to test build reproducibility I: Adding a custom variable just for the fun of it... I: Changing /bin/sh to bash Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash' I: Setting pbuilder2's login shell to /bin/bash I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other I: user script /srv/workspace/pbuilder/858869/tmp/hooks/D01_modify_environment finished I: user script /srv/workspace/pbuilder/858869/tmp/hooks/D02_print_environment starting I: set BASH=/bin/sh BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() BASH_LINENO=([0]="12" [1]="0") BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") BASH_VERSINFO=([0]="5" [1]="0" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") BASH_VERSION='5.0.3(1)-release' BUILDDIR=/build BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' BUILDUSERNAME=pbuilder2 BUILD_ARCH=amd64 DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=15' DIRSTACK=() DISTRIBUTION= EUID=0 FUNCNAME=([0]="Echo" [1]="main") GROUPS=() HOME=/root HOSTNAME=i-capture-the-hostname HOSTTYPE=x86_64 HOST_ARCH=amd64 IFS=' ' INVOCATION_ID=6db6693318914f06a420f728d3434b41 LANG=C LANGUAGE=et_EE:et LC_ALL=C MACHTYPE=x86_64-pc-linux-gnu MAIL=/var/mail/root OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path PBCURRENTCOMMANDLINEOPERATION=build PBUILDER_OPERATION=build PBUILDER_PKGDATADIR=/usr/share/pbuilder PBUILDER_PKGLIBDIR=/usr/lib/pbuilder PBUILDER_SYSCONFDIR=/etc PIPESTATUS=([0]="0") POSIXLY_CORRECT=y PPID=858869 PS4='+ ' PWD=/ SHELL=/bin/bash SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix SHLVL=3 SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/tmp.rfOXUL38RK/pbuilderrc_qAn3 --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.rfOXUL38RK/b2 --logfile b2/build.log ironic_11.1.0-6.dsc' SUDO_GID=111 SUDO_UID=106 SUDO_USER=jenkins TERM=unknown TZ=/usr/share/zoneinfo/Etc/GMT-14 UID=0 USER=root _='I: set' http_proxy=http://78.137.99.97:3128 I: uname -a Linux i-capture-the-hostname 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 GNU/Linux I: ls -l /bin total 5116 -rwxr-xr-x 1 root root 1168776 Apr 18 2019 bash -rwxr-xr-x 3 root root 38984 Jul 11 2019 bunzip2 -rwxr-xr-x 3 root root 38984 Jul 11 2019 bzcat lrwxrwxrwx 1 root root 6 Jul 11 2019 bzcmp -> bzdiff -rwxr-xr-x 1 root root 2227 Jul 11 2019 bzdiff lrwxrwxrwx 1 root root 6 Jul 11 2019 bzegrep -> bzgrep -rwxr-xr-x 1 root root 4877 Jun 25 2019 bzexe lrwxrwxrwx 1 root root 6 Jul 11 2019 bzfgrep -> bzgrep -rwxr-xr-x 1 root root 3641 Jul 11 2019 bzgrep -rwxr-xr-x 3 root root 38984 Jul 11 2019 bzip2 -rwxr-xr-x 1 root root 14328 Jul 11 2019 bzip2recover lrwxrwxrwx 1 root root 6 Jul 11 2019 bzless -> bzmore -rwxr-xr-x 1 root root 1297 Jul 11 2019 bzmore -rwxr-xr-x 1 root root 43744 Mar 1 2019 cat -rwxr-xr-x 1 root root 64320 Mar 1 2019 chgrp -rwxr-xr-x 1 root root 64288 Mar 1 2019 chmod -rwxr-xr-x 1 root root 72512 Mar 1 2019 chown -rwxr-xr-x 1 root root 146880 Mar 1 2019 cp -rwxr-xr-x 1 root root 121464 Jan 18 2019 dash -rwxr-xr-x 1 root root 109408 Mar 1 2019 date -rwxr-xr-x 1 root root 76712 Mar 1 2019 dd -rwxr-xr-x 1 root root 93744 Mar 1 2019 df -rwxr-xr-x 1 root root 138856 Mar 1 2019 dir -rwxr-xr-x 1 root root 84288 Jan 10 2019 dmesg lrwxrwxrwx 1 root root 8 Sep 27 2018 dnsdomainname -> hostname lrwxrwxrwx 1 root root 8 Sep 27 2018 domainname -> hostname -rwxr-xr-x 1 root root 39520 Mar 1 2019 echo -rwxr-xr-x 1 root root 28 Jan 8 2019 egrep -rwxr-xr-x 1 root root 35424 Mar 1 2019 false -rwxr-xr-x 1 root root 28 Jan 8 2019 fgrep -rwxr-xr-x 1 root root 68880 Jan 10 2019 findmnt -rwsr-xr-x 1 root root 34896 Apr 23 2020 fusermount -rwxr-xr-x 1 root root 198976 Jan 8 2019 grep -rwxr-xr-x 2 root root 2345 Jan 6 2019 gunzip -rwxr-xr-x 1 root root 6375 Jan 6 2019 gzexe -rwxr-xr-x 1 root root 98048 Jan 6 2019 gzip -rwxr-xr-x 1 root root 26696 Sep 27 2018 hostname -rwxr-xr-x 1 root root 68552 Mar 1 2019 ln -rwxr-xr-x 1 root root 56760 Jul 27 2018 login -rwxr-xr-x 1 root root 138856 Mar 1 2019 ls -rwxr-xr-x 1 root root 108624 Jan 10 2019 lsblk -rwxr-xr-x 1 root root 89088 Mar 1 2019 mkdir -rwxr-xr-x 1 root root 68544 Mar 1 2019 mknod -rwxr-xr-x 1 root root 43808 Mar 1 2019 mktemp -rwxr-xr-x 1 root root 43008 Jan 10 2019 more -rwsr-xr-x 1 root root 51280 Jan 10 2019 mount -rwxr-xr-x 1 root root 14408 Jan 10 2019 mountpoint -rwxr-xr-x 1 root root 138728 Mar 1 2019 mv lrwxrwxrwx 1 root root 8 Sep 27 2018 nisdomainname -> hostname lrwxrwxrwx 1 root root 14 Feb 15 2019 pidof -> /sbin/killall5 -rwxr-xr-x 1 root root 39616 Mar 1 2019 pwd lrwxrwxrwx 1 root root 4 Apr 18 2019 rbash -> bash -rwxr-xr-x 1 root root 47776 Mar 1 2019 readlink -rwxr-xr-x 1 root root 68416 Mar 1 2019 rm -rwxr-xr-x 1 root root 47776 Mar 1 2019 rmdir -rwxr-xr-x 1 root root 23312 Jan 22 2019 run-parts -rwxr-xr-x 1 root root 122224 Dec 23 2018 sed lrwxrwxrwx 1 root root 4 Dec 5 07:50 sh -> bash lrwxrwxrwx 1 root root 4 Nov 8 11:58 sh.distrib -> dash -rwxr-xr-x 1 root root 39552 Mar 1 2019 sleep -rwxr-xr-x 1 root root 80672 Mar 1 2019 stty -rwsr-xr-x 1 root root 63568 Jan 10 2019 su -rwxr-xr-x 1 root root 35488 Mar 1 2019 sync -rwxr-xr-x 1 root root 445560 Apr 24 2019 tar -rwxr-xr-x 1 root root 14440 Jan 22 2019 tempfile -rwxr-xr-x 1 root root 97152 Mar 1 2019 touch -rwxr-xr-x 1 root root 35424 Mar 1 2019 true -rwxr-xr-x 1 root root 14328 Apr 23 2020 ulockmgr_server -rwsr-xr-x 1 root root 34888 Jan 10 2019 umount -rwxr-xr-x 1 root root 39584 Mar 1 2019 uname -rwxr-xr-x 2 root root 2345 Jan 6 2019 uncompress -rwxr-xr-x 1 root root 138856 Mar 1 2019 vdir -rwxr-xr-x 1 root root 34896 Jan 10 2019 wdctl -rwxr-xr-x 1 root root 946 Jan 22 2019 which lrwxrwxrwx 1 root root 8 Sep 27 2018 ypdomainname -> hostname -rwxr-xr-x 1 root root 1983 Jan 6 2019 zcat -rwxr-xr-x 1 root root 1677 Jan 6 2019 zcmp -rwxr-xr-x 1 root root 5879 Jan 6 2019 zdiff -rwxr-xr-x 1 root root 29 Jan 6 2019 zegrep -rwxr-xr-x 1 root root 29 Jan 6 2019 zfgrep -rwxr-xr-x 1 root root 2080 Jan 6 2019 zforce -rwxr-xr-x 1 root root 7584 Jan 6 2019 zgrep -rwxr-xr-x 1 root root 2205 Jan 6 2019 zless -rwxr-xr-x 1 root root 1841 Jan 6 2019 zmore -rwxr-xr-x 1 root root 4552 Jan 6 2019 znew I: user script /srv/workspace/pbuilder/858869/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper (>= 10), dh-python, openstack-pkg-tools (>= 74~), po-debconf, python3-all, python3-pbr (>= 2.0.0), python3-setuptools, python3-sphinx (>= 1.6.2), alembic (>= 0.8.10), python3-amqplib, python3-automaton (>= 1.9.0), python3-babel, python3-bashate, python3-cinderclient (>= 1:3.3.0), python3-coverage, python3-doc8, python3-dracclient, python3-eventlet, python3-fixtures (>= 3.0.0), python3-futurist (>= 1.2.0), python3-glanceclient (>= 1:2.8.0), python3-hacking (>= 0.11.0), python3-ironic-inspector-client, python3-ironic-lib (>= 2.14.0), python3-iso8601 (>= 0.1.11), python3-jinja2 (>= 2.10), python3-jsonpatch, python3-jsonschema (>= 2.6.0), python3-keystoneauth1 (>= 3.4.0), python3-keystonemiddleware (>= 4.17.0), python3-mock, python3-mysqldb, python3-neutronclient (>= 1:6.7.0), python3-openstackdocstheme (>= 1.18.1), python3-os-api-ref (>= 1.4.0), python3-os-traits (>= 0.4.0), python3-oslo.concurrency (>= 3.26.0), python3-oslo.config (>= 1:5.2.0), python3-oslo.context (>= 2.19.2), python3-oslo.db (>= 4.27.0), python3-oslo.i18n (>= 3.15.3), python3-oslo.log (>= 3.36.0), python3-oslo.messaging (>= 5.29.0), python3-oslo.middleware (>= 3.31.0), python3-oslo.policy (>= 1.30.0), python3-oslo.reports (>= 1.18.0), python3-oslo.rootwrap (>= 5.8.0), python3-oslo.serialization (>= 2.18.0), python3-oslo.service (>= 1.24.0), python3-oslo.utils (>= 3.33.0), python3-oslo.versionedobjects (>= 1.31.2), python3-oslotest (>= 1:3.2.0), python3-osprofiler (>= 1.5.0), python3-pecan, python3-pil, python3-proliantutils (>= 2.6.0), python3-psutil, python3-psycopg2 (>= 2.6.2), python3-pyghmi (>= 1.0.22), python3-pygments, python3-pymysql, python3-pysnmp4, python3-requests (>= 2.14.2), python3-retrying, python3-rfc3986, python3-scciclient (>= 0.7.1), python3-sendfile, python3-six, python3-sphinxcontrib-pecanwsme, python3-sphinxcontrib.apidoc, python3-sphinxcontrib.seqdiag, python3-sqlalchemy, python3-stestr, python3-stevedore (>= 1.20.0), python3-swiftclient (>= 1:3.2.0), python3-testresources (>= 2.0.0), python3-testscenarios, python3-testtools (>= 2.2.0), python3-tooz (>= 1.47.0), python3-tz, python3-webob (>= 1.7.1), python3-webtest (>= 2.0.27), python3-wsme Conflicts: python-pysqlite2 dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19195 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper (>= 10); however: Package debhelper is not installed. pbuilder-satisfydepends-dummy depends on dh-python; however: Package dh-python is not installed. pbuilder-satisfydepends-dummy depends on openstack-pkg-tools (>= 74~); however: Package openstack-pkg-tools is not installed. pbuilder-satisfydepends-dummy depends on po-debconf; however: Package po-debconf is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-pbr (>= 2.0.0); however: Package python3-pbr is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinx (>= 1.6.2); however: Package python3-sphinx is not installed. pbuilder-satisfydepends-dummy depends on alembic (>= 0.8.10); however: Package alembic is not installed. pbuilder-satisfydepends-dummy depends on python3-amqplib; however: Package python3-amqplib is not installed. pbuilder-satisfydepends-dummy depends on python3-automaton (>= 1.9.0); however: Package python3-automaton is not installed. pbuilder-satisfydepends-dummy depends on python3-babel; however: Package python3-babel is not installed. pbuilder-satisfydepends-dummy depends on python3-bashate; however: Package python3-bashate is not installed. pbuilder-satisfydepends-dummy depends on python3-cinderclient (>= 1:3.3.0); however: Package python3-cinderclient is not installed. pbuilder-satisfydepends-dummy depends on python3-coverage; however: Package python3-coverage is not installed. pbuilder-satisfydepends-dummy depends on python3-doc8; however: Package python3-doc8 is not installed. pbuilder-satisfydepends-dummy depends on python3-dracclient; however: Package python3-dracclient is not installed. pbuilder-satisfydepends-dummy depends on python3-eventlet; however: Package python3-eventlet is not installed. pbuilder-satisfydepends-dummy depends on python3-fixtures (>= 3.0.0); however: Package python3-fixtures is not installed. pbuilder-satisfydepends-dummy depends on python3-futurist (>= 1.2.0); however: Package python3-futurist is not installed. pbuilder-satisfydepends-dummy depends on python3-glanceclient (>= 1:2.8.0); however: Package python3-glanceclient is not installed. pbuilder-satisfydepends-dummy depends on python3-hacking (>= 0.11.0); however: Package python3-hacking is not installed. pbuilder-satisfydepends-dummy depends on python3-ironic-inspector-client; however: Package python3-ironic-inspector-client is not installed. pbuilder-satisfydepends-dummy depends on python3-ironic-lib (>= 2.14.0); however: Package python3-ironic-lib is not installed. pbuilder-satisfydepends-dummy depends on python3-iso8601 (>= 0.1.11); however: Package python3-iso8601 is not installed. pbuilder-satisfydepends-dummy depends on python3-jinja2 (>= 2.10); however: Package python3-jinja2 is not installed. pbuilder-satisfydepends-dummy depends on python3-jsonpatch; however: Package python3-jsonpatch is not installed. pbuilder-satisfydepends-dummy depends on python3-jsonschema (>= 2.6.0); however: Package python3-jsonschema is not installed. pbuilder-satisfydepends-dummy depends on python3-keystoneauth1 (>= 3.4.0); however: Package python3-keystoneauth1 is not installed. pbuilder-satisfydepends-dummy depends on python3-keystonemiddleware (>= 4.17.0); however: Package python3-keystonemiddleware is not installed. pbuilder-satisfydepends-dummy depends on python3-mock; however: Package python3-mock is not installed. pbuilder-satisfydepends-dummy depends on python3-mysqldb; however: Package python3-mysqldb is not installed. pbuilder-satisfydepends-dummy depends on python3-neutronclient (>= 1:6.7.0); however: Package python3-neutronclient is not installed. pbuilder-satisfydepends-dummy depends on python3-openstackdocstheme (>= 1.18.1); however: Package python3-openstackdocstheme is not installed. pbuilder-satisfydepends-dummy depends on python3-os-api-ref (>= 1.4.0); however: Package python3-os-api-ref is not installed. pbuilder-satisfydepends-dummy depends on python3-os-traits (>= 0.4.0); however: Package python3-os-traits is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.concurrency (>= 3.26.0); however: Package python3-oslo.concurrency is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.config (>= 1:5.2.0); however: Package python3-oslo.config is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.context (>= 2.19.2); however: Package python3-oslo.context is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.db (>= 4.27.0); however: Package python3-oslo.db is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.i18n (>= 3.15.3); however: Package python3-oslo.i18n is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.log (>= 3.36.0); however: Package python3-oslo.log is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.messaging (>= 5.29.0); however: Package python3-oslo.messaging is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.middleware (>= 3.31.0); however: Package python3-oslo.middleware is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.policy (>= 1.30.0); however: Package python3-oslo.policy is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.reports (>= 1.18.0); however: Package python3-oslo.reports is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.rootwrap (>= 5.8.0); however: Package python3-oslo.rootwrap is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.serialization (>= 2.18.0); however: Package python3-oslo.serialization is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.service (>= 1.24.0); however: Package python3-oslo.service is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.utils (>= 3.33.0); however: Package python3-oslo.utils is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.versionedobjects (>= 1.31.2); however: Package python3-oslo.versionedobjects is not installed. pbuilder-satisfydepends-dummy depends on python3-oslotest (>= 1:3.2.0); however: Package python3-oslotest is not installed. pbuilder-satisfydepends-dummy depends on python3-osprofiler (>= 1.5.0); however: Package python3-osprofiler is not installed. pbuilder-satisfydepends-dummy depends on python3-pecan; however: Package python3-pecan is not installed. pbuilder-satisfydepends-dummy depends on python3-pil; however: Package python3-pil is not installed. pbuilder-satisfydepends-dummy depends on python3-proliantutils (>= 2.6.0); however: Package python3-proliantutils is not installed. pbuilder-satisfydepends-dummy depends on python3-psutil; however: Package python3-psutil is not installed. pbuilder-satisfydepends-dummy depends on python3-psycopg2 (>= 2.6.2); however: Package python3-psycopg2 is not installed. pbuilder-satisfydepends-dummy depends on python3-pyghmi (>= 1.0.22); however: Package python3-pyghmi is not installed. pbuilder-satisfydepends-dummy depends on python3-pygments; however: Package python3-pygments is not installed. pbuilder-satisfydepends-dummy depends on python3-pymysql; however: Package python3-pymysql is not installed. pbuilder-satisfydepends-dummy depends on python3-pysnmp4; however: Package python3-pysnmp4 is not installed. pbuilder-satisfydepends-dummy depends on python3-requests (>= 2.14.2); however: Package python3-requests is not installed. pbuilder-satisfydepends-dummy depends on python3-retrying; however: Package python3-retrying is not installed. pbuilder-satisfydepends-dummy depends on python3-rfc3986; however: Package python3-rfc3986 is not installed. pbuilder-satisfydepends-dummy depends on python3-scciclient (>= 0.7.1); however: Package python3-scciclient is not installed. pbuilder-satisfydepends-dummy depends on python3-sendfile; however: Package python3-sendfile is not installed. pbuilder-satisfydepends-dummy depends on python3-six; however: Package python3-six is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinxcontrib-pecanwsme; however: Package python3-sphinxcontrib-pecanwsme is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinxcontrib.apidoc; however: Package python3-sphinxcontrib.apidoc is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinxcontrib.seqdiag; however: Package python3-sphinxcontrib.seqdiag is not installed. pbuilder-satisfydepends-dummy depends on python3-sqlalchemy; however: Package python3-sqlalchemy is not installed. pbuilder-satisfydepends-dummy depends on python3-stestr; however: Package python3-stestr is not installed. pbuilder-satisfydepends-dummy depends on python3-stevedore (>= 1.20.0); however: Package python3-stevedore is not installed. pbuilder-satisfydepends-dummy depends on python3-swiftclient (>= 1:3.2.0); however: Package python3-swiftclient is not installed. pbuilder-satisfydepends-dummy depends on python3-testresources (>= 2.0.0); however: Package python3-testresources is not installed. pbuilder-satisfydepends-dummy depends on python3-testscenarios; however: Package python3-testscenarios is not installed. pbuilder-satisfydepends-dummy depends on python3-testtools (>= 2.2.0); however: Package python3-testtools is not installed. pbuilder-satisfydepends-dummy depends on python3-tooz (>= 1.47.0); however: Package python3-tooz is not installed. pbuilder-satisfydepends-dummy depends on python3-tz; however: Package python3-tz is not installed. pbuilder-satisfydepends-dummy depends on python3-webob (>= 1.7.1); however: Package python3-webob is not installed. pbuilder-satisfydepends-dummy depends on python3-webtest (>= 2.0.27); however: Package python3-webtest is not installed. pbuilder-satisfydepends-dummy depends on python3-wsme; however: Package python3-wsme is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: alembic{a} autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdmainutils{a} ca-certificates{a} dbus{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} docutils-common{a} dwz{a} file{a} flake8{a} fonts-glyphicons-halflings{a} gettext{a} gettext-base{a} groff-base{a} ieee-data{a} intltool-debian{a} jq{a} libapparmor1{a} libarchive-zip-perl{a} libbsd0{a} libcroco3{a} libdbus-1-3{a} libelf1{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libfreetype6{a} libglib2.0-0{a} libgssapi-krb5-2{a} libice6{a} libicu63{a} libimagequant0{a} libjbig0{a} libjpeg62-turbo{a} libjq1{a} libjs-bootstrap{a} libjs-jquery{a} libjs-sphinxdoc{a} libjs-underscore{a} libk5crypto3{a} libkeyutils1{a} libkrb5-3{a} libkrb5support0{a} liblcms2-2{a} libldap-2.4-2{a} libldap-common{a} libmagic-mgc{a} libmagic1{a} libmariadb3{a} libmpdec2{a} libncurses6{a} libnorm1{a} libonig5{a} libpcre2-8-0{a} libpgm-5.2-0{a} libpipeline1{a} libpng16-16{a} libpq5{a} libprocps7{a} libpsl5{a} libpython-stdlib{a} libpython2-stdlib{a} libpython2.7-minimal{a} libpython2.7-stdlib{a} libpython3-stdlib{a} libpython3.7-minimal{a} libpython3.7-stdlib{a} libreadline7{a} libsasl2-2{a} libsasl2-modules-db{a} libsigsegv2{a} libsm6{a} libsodium23{a} libssl1.1{a} libsubunit-perl{a} libtiff5{a} libtool{a} libuchardet0{a} libwebp6{a} libwebpdemux2{a} libwebpmux3{a} libx11-6{a} libx11-data{a} libxau6{a} libxcb1{a} libxdmcp6{a} libxext6{a} libxml2{a} libxmu6{a} libxslt1.1{a} libxt6{a} libyaml-0-2{a} libzmq5{a} lsb-base{a} m4{a} man-db{a} mariadb-common{a} mime-support{a} mysql-common{a} netbase{a} openssl{a} openstack-pkg-tools{a} po-debconf{a} procps{a} pycadf-common{a} pyflakes3{a} python{a} python-babel-localedata{a} python-extras{a} python-fixtures{a} python-linecache2{a} python-mimeparse{a} python-minimal{a} python-netaddr{a} python-os-api-ref-common{a} python-pastedeploy-tpl{a} python-pbr{a} python-pkg-resources{a} python-setuptools{a} python-six{a} python-subunit{a} python-testtools{a} python-traceback2{a} python-unittest2{a} python2{a} python2-minimal{a} python2.7{a} python2.7-minimal{a} python3{a} python3-alabaster{a} python3-alembic{a} python3-all{a} python3-amqp{a} python3-amqplib{a} python3-anyjson{a} python3-appdirs{a} python3-asn1crypto{a} python3-automaton{a} python3-babel{a} python3-bashate{a} python3-blinker{a} python3-blockdiag{a} python3-bs4{a} python3-cachetools{a} python3-certifi{a} python3-cffi-backend{a} python3-chardet{a} python3-cinderclient{a} python3-cliff{a} python3-cmd2{a} python3-contextlib2{a} python3-coverage{a} python3-crypto{a} python3-cryptography{a} python3-dateutil{a} python3-dbus{a} python3-debtcollector{a} python3-decorator{a} python3-deprecation{a} python3-distutils{a} python3-doc8{a} python3-docutils{a} python3-dogpile.cache{a} python3-dracclient{a} python3-dulwich{a} python3-editor{a} python3-entrypoints{a} python3-eventlet{a} python3-extras{a} python3-fasteners{a} python3-fixtures{a} python3-flake8{a} python3-funcparserlib{a} python3-funcsigs{a} python3-future{a} python3-futurist{a} python3-glanceclient{a} python3-greenlet{a} python3-hacking{a} python3-idna{a} python3-imagesize{a} python3-ironic-inspector-client{a} python3-ironic-lib{a} python3-iso8601{a} python3-jinja2{a} python3-jmespath{a} python3-json-pointer{a} python3-jsonpatch{a} python3-jsonschema{a} python3-jwt{a} python3-kafka{a} python3-kazoo{a} python3-keyring{a} python3-keystoneauth1{a} python3-keystoneclient{a} python3-keystonemiddleware{a} python3-kombu{a} python3-lib2to3{a} python3-linecache2{a} python3-logutils{a} python3-lxml{a} python3-mako{a} python3-markupsafe{a} python3-mccabe{a} python3-memcache{a} python3-migrate{a} python3-mimeparse{a} python3-minimal{a} python3-mock{a} python3-monotonic{a} python3-mox3{a} python3-msgpack{a} python3-munch{a} python3-mysqldb{a} python3-netaddr{a} python3-netifaces{a} python3-neutronclient{a} python3-oauthlib{a} python3-openssl{a} python3-openstackdocstheme{a} python3-openstacksdk{a} python3-os-api-ref{a} python3-os-client-config{a} python3-os-service-types{a} python3-os-traits{a} python3-osc-lib{a} python3-oslo.cache{a} python3-oslo.concurrency{a} python3-oslo.config{a} python3-oslo.context{a} python3-oslo.db{a} python3-oslo.i18n{a} python3-oslo.log{a} python3-oslo.messaging{a} python3-oslo.middleware{a} python3-oslo.policy{a} python3-oslo.reports{a} python3-oslo.rootwrap{a} python3-oslo.serialization{a} python3-oslo.service{a} python3-oslo.utils{a} python3-oslo.versionedobjects{a} python3-oslotest{a} python3-osprofiler{a} python3-packaging{a} python3-paste{a} python3-pastedeploy{a} python3-pbr{a} python3-pecan{a} python3-pep8{a} python3-pil{a} python3-pkg-resources{a} python3-ply{a} python3-prettytable{a} python3-proliantutils{a} python3-psutil{a} python3-psycopg2{a} python3-pyasn1{a} python3-pycadf{a} python3-pycodestyle{a} python3-pycryptodome{a} python3-pyflakes{a} python3-pyghmi{a} python3-pygments{a} python3-pyinotify{a} python3-pymemcache{a} python3-pymysql{a} python3-pyparsing{a} python3-pyperclip{a} python3-pysmi{a} python3-pysnmp4{a} python3-redis{a} python3-reportlab{a} python3-reportlab-accel{a} python3-repoze.lru{a} python3-requests{a} python3-requestsexceptions{a} python3-restructuredtext-lint{a} python3-retrying{a} python3-rfc3986{a} python3-roman{a} python3-routes{a} python3-scciclient{a} python3-secretstorage{a} python3-sendfile{a} python3-seqdiag{a} python3-setuptools{a} python3-simplegeneric{a} python3-simplejson{a} python3-singledispatch{a} python3-six{a} python3-soupsieve{a} python3-sphinx{a} python3-sphinxcontrib-pecanwsme{a} python3-sphinxcontrib.apidoc{a} python3-sphinxcontrib.httpdomain{a} python3-sphinxcontrib.seqdiag{a} python3-sqlalchemy{a} python3-sqlparse{a} python3-statsd{a} python3-stestr{a} python3-stevedore{a} python3-subunit{a} python3-sushy{a} python3-swiftclient{a} python3-tempita{a} python3-tenacity{a} python3-testresources{a} python3-testscenarios{a} python3-testtools{a} python3-tooz{a} python3-traceback2{a} python3-tz{a} python3-unicodecsv{a} python3-unittest2{a} python3-urllib3{a} python3-vine{a} python3-voluptuous{a} python3-waitress{a} python3-warlock{a} python3-wcwidth{a} python3-webcolors{a} python3-webob{a} python3-webtest{a} python3-wrapt{a} python3-wsme{a} python3-yaml{a} python3-zake{a} python3-zmq{a} python3-zope.interface{a} python3.7{a} python3.7-minimal{a} readline-common{a} sensible-utils{a} sgml-base{a} sphinx-common{a} subunit{a} sudo{a} wget{a} x11-common{a} xclip{a} xml-core{a} The following packages are RECOMMENDED but will NOT be installed: autopkgtest javascript-common krb5-locales libarchive-cpio-perl libglib2.0-data libgpm2 libjs-jquery-isonscreen libjs-jquery-tablesorter libjs-jquery-throttle-debounce libltdl-dev libmail-sendmail-perl libpaper-utils libsasl2-modules madison-lite pristine-tar psmisc publicsuffix pyflakes python-junitxml python3-fastimport python3-gi python3-html5lib python3-olefile python3-pastescript python3-renderpm python3-sqlalchemy-ext shared-mime-info xauth xdg-user-dirs 0 packages upgraded, 347 newly installed, 0 to remove and 0 not upgraded. Need to get 71.8 MB of archives. After unpacking 303 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian buster/main amd64 libbsd0 amd64 0.9.1-2+deb10u1 [99.5 kB] Get: 2 http://deb.debian.org/debian buster/main amd64 bsdmainutils amd64 11.1.2+b1 [191 kB] Get: 3 http://deb.debian.org/debian buster/main amd64 libuchardet0 amd64 0.0.6-3 [64.9 kB] Get: 4 http://deb.debian.org/debian buster/main amd64 groff-base amd64 1.22.4-3+deb10u1 [916 kB] Get: 5 http://deb.debian.org/debian buster/main amd64 libpipeline1 amd64 1.5.1-2 [31.2 kB] Get: 6 http://deb.debian.org/debian buster/main amd64 man-db amd64 2.8.5-2 [1274 kB] Get: 7 http://deb.debian.org/debian buster/main amd64 libpython2.7-minimal amd64 2.7.16-2+deb10u1 [395 kB] Get: 8 http://deb.debian.org/debian buster/main amd64 python2.7-minimal amd64 2.7.16-2+deb10u1 [1369 kB] Get: 9 http://deb.debian.org/debian buster/main amd64 python2-minimal amd64 2.7.16-1 [41.4 kB] Get: 10 http://deb.debian.org/debian buster/main amd64 python-minimal amd64 2.7.16-1 [21.0 kB] Get: 11 http://deb.debian.org/debian buster/main amd64 libssl1.1 amd64 1.1.1d-0+deb10u7 [1539 kB] Get: 12 http://deb.debian.org/debian buster/main amd64 mime-support all 3.62 [37.2 kB] Get: 13 http://deb.debian.org/debian buster/main amd64 libexpat1 amd64 2.2.6-2+deb10u1 [106 kB] Get: 14 http://deb.debian.org/debian buster/main amd64 readline-common all 7.0-5 [70.6 kB] Get: 15 http://deb.debian.org/debian buster/main amd64 libreadline7 amd64 7.0-5 [151 kB] Get: 16 http://deb.debian.org/debian buster/main amd64 libpython2.7-stdlib amd64 2.7.16-2+deb10u1 [1912 kB] Get: 17 http://deb.debian.org/debian buster/main amd64 python2.7 amd64 2.7.16-2+deb10u1 [305 kB] Get: 18 http://deb.debian.org/debian buster/main amd64 libpython2-stdlib amd64 2.7.16-1 [20.8 kB] Get: 19 http://deb.debian.org/debian buster/main amd64 libpython-stdlib amd64 2.7.16-1 [20.8 kB] Get: 20 http://deb.debian.org/debian buster/main amd64 python2 amd64 2.7.16-1 [41.6 kB] Get: 21 http://deb.debian.org/debian buster/main amd64 python amd64 2.7.16-1 [22.8 kB] Get: 22 http://deb.debian.org/debian buster/main amd64 libpython3.7-minimal amd64 3.7.3-2+deb10u3 [589 kB] Get: 23 http://deb.debian.org/debian buster/main amd64 python3.7-minimal amd64 3.7.3-2+deb10u3 [1737 kB] Get: 24 http://deb.debian.org/debian buster/main amd64 python3-minimal amd64 3.7.3-1 [36.6 kB] Get: 25 http://deb.debian.org/debian buster/main amd64 libmpdec2 amd64 2.4.2-2 [87.2 kB] Get: 26 http://deb.debian.org/debian buster/main amd64 libpython3.7-stdlib amd64 3.7.3-2+deb10u3 [1734 kB] Get: 27 http://deb.debian.org/debian buster/main amd64 python3.7 amd64 3.7.3-2+deb10u3 [330 kB] Get: 28 http://deb.debian.org/debian buster/main amd64 libpython3-stdlib amd64 3.7.3-1 [20.0 kB] Get: 29 http://deb.debian.org/debian buster/main amd64 python3 amd64 3.7.3-1 [61.5 kB] Get: 30 http://deb.debian.org/debian buster/main amd64 python3-pyparsing all 2.2.0+dfsg1-2 [89.6 kB] Get: 31 http://deb.debian.org/debian buster/main amd64 libxau6 amd64 1:1.0.8-1+b2 [19.9 kB] Get: 32 http://deb.debian.org/debian buster/main amd64 libxdmcp6 amd64 1:1.1.2-3 [26.3 kB] Get: 33 http://deb.debian.org/debian buster/main amd64 libxcb1 amd64 1.13.1-2 [137 kB] Get: 34 http://deb.debian.org/debian buster/main amd64 libx11-data all 2:1.6.7-1+deb10u2 [299 kB] Get: 35 http://deb.debian.org/debian buster/main amd64 libx11-6 amd64 2:1.6.7-1+deb10u2 [757 kB] Get: 36 http://deb.debian.org/debian buster/main amd64 libxext6 amd64 2:1.3.3-1+b2 [52.5 kB] Get: 37 http://deb.debian.org/debian buster/main amd64 lsb-base all 10.2019051400 [28.4 kB] Get: 38 http://deb.debian.org/debian buster/main amd64 x11-common all 1:7.7+19 [251 kB] Get: 39 http://deb.debian.org/debian buster/main amd64 libice6 amd64 2:1.0.9-2 [58.7 kB] Get: 40 http://deb.debian.org/debian buster/main amd64 libsm6 amd64 2:1.2.3-1 [35.1 kB] Get: 41 http://deb.debian.org/debian buster/main amd64 libxt6 amd64 1:1.1.5-1+b3 [190 kB] Get: 42 http://deb.debian.org/debian buster/main amd64 libxmu6 amd64 2:1.1.2-2+b3 [60.8 kB] Get: 43 http://deb.debian.org/debian buster/main amd64 xclip amd64 0.13-1 [23.2 kB] Get: 44 http://deb.debian.org/debian buster/main amd64 python3-pyperclip all 1.6.4-1 [9936 B] Get: 45 http://deb.debian.org/debian buster/main amd64 python3-six all 1.12.0-1 [15.7 kB] Get: 46 http://deb.debian.org/debian buster/main amd64 python3-wcwidth all 0.1.7+dfsg1-3 [15.0 kB] Get: 47 http://deb.debian.org/debian buster/main amd64 python3-cmd2 all 0.8.5-2 [56.7 kB] Get: 48 http://deb.debian.org/debian buster/main amd64 sgml-base all 1.29 [14.8 kB] Get: 49 http://deb.debian.org/debian buster/main amd64 netbase all 5.6 [19.4 kB] Get: 50 http://deb.debian.org/debian buster/main amd64 libncurses6 amd64 6.1+20181013-2+deb10u2 [102 kB] Get: 51 http://deb.debian.org/debian buster/main amd64 libprocps7 amd64 2:3.3.15-2 [61.7 kB] Get: 52 http://deb.debian.org/debian buster/main amd64 procps amd64 2:3.3.15-2 [259 kB] Get: 53 http://deb.debian.org/debian buster/main amd64 sensible-utils all 0.0.12 [15.8 kB] Get: 54 http://deb.debian.org/debian buster/main amd64 libapparmor1 amd64 2.13.2-10 [94.7 kB] Get: 55 http://deb.debian.org/debian buster/main amd64 libdbus-1-3 amd64 1.12.20-0+deb10u1 [215 kB] Get: 56 http://deb.debian.org/debian buster/main amd64 dbus amd64 1.12.20-0+deb10u1 [236 kB] Get: 57 http://deb.debian.org/debian buster/main amd64 libmagic-mgc amd64 1:5.35-4+deb10u2 [242 kB] Get: 58 http://deb.debian.org/debian buster/main amd64 libmagic1 amd64 1:5.35-4+deb10u2 [118 kB] Get: 59 http://deb.debian.org/debian buster/main amd64 file amd64 1:5.35-4+deb10u2 [66.4 kB] Get: 60 http://deb.debian.org/debian buster/main amd64 gettext-base amd64 0.19.8.1-9 [123 kB] Get: 61 http://deb.debian.org/debian buster/main amd64 libpcre2-8-0 amd64 10.32-5 [213 kB] Get: 62 http://deb.debian.org/debian buster/main amd64 libpsl5 amd64 0.20.2-2 [53.7 kB] Get: 63 http://deb.debian.org/debian buster/main amd64 wget amd64 1.20.1-1.1 [902 kB] Get: 64 http://deb.debian.org/debian buster/main amd64 python3-pkg-resources all 40.8.0-1 [153 kB] Get: 65 http://deb.debian.org/debian buster/main amd64 python3-dateutil all 2.7.3-3 [64.5 kB] Get: 66 http://deb.debian.org/debian buster/main amd64 python3-lib2to3 all 3.7.3-1 [76.7 kB] Get: 67 http://deb.debian.org/debian buster/main amd64 python3-distutils all 3.7.3-1 [142 kB] Get: 68 http://deb.debian.org/debian buster/main amd64 python3-editor all 1.0.3-1 [4928 B] Get: 69 http://deb.debian.org/debian buster/main amd64 python3-markupsafe amd64 1.1.0-1 [14.8 kB] Get: 70 http://deb.debian.org/debian buster/main amd64 python3-mako all 1.0.7+ds1-1 [61.5 kB] Get: 71 http://deb.debian.org/debian buster/main amd64 python3-sqlalchemy all 1.2.18+ds1-2 [727 kB] Get: 72 http://deb.debian.org/debian buster/main amd64 python3-alembic all 1.0.0-3 [110 kB] Get: 73 http://deb.debian.org/debian buster/main amd64 libjs-jquery all 3.3.1~dfsg-3+deb10u1 [332 kB] Get: 74 http://deb.debian.org/debian buster/main amd64 libjs-underscore all 1.9.1~dfsg-1+deb10u1 [100.0 kB] Get: 75 http://deb.debian.org/debian buster/main amd64 libjs-sphinxdoc all 1.8.4-1 [95.9 kB] Get: 76 http://deb.debian.org/debian buster/main amd64 alembic all 1.0.0-3 [370 kB] Get: 77 http://deb.debian.org/debian buster/main amd64 libsigsegv2 amd64 2.12-2 [32.8 kB] Get: 78 http://deb.debian.org/debian buster/main amd64 m4 amd64 1.4.18-2 [203 kB] Get: 79 http://deb.debian.org/debian buster/main amd64 autoconf all 2.69-11 [341 kB] Get: 80 http://deb.debian.org/debian buster/main amd64 autotools-dev all 20180224.1 [77.0 kB] Get: 81 http://deb.debian.org/debian buster/main amd64 automake all 1:1.16.1-4 [771 kB] Get: 82 http://deb.debian.org/debian buster/main amd64 autopoint all 0.19.8.1-9 [434 kB] Get: 83 http://deb.debian.org/debian buster/main amd64 openssl amd64 1.1.1d-0+deb10u7 [845 kB] Get: 84 http://deb.debian.org/debian buster/main amd64 ca-certificates all 20200601~deb10u2 [166 kB] Get: 85 http://deb.debian.org/debian buster/main amd64 libtool all 2.4.6-9 [547 kB] Get: 86 http://deb.debian.org/debian buster/main amd64 dh-autoreconf all 19 [16.9 kB] Get: 87 http://deb.debian.org/debian buster/main amd64 libarchive-zip-perl all 1.64-1 [96.8 kB] Get: 88 http://deb.debian.org/debian buster/main amd64 libfile-stripnondeterminism-perl all 1.1.2-1 [19.8 kB] Get: 89 http://deb.debian.org/debian buster/main amd64 dh-strip-nondeterminism all 1.1.2-1 [13.0 kB] Get: 90 http://deb.debian.org/debian buster/main amd64 libelf1 amd64 0.176-1.1 [161 kB] Get: 91 http://deb.debian.org/debian buster/main amd64 dwz amd64 0.12-3 [78.0 kB] Get: 92 http://deb.debian.org/debian buster/main amd64 libglib2.0-0 amd64 2.58.3-2+deb10u3 [1259 kB] Get: 93 http://deb.debian.org/debian buster/main amd64 libicu63 amd64 63.1-6+deb10u1 [8300 kB] Get: 94 http://deb.debian.org/debian buster/main amd64 libxml2 amd64 2.9.4+dfsg1-7+deb10u2 [689 kB] Get: 95 http://deb.debian.org/debian buster/main amd64 libcroco3 amd64 0.6.12-3 [145 kB] Get: 96 http://deb.debian.org/debian buster/main amd64 gettext amd64 0.19.8.1-9 [1303 kB] Get: 97 http://deb.debian.org/debian buster/main amd64 intltool-debian all 0.35.0+20060710.5 [26.8 kB] Get: 98 http://deb.debian.org/debian buster/main amd64 po-debconf all 1.0.21 [248 kB] Get: 99 http://deb.debian.org/debian buster/main amd64 debhelper all 12.1.1 [1016 kB] Get: 100 http://deb.debian.org/debian buster/main amd64 dh-python all 3.20190308 [99.3 kB] Get: 101 http://deb.debian.org/debian buster/main amd64 xml-core all 0.18+nmu1 [23.8 kB] Get: 102 http://deb.debian.org/debian buster/main amd64 docutils-common all 0.14+dfsg-4 [167 kB] Get: 103 http://deb.debian.org/debian buster/main amd64 python3-mccabe all 0.6.1-2 [9358 B] Get: 104 http://deb.debian.org/debian buster/main amd64 python3-pyflakes all 2.0.0-1 [49.0 kB] Get: 105 http://deb.debian.org/debian buster/main amd64 python3-setuptools all 40.8.0-1 [306 kB] Get: 106 http://deb.debian.org/debian buster/main amd64 python3-pycodestyle all 2.4.0-2 [44.2 kB] Get: 107 http://deb.debian.org/debian buster/main amd64 python3-flake8 all 3.6.0-1 [62.6 kB] Get: 108 http://deb.debian.org/debian buster/main amd64 flake8 all 3.6.0-1 [18.2 kB] Get: 109 http://deb.debian.org/debian buster/main amd64 fonts-glyphicons-halflings all 1.009~3.4.1+dfsg-1 [164 kB] Get: 110 http://deb.debian.org/debian buster/main amd64 ieee-data all 20180805.1 [1590 kB] Get: 111 http://deb.debian.org/debian buster/main amd64 libonig5 amd64 6.9.1-1 [171 kB] Get: 112 http://deb.debian.org/debian buster/main amd64 libjq1 amd64 1.5+dfsg-2+b1 [124 kB] Get: 113 http://deb.debian.org/debian buster/main amd64 jq amd64 1.5+dfsg-2+b1 [59.4 kB] Get: 114 http://deb.debian.org/debian buster/main amd64 libpng16-16 amd64 1.6.36-6 [292 kB] Get: 115 http://deb.debian.org/debian buster/main amd64 libfreetype6 amd64 2.9.1-3+deb10u2 [380 kB] Get: 116 http://deb.debian.org/debian buster/main amd64 libkeyutils1 amd64 1.6-6 [15.0 kB] Get: 117 http://deb.debian.org/debian buster/main amd64 libkrb5support0 amd64 1.17-3+deb10u3 [65.8 kB] Get: 118 http://deb.debian.org/debian buster/main amd64 libk5crypto3 amd64 1.17-3+deb10u3 [122 kB] Get: 119 http://deb.debian.org/debian buster/main amd64 libkrb5-3 amd64 1.17-3+deb10u3 [370 kB] Get: 120 http://deb.debian.org/debian buster/main amd64 libgssapi-krb5-2 amd64 1.17-3+deb10u3 [158 kB] Get: 121 http://deb.debian.org/debian buster/main amd64 libimagequant0 amd64 2.12.2-1.1 [32.5 kB] Get: 122 http://deb.debian.org/debian buster/main amd64 libjbig0 amd64 2.1-3.1+b2 [31.0 kB] Get: 123 http://deb.debian.org/debian buster/main amd64 libjpeg62-turbo amd64 1:1.5.2-2+deb10u1 [133 kB] Get: 124 http://deb.debian.org/debian buster/main amd64 libjs-bootstrap all 3.4.1+dfsg-1 [173 kB] Get: 125 http://deb.debian.org/debian buster/main amd64 liblcms2-2 amd64 2.9-3 [145 kB] Get: 126 http://deb.debian.org/debian buster/main amd64 libsasl2-modules-db amd64 2.1.27+dfsg-1+deb10u1 [69.1 kB] Get: 127 http://deb.debian.org/debian buster/main amd64 libsasl2-2 amd64 2.1.27+dfsg-1+deb10u1 [106 kB] Get: 128 http://deb.debian.org/debian buster/main amd64 libldap-common all 2.4.47+dfsg-3+deb10u6 [90.0 kB] Get: 129 http://deb.debian.org/debian buster/main amd64 libldap-2.4-2 amd64 2.4.47+dfsg-3+deb10u6 [224 kB] Get: 130 http://deb.debian.org/debian buster/main amd64 mysql-common all 5.8+1.0.5 [7324 B] Get: 131 http://deb.debian.org/debian buster/main amd64 mariadb-common all 1:10.3.31-0+deb10u1 [32.7 kB] Get: 132 http://deb.debian.org/debian buster/main amd64 libmariadb3 amd64 1:10.3.31-0+deb10u1 [173 kB] Get: 133 http://deb.debian.org/debian buster/main amd64 libnorm1 amd64 1.5.8+dfsg2-1 [287 kB] Get: 134 http://deb.debian.org/debian buster/main amd64 libpgm-5.2-0 amd64 5.2.122~dfsg-3 [158 kB] Get: 135 http://deb.debian.org/debian buster/main amd64 libpq5 amd64 11.13-0+deb10u1 [170 kB] Get: 136 http://deb.debian.org/debian buster/main amd64 libsodium23 amd64 1.0.17-1 [158 kB] Get: 137 http://deb.debian.org/debian buster/main amd64 libsubunit-perl all 1.3.0-1 [8748 B] Get: 138 http://deb.debian.org/debian buster/main amd64 libwebp6 amd64 0.6.1-2+deb10u1 [261 kB] Get: 139 http://deb.debian.org/debian buster/main amd64 libtiff5 amd64 4.1.0+git191117-2~deb10u2 [271 kB] Get: 140 http://deb.debian.org/debian buster/main amd64 libwebpdemux2 amd64 0.6.1-2+deb10u1 [87.6 kB] Get: 141 http://deb.debian.org/debian buster/main amd64 libwebpmux3 amd64 0.6.1-2+deb10u1 [97.8 kB] Get: 142 http://deb.debian.org/debian buster/main amd64 libxslt1.1 amd64 1.1.32-2.2~deb10u1 [237 kB] Get: 143 http://deb.debian.org/debian buster/main amd64 libyaml-0-2 amd64 0.2.1-1 [47.2 kB] Get: 144 http://deb.debian.org/debian buster/main amd64 libzmq5 amd64 4.3.1-4+deb10u2 [246 kB] Get: 145 http://deb.debian.org/debian buster/main amd64 openstack-pkg-tools all 91 [97.9 kB] Get: 146 http://deb.debian.org/debian buster/main amd64 pycadf-common all 2.7.0-2 [5332 B] Get: 147 http://deb.debian.org/debian buster/main amd64 pyflakes3 all 2.0.0-1 [11.0 kB] Get: 148 http://deb.debian.org/debian buster/main amd64 python-babel-localedata all 2.6.0+dfsg.1-1 [4083 kB] Get: 149 http://deb.debian.org/debian buster/main amd64 python-extras all 1.0.0-3 [7884 B] Get: 150 http://deb.debian.org/debian buster/main amd64 python-pkg-resources all 40.8.0-1 [182 kB] Get: 151 http://deb.debian.org/debian buster/main amd64 python-setuptools all 40.8.0-1 [382 kB] Get: 152 http://deb.debian.org/debian buster/main amd64 python-six all 1.12.0-1 [15.7 kB] Get: 153 http://deb.debian.org/debian buster/main amd64 python-pbr all 4.2.0-5 [56.5 kB] Get: 154 http://deb.debian.org/debian buster/main amd64 python-linecache2 all 1.0.0-3 [12.3 kB] Get: 155 http://deb.debian.org/debian buster/main amd64 python-mimeparse all 0.1.4-3.1 [6128 B] Get: 156 http://deb.debian.org/debian buster/main amd64 python-traceback2 all 1.4.0-5 [16.3 kB] Get: 157 http://deb.debian.org/debian buster/main amd64 python-unittest2 all 1.1.0-6.1 [75.7 kB] Get: 158 http://deb.debian.org/debian buster/main amd64 python-testtools all 2.3.0-5 [125 kB] Get: 159 http://deb.debian.org/debian buster/main amd64 python-fixtures all 3.0.0-2 [32.3 kB] Get: 160 http://deb.debian.org/debian buster/main amd64 python-netaddr all 0.7.19-1 [229 kB] Get: 161 http://deb.debian.org/debian buster/main amd64 python-os-api-ref-common all 1.5.0+dfsg1-4 [9828 B] Get: 162 http://deb.debian.org/debian buster/main amd64 python-pastedeploy-tpl all 2.0.1-1 [8516 B] Get: 163 http://deb.debian.org/debian buster/main amd64 python-subunit all 1.3.0-1 [64.5 kB] Get: 164 http://deb.debian.org/debian buster/main amd64 python3-alabaster all 0.7.8-1 [18.4 kB] Get: 165 http://deb.debian.org/debian buster/main amd64 python3-all amd64 3.7.3-1 [1068 B] Get: 166 http://deb.debian.org/debian buster/main amd64 python3-vine all 1.1.4+dfsg-2 [15.7 kB] Get: 167 http://deb.debian.org/debian buster/main amd64 python3-amqp all 2.4.0-2 [41.8 kB] Get: 168 http://deb.debian.org/debian buster/main amd64 python3-amqplib all 1.0.2-1 [38.4 kB] Get: 169 http://deb.debian.org/debian buster/main amd64 python3-anyjson all 0.3.3-1 [8290 B] Get: 170 http://deb.debian.org/debian buster/main amd64 python3-appdirs all 1.4.3-1 [12.0 kB] Get: 171 http://deb.debian.org/debian buster/main amd64 python3-asn1crypto all 0.24.0-1 [78.2 kB] Get: 172 http://deb.debian.org/debian buster/main amd64 python3-pbr all 4.2.0-5 [56.5 kB] Get: 173 http://deb.debian.org/debian buster/main amd64 python3-wrapt amd64 1.10.11-1 [36.9 kB] Get: 174 http://deb.debian.org/debian buster/main amd64 python3-debtcollector all 1.20.0-2 [13.6 kB] Get: 175 http://deb.debian.org/debian buster/main amd64 python3-prettytable all 0.7.2-4 [22.8 kB] Get: 176 http://deb.debian.org/debian buster/main amd64 python3-automaton all 1.15.0-1 [14.9 kB] Get: 177 http://deb.debian.org/debian buster/main amd64 python3-tz all 2019.1-1 [27.1 kB] Get: 178 http://deb.debian.org/debian buster/main amd64 python3-babel all 2.6.0+dfsg.1-1 [96.7 kB] Get: 179 http://deb.debian.org/debian buster/main amd64 python3-bashate all 0.6.0-1 [13.6 kB] Get: 180 http://deb.debian.org/debian buster/main amd64 python3-blinker all 1.4+dfsg1-0.2 [14.0 kB] Get: 181 http://deb.debian.org/debian buster/main amd64 python3-funcparserlib all 0.3.6-7 [15.0 kB] Get: 182 http://deb.debian.org/debian buster/main amd64 python3-pil amd64 5.4.1-2+deb10u2 [395 kB] Get: 183 http://deb.debian.org/debian buster/main amd64 python3-webcolors all 1.5-2 [10.4 kB] Get: 184 http://deb.debian.org/debian buster/main amd64 python3-roman all 2.0.0-3 [8768 B] Get: 185 http://deb.debian.org/debian buster/main amd64 python3-docutils all 0.14+dfsg-4 [378 kB] Get: 186 http://deb.debian.org/debian buster/main amd64 python3-reportlab-accel amd64 3.5.13-1+deb10u1 [35.3 kB] Get: 187 http://deb.debian.org/debian buster/main amd64 python3-reportlab all 3.5.13-1+deb10u1 [541 kB] Get: 188 http://deb.debian.org/debian buster/main amd64 python3-blockdiag all 1.5.3+dfsg-5.2 [74.6 kB] Get: 189 http://deb.debian.org/debian buster/main amd64 python3-soupsieve all 1.8+dfsg-1 [27.6 kB] Get: 190 http://deb.debian.org/debian buster/main amd64 python3-bs4 all 4.7.1-1 [94.1 kB] Get: 191 http://deb.debian.org/debian buster/main amd64 python3-cachetools all 3.1.0-2 [11.6 kB] Get: 192 http://deb.debian.org/debian buster/main amd64 python3-certifi all 2018.8.24-1 [140 kB] Get: 193 http://deb.debian.org/debian buster/main amd64 python3-cffi-backend amd64 1.12.2-1 [79.7 kB] Get: 194 http://deb.debian.org/debian buster/main amd64 python3-chardet all 3.0.4-3 [80.5 kB] Get: 195 http://deb.debian.org/debian buster/main amd64 python3-iso8601 all 0.1.11-1 [9780 B] Get: 196 http://deb.debian.org/debian buster/main amd64 python3-lxml amd64 4.3.2-1+deb10u3 [1162 kB] Get: 197 http://deb.debian.org/debian buster/main amd64 python3-cryptography amd64 2.6.1-3+deb10u2 [219 kB] Get: 198 http://deb.debian.org/debian buster/main amd64 python3-jwt all 1.7.0-2 [20.5 kB] Get: 199 http://deb.debian.org/debian buster/main amd64 python3-oauthlib all 2.1.0-1 [75.9 kB] Get: 200 http://deb.debian.org/debian buster/main amd64 python3-os-service-types all 1.3.0-2 [11.8 kB] Get: 201 http://deb.debian.org/debian buster/main amd64 python3-idna all 2.6-1 [34.3 kB] Get: 202 http://deb.debian.org/debian buster/main amd64 python3-urllib3 all 1.24.1-1 [97.1 kB] Get: 203 http://deb.debian.org/debian buster/main amd64 python3-requests all 2.21.0-1 [66.9 kB] Get: 204 http://deb.debian.org/debian buster/main amd64 python3-stevedore all 1.29.0-2 [19.7 kB] Get: 205 http://deb.debian.org/debian buster/main amd64 python3-keystoneauth1 all 3.10.0-2 [142 kB] Get: 206 http://deb.debian.org/debian buster/main amd64 python3-oslo.i18n all 3.21.0-2 [19.9 kB] Get: 207 http://deb.debian.org/debian buster/main amd64 python3-funcsigs all 1.0.2-4 [13.8 kB] Get: 208 http://deb.debian.org/debian buster/main amd64 python3-monotonic all 1.1-2 [5292 B] Get: 209 http://deb.debian.org/debian buster/main amd64 python3-netaddr all 0.7.19-1 [228 kB] Get: 210 http://deb.debian.org/debian buster/main amd64 python3-netifaces amd64 0.10.4-1+b1 [13.2 kB] Get: 211 http://deb.debian.org/debian buster/main amd64 python3-oslo.utils all 3.36.5-0+deb10u1 [57.8 kB] Get: 212 http://deb.debian.org/debian buster/main amd64 python3-simplejson amd64 3.16.0-1 [60.7 kB] Get: 213 http://deb.debian.org/debian buster/main amd64 python3-cinderclient all 1:4.0.1-2 [139 kB] Get: 214 http://deb.debian.org/debian buster/main amd64 python3-unicodecsv all 0.14.1-1 [11.4 kB] Get: 215 http://deb.debian.org/debian buster/main amd64 python3-yaml amd64 3.13-2 [121 kB] Get: 216 http://deb.debian.org/debian buster/main amd64 python3-cliff all 2.13.0-1 [41.6 kB] Get: 217 http://deb.debian.org/debian buster/main amd64 python3-contextlib2 all 0.5.5-1 [12.4 kB] Get: 218 http://deb.debian.org/debian buster/main amd64 python3-coverage amd64 4.5.2+dfsg.1-1 [144 kB] Get: 219 http://deb.debian.org/debian buster/main amd64 python3-crypto amd64 2.6.1-9+b1 [263 kB] Get: 220 http://deb.debian.org/debian buster/main amd64 python3-dbus amd64 1.2.8-3 [103 kB] Get: 221 http://deb.debian.org/debian buster/main amd64 python3-decorator all 4.3.0-1.1 [14.5 kB] Get: 222 http://deb.debian.org/debian buster/main amd64 python3-packaging all 19.0-1 [20.5 kB] Get: 223 http://deb.debian.org/debian buster/main amd64 python3-deprecation all 2.0.6-1 [13.5 kB] Get: 224 http://deb.debian.org/debian buster/main amd64 python3-restructuredtext-lint all 0.12.2-2 [9890 B] Get: 225 http://deb.debian.org/debian buster/main amd64 python3-doc8 all 0.8.0-1 [13.8 kB] Get: 226 http://deb.debian.org/debian buster/main amd64 python3-dogpile.cache all 0.6.2-6 [33.5 kB] Get: 227 http://deb.debian.org/debian buster/main amd64 python3-dracclient all 1.3.1-1 [30.1 kB] Get: 228 http://deb.debian.org/debian buster/main amd64 python3-dulwich amd64 0.19.11-2 [265 kB] Get: 229 http://deb.debian.org/debian buster/main amd64 python3-entrypoints all 0.3-1 [5508 B] Get: 230 http://deb.debian.org/debian buster/main amd64 python3-greenlet amd64 0.4.15-2 [16.4 kB] Get: 231 http://deb.debian.org/debian buster/main amd64 python3-eventlet all 0.20.0-6 [235 kB] Get: 232 http://deb.debian.org/debian buster/main amd64 python3-extras all 1.0.0-3 [7968 B] Get: 233 http://deb.debian.org/debian buster/main amd64 python3-fasteners all 0.12.0-3 [14.5 kB] Get: 234 http://deb.debian.org/debian buster/main amd64 python3-linecache2 all 1.0.0-3 [12.4 kB] Get: 235 http://deb.debian.org/debian buster/main amd64 python3-mimeparse all 0.1.4-3.1 [6204 B] Get: 236 http://deb.debian.org/debian buster/main amd64 python3-traceback2 all 1.4.0-5 [16.4 kB] Get: 237 http://deb.debian.org/debian buster/main amd64 python3-unittest2 all 1.1.0-6.1 [69.4 kB] Get: 238 http://deb.debian.org/debian buster/main amd64 python3-testtools all 2.3.0-5 [125 kB] Get: 239 http://deb.debian.org/debian buster/main amd64 python3-fixtures all 3.0.0-2 [32.4 kB] Get: 240 http://deb.debian.org/debian buster/main amd64 python3-future all 0.16.0-1 [346 kB] Get: 241 http://deb.debian.org/debian buster/main amd64 python3-futurist all 1.6.0-2 [24.2 kB] Get: 242 http://deb.debian.org/debian buster/main amd64 python3-openssl all 19.0.0-1 [52.1 kB] Get: 243 http://deb.debian.org/debian buster/main amd64 python3-json-pointer all 1.10-1 [13.8 kB] Get: 244 http://deb.debian.org/debian buster/main amd64 python3-jsonpatch all 1.21-1 [12.2 kB] Get: 245 http://deb.debian.org/debian buster/main amd64 python3-jsonschema all 2.6.0-4 [33.5 kB] Get: 246 http://deb.debian.org/debian buster/main amd64 python3-warlock all 1.2.0-2 [8796 B] Get: 247 http://deb.debian.org/debian buster/main amd64 python3-glanceclient all 1:2.13.1-1 [126 kB] Get: 248 http://deb.debian.org/debian buster/main amd64 python3-pep8 all 1.7.1-3 [39.4 kB] Get: 249 http://deb.debian.org/debian buster/main amd64 python3-hacking all 1.1.0-2 [21.3 kB] Get: 250 http://deb.debian.org/debian buster/main amd64 python3-imagesize all 1.0.0-1 [4960 B] Get: 251 http://deb.debian.org/debian buster/main amd64 python3-jmespath all 0.9.4-1 [18.5 kB] Get: 252 http://deb.debian.org/debian buster/main amd64 python3-munch all 2.3.2-1 [7868 B] Get: 253 http://deb.debian.org/debian buster/main amd64 python3-requestsexceptions all 1.4.0-1 [4140 B] Get: 254 http://deb.debian.org/debian buster/main amd64 python3-openstacksdk all 0.17.2-2 [432 kB] Get: 255 http://deb.debian.org/debian buster/main amd64 python3-osc-lib all 1.11.1-2 [48.8 kB] Get: 256 http://deb.debian.org/debian buster/main amd64 python3-ironic-inspector-client all 3.3.0-2 [22.0 kB] Get: 257 http://deb.debian.org/debian buster/main amd64 python3-oslo.context all 2.21.0-2 [13.4 kB] Get: 258 http://deb.debian.org/debian buster/main amd64 python3-msgpack amd64 0.5.6-1+b1 [104 kB] Get: 259 http://deb.debian.org/debian buster/main amd64 python3-oslo.serialization all 2.27.0-2 [15.7 kB] Get: 260 http://deb.debian.org/debian buster/main amd64 python3-pyinotify all 0.9.6-1 [26.9 kB] Get: 261 http://deb.debian.org/debian buster/main amd64 python3-oslo.log all 3.39.0-2 [40.1 kB] Get: 262 http://deb.debian.org/debian buster/main amd64 python3-rfc3986 all 0.3.1-2 [14.9 kB] Get: 263 http://deb.debian.org/debian buster/main amd64 python3-oslo.config all 1:6.4.1-1 [108 kB] Get: 264 http://deb.debian.org/debian buster/main amd64 python3-oslo.concurrency all 3.27.0-3 [26.9 kB] Get: 265 http://deb.debian.org/debian buster/main amd64 python3-tempita all 0.5.2-2 [13.9 kB] Get: 266 http://deb.debian.org/debian buster/main amd64 python3-paste all 3.0.6+dfsg-1 [475 kB] Get: 267 http://deb.debian.org/debian buster/main amd64 python3-pastedeploy all 2.0.1-1 [18.8 kB] Get: 268 http://deb.debian.org/debian buster/main amd64 python3-repoze.lru all 0.7-1 [11.7 kB] Get: 269 http://deb.debian.org/debian buster/main amd64 python3-routes all 2.4.1-1 [38.2 kB] Get: 270 http://deb.debian.org/debian buster/main amd64 python3-webob all 1:1.8.5-1 [89.2 kB] Get: 271 http://deb.debian.org/debian buster/main amd64 python3-oslo.service all 1.31.8-1 [40.3 kB] Get: 272 http://deb.debian.org/debian buster/main amd64 python3-ironic-lib all 2.14.0-2 [36.9 kB] Get: 273 http://deb.debian.org/debian buster/main amd64 python3-jinja2 all 2.10-2 [106 kB] Get: 274 http://deb.debian.org/debian buster/main amd64 python3-kafka all 1.4.3-1 [166 kB] Get: 275 http://deb.debian.org/debian buster/main amd64 python3-pygments all 2.3.1+dfsg-1+deb10u2 [594 kB] Get: 276 http://deb.debian.org/debian buster/main amd64 python3-kazoo all 2.5.0-1 [101 kB] Get: 277 http://deb.debian.org/debian buster/main amd64 python3-secretstorage all 2.3.1-2 [14.2 kB] Get: 278 http://deb.debian.org/debian buster/main amd64 python3-keyring all 17.1.1-1 [43.1 kB] Get: 279 http://deb.debian.org/debian buster/main amd64 python3-keystoneclient all 1:3.17.0-2 [200 kB] Get: 280 http://deb.debian.org/debian buster/main amd64 python3-memcache all 1.59-1 [26.1 kB] Get: 281 http://deb.debian.org/debian buster/main amd64 python3-oslo.cache all 1.30.3-1 [28.6 kB] Get: 282 http://deb.debian.org/debian buster/main amd64 python3-pycadf all 2.7.0-2 [18.9 kB] Get: 283 http://deb.debian.org/debian buster/main amd64 python3-keystonemiddleware all 5.2.0-2 [71.9 kB] Get: 284 http://deb.debian.org/debian buster/main amd64 python3-kombu all 4.2.1-3 [163 kB] Get: 285 http://deb.debian.org/debian buster/main amd64 python3-logutils all 0.3.3-5 [17.3 kB] Get: 286 http://deb.debian.org/debian buster/main amd64 python3-sqlparse all 0.2.4-1 [33.5 kB] Get: 287 http://deb.debian.org/debian buster/main amd64 python3-migrate all 0.11.0-5 [79.2 kB] Get: 288 http://deb.debian.org/debian buster/main amd64 python3-mock all 2.0.0-4 [60.3 kB] Get: 289 http://deb.debian.org/debian buster/main amd64 python3-mox3 all 0.24.0-1 [32.5 kB] Get: 290 http://deb.debian.org/debian buster/main amd64 python3-mysqldb amd64 1.3.10-2 [56.1 kB] Get: 291 http://deb.debian.org/debian buster/main amd64 python3-os-client-config all 1.31.2-2 [17.9 kB] Get: 292 http://deb.debian.org/debian buster/main amd64 python3-neutronclient all 1:6.9.1-1 [175 kB] Get: 293 http://deb.debian.org/debian buster/main amd64 sphinx-common all 1.8.4-1 [500 kB] Get: 294 http://deb.debian.org/debian buster/main amd64 python3-sphinx all 1.8.4-1 [481 kB] Get: 295 http://deb.debian.org/debian buster/main amd64 python3-openstackdocstheme all 1.20.0-3 [864 kB] Get: 296 http://deb.debian.org/debian buster/main amd64 python3-os-api-ref all 1.5.0+dfsg1-4 [16.9 kB] Get: 297 http://deb.debian.org/debian buster/main amd64 python3-os-traits all 0.9.0-2 [10.1 kB] Get: 298 http://deb.debian.org/debian buster/main amd64 python3-testresources all 2.0.0-2 [27.2 kB] Get: 299 http://deb.debian.org/debian buster/main amd64 python3-testscenarios all 0.5.0-2 [13.4 kB] Get: 300 http://deb.debian.org/debian buster/main amd64 python3-oslo.db all 4.40.0-3 [111 kB] Get: 301 http://deb.debian.org/debian buster/main amd64 python3-statsd all 3.2.1-2 [11.4 kB] Get: 302 http://deb.debian.org/debian buster/main amd64 python3-oslo.middleware all 3.36.0-2 [30.6 kB] Get: 303 http://deb.debian.org/debian buster/main amd64 python3-tenacity all 4.12.0-2 [34.1 kB] Get: 304 http://deb.debian.org/debian buster/main amd64 python3-zmq amd64 17.1.2-2+deb10u1 [268 kB] Get: 305 http://deb.debian.org/debian buster/main amd64 python3-oslo.messaging all 8.1.4-1+deb10u1 [166 kB] Get: 306 http://deb.debian.org/debian buster/main amd64 python3-oslo.policy all 1.38.1-2 [43.6 kB] Get: 307 http://deb.debian.org/debian buster/main amd64 python3-psutil amd64 5.5.1-1 [166 kB] Get: 308 http://deb.debian.org/debian buster/main amd64 python3-oslo.reports all 1.28.0-2 [25.2 kB] Get: 309 http://deb.debian.org/debian buster/main amd64 sudo amd64 1.8.27-1+deb10u3 [1244 kB] Get: 310 http://deb.debian.org/debian buster/main amd64 python3-oslo.rootwrap all 5.14.1-2 [23.9 kB] Get: 311 http://deb.debian.org/debian buster/main amd64 python3-oslo.versionedobjects all 1.33.3-2 [55.9 kB] Get: 312 http://deb.debian.org/debian buster/main amd64 python3-voluptuous all 0.11.1-1 [33.2 kB] Get: 313 http://deb.debian.org/debian buster/main amd64 python3-subunit all 1.3.0-1 [64.3 kB] Get: 314 http://deb.debian.org/debian buster/main amd64 subunit all 1.3.0-1 [13.1 kB] Get: 315 http://deb.debian.org/debian buster/main amd64 python3-stestr all 2.1.0-2 [48.3 kB] Get: 316 http://deb.debian.org/debian buster/main amd64 python3-oslotest all 1:3.6.0-2 [19.2 kB] Get: 317 http://deb.debian.org/debian buster/main amd64 python3-osprofiler all 2.3.0-3 [46.6 kB] Get: 318 http://deb.debian.org/debian buster/main amd64 python3-simplegeneric all 0.8.1-2 [11.1 kB] Get: 319 http://deb.debian.org/debian buster/main amd64 python3-singledispatch all 3.4.0.3-2 [6866 B] Get: 320 http://deb.debian.org/debian buster/main amd64 python3-waitress all 1.2.0~b2-2 [76.7 kB] Get: 321 http://deb.debian.org/debian buster/main amd64 python3-webtest all 2.0.32-1 [35.5 kB] Get: 322 http://deb.debian.org/debian buster/main amd64 python3-pecan all 1.3.2-2 [103 kB] Get: 323 http://deb.debian.org/debian buster/main amd64 python3-ply all 3.11-3 [65.1 kB] Get: 324 http://deb.debian.org/debian buster/main amd64 python3-pyasn1 all 0.4.2-3 [57.7 kB] Get: 325 http://deb.debian.org/debian buster/main amd64 python3-pycryptodome amd64 3.6.1-2+b1 [5133 kB] Get: 326 http://deb.debian.org/debian buster/main amd64 python3-pysmi all 0.3.2-1 [51.5 kB] Get: 327 http://deb.debian.org/debian buster/main amd64 python3-pysnmp4 all 4.4.6+repack1-1 [177 kB] Get: 328 http://deb.debian.org/debian buster/main amd64 python3-retrying all 1.3.3-3 [8708 B] Get: 329 http://deb.debian.org/debian buster/main amd64 python3-sushy all 1.3.1-3 [29.1 kB] Get: 330 http://deb.debian.org/debian buster/main amd64 python3-proliantutils all 2.6.0-2 [149 kB] Get: 331 http://deb.debian.org/debian buster/main amd64 python3-psycopg2 amd64 2.7.7-1 [161 kB] Get: 332 http://deb.debian.org/debian buster/main amd64 python3-pyghmi all 1.0.32-5 [99.7 kB] Get: 333 http://deb.debian.org/debian buster/main amd64 python3-pymemcache all 1.3.2-3 [23.3 kB] Get: 334 http://deb.debian.org/debian buster/main amd64 python3-pymysql all 0.9.3-1 [43.4 kB] Get: 335 http://deb.debian.org/debian buster/main amd64 python3-redis all 3.2.1-2 [70.6 kB] Get: 336 http://deb.debian.org/debian buster/main amd64 python3-scciclient all 0.7.2-2 [40.1 kB] Get: 337 http://deb.debian.org/debian buster/main amd64 python3-sendfile amd64 2.0.1-2 [9604 B] Get: 338 http://deb.debian.org/debian buster/main amd64 python3-seqdiag all 0.9.5+dfsg-1.1 [22.2 kB] Get: 339 http://deb.debian.org/debian buster/main amd64 python3-sphinxcontrib.httpdomain all 1.5.0-2 [17.4 kB] Get: 340 http://deb.debian.org/debian buster/main amd64 python3-sphinxcontrib-pecanwsme all 0.8.0-7 [6808 B] Get: 341 http://deb.debian.org/debian buster/main amd64 python3-sphinxcontrib.apidoc all 0.2.1-2 [7244 B] Get: 342 http://deb.debian.org/debian buster/main amd64 python3-sphinxcontrib.seqdiag all 0.8.5-1 [7432 B] Get: 343 http://deb.debian.org/debian buster/main amd64 python3-swiftclient all 1:3.6.0-2 [76.2 kB] Get: 344 http://deb.debian.org/debian buster/main amd64 python3-zope.interface amd64 4.3.2-1+b2 [90.1 kB] Get: 345 http://deb.debian.org/debian buster/main amd64 python3-zake all 0.2.2-2 [15.8 kB] Get: 346 http://deb.debian.org/debian buster/main amd64 python3-tooz all 1.62.0-3 [48.7 kB] Get: 347 http://deb.debian.org/debian buster/main amd64 python3-wsme all 0.9.3-2 [66.3 kB] Fetched 71.8 MB in 2s (31.0 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19195 files and directories currently installed.) Preparing to unpack .../00-libbsd0_0.9.1-2+deb10u1_amd64.deb ... Unpacking libbsd0:amd64 (0.9.1-2+deb10u1) ... Selecting previously unselected package bsdmainutils. Preparing to unpack .../01-bsdmainutils_11.1.2+b1_amd64.deb ... Unpacking bsdmainutils (11.1.2+b1) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../02-libuchardet0_0.0.6-3_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.6-3) ... Selecting previously unselected package groff-base. Preparing to unpack .../03-groff-base_1.22.4-3+deb10u1_amd64.deb ... Unpacking groff-base (1.22.4-3+deb10u1) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../04-libpipeline1_1.5.1-2_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.1-2) ... Selecting previously unselected package man-db. Preparing to unpack .../05-man-db_2.8.5-2_amd64.deb ... Unpacking man-db (2.8.5-2) ... Selecting previously unselected package libpython2.7-minimal:amd64. Preparing to unpack .../06-libpython2.7-minimal_2.7.16-2+deb10u1_amd64.deb ... Unpacking libpython2.7-minimal:amd64 (2.7.16-2+deb10u1) ... Selecting previously unselected package python2.7-minimal. Preparing to unpack .../07-python2.7-minimal_2.7.16-2+deb10u1_amd64.deb ... Unpacking python2.7-minimal (2.7.16-2+deb10u1) ... Selecting previously unselected package python2-minimal. Preparing to unpack .../08-python2-minimal_2.7.16-1_amd64.deb ... Unpacking python2-minimal (2.7.16-1) ... Selecting previously unselected package python-minimal. Preparing to unpack .../09-python-minimal_2.7.16-1_amd64.deb ... Unpacking python-minimal (2.7.16-1) ... Selecting previously unselected package libssl1.1:amd64. Preparing to unpack .../10-libssl1.1_1.1.1d-0+deb10u7_amd64.deb ... Unpacking libssl1.1:amd64 (1.1.1d-0+deb10u7) ... Selecting previously unselected package mime-support. Preparing to unpack .../11-mime-support_3.62_all.deb ... Unpacking mime-support (3.62) ... Selecting previously unselected package libexpat1:amd64. Preparing to unpack .../12-libexpat1_2.2.6-2+deb10u1_amd64.deb ... Unpacking libexpat1:amd64 (2.2.6-2+deb10u1) ... Selecting previously unselected package readline-common. Preparing to unpack .../13-readline-common_7.0-5_all.deb ... Unpacking readline-common (7.0-5) ... Selecting previously unselected package libreadline7:amd64. Preparing to unpack .../14-libreadline7_7.0-5_amd64.deb ... Unpacking libreadline7:amd64 (7.0-5) ... Selecting previously unselected package libpython2.7-stdlib:amd64. Preparing to unpack .../15-libpython2.7-stdlib_2.7.16-2+deb10u1_amd64.deb ... Unpacking libpython2.7-stdlib:amd64 (2.7.16-2+deb10u1) ... Selecting previously unselected package python2.7. Preparing to unpack .../16-python2.7_2.7.16-2+deb10u1_amd64.deb ... Unpacking python2.7 (2.7.16-2+deb10u1) ... Selecting previously unselected package libpython2-stdlib:amd64. Preparing to unpack .../17-libpython2-stdlib_2.7.16-1_amd64.deb ... Unpacking libpython2-stdlib:amd64 (2.7.16-1) ... Selecting previously unselected package libpython-stdlib:amd64. Preparing to unpack .../18-libpython-stdlib_2.7.16-1_amd64.deb ... Unpacking libpython-stdlib:amd64 (2.7.16-1) ... Setting up libpython2.7-minimal:amd64 (2.7.16-2+deb10u1) ... Setting up python2.7-minimal (2.7.16-2+deb10u1) ... Setting up python2-minimal (2.7.16-1) ... Selecting previously unselected package python2. (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 ... 20658 files and directories currently installed.) Preparing to unpack .../python2_2.7.16-1_amd64.deb ... Unpacking python2 (2.7.16-1) ... Setting up python-minimal (2.7.16-1) ... Selecting previously unselected package python. (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 ... 20691 files and directories currently installed.) Preparing to unpack .../python_2.7.16-1_amd64.deb ... Unpacking python (2.7.16-1) ... Selecting previously unselected package libpython3.7-minimal:amd64. Preparing to unpack .../libpython3.7-minimal_3.7.3-2+deb10u3_amd64.deb ... Unpacking libpython3.7-minimal:amd64 (3.7.3-2+deb10u3) ... Selecting previously unselected package python3.7-minimal. Preparing to unpack .../python3.7-minimal_3.7.3-2+deb10u3_amd64.deb ... Unpacking python3.7-minimal (3.7.3-2+deb10u3) ... Setting up libssl1.1:amd64 (1.1.1d-0+deb10u7) ... Setting up libpython3.7-minimal:amd64 (3.7.3-2+deb10u3) ... Setting up libexpat1:amd64 (2.2.6-2+deb10u1) ... Setting up python3.7-minimal (3.7.3-2+deb10u3) ... Selecting previously unselected package python3-minimal. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20945 files and directories currently installed.) Preparing to unpack .../python3-minimal_3.7.3-1_amd64.deb ... Unpacking python3-minimal (3.7.3-1) ... Selecting previously unselected package libmpdec2:amd64. Preparing to unpack .../libmpdec2_2.4.2-2_amd64.deb ... Unpacking libmpdec2:amd64 (2.4.2-2) ... Selecting previously unselected package libpython3.7-stdlib:amd64. Preparing to unpack .../libpython3.7-stdlib_3.7.3-2+deb10u3_amd64.deb ... Unpacking libpython3.7-stdlib:amd64 (3.7.3-2+deb10u3) ... Selecting previously unselected package python3.7. Preparing to unpack .../python3.7_3.7.3-2+deb10u3_amd64.deb ... Unpacking python3.7 (3.7.3-2+deb10u3) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../libpython3-stdlib_3.7.3-1_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.7.3-1) ... Setting up python3-minimal (3.7.3-1) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 21357 files and directories currently installed.) Preparing to unpack .../000-python3_3.7.3-1_amd64.deb ... Unpacking python3 (3.7.3-1) ... Selecting previously unselected package python3-pyparsing. Preparing to unpack .../001-python3-pyparsing_2.2.0+dfsg1-2_all.deb ... Unpacking python3-pyparsing (2.2.0+dfsg1-2) ... Selecting previously unselected package libxau6:amd64. Preparing to unpack .../002-libxau6_1%3a1.0.8-1+b2_amd64.deb ... Unpacking libxau6:amd64 (1:1.0.8-1+b2) ... Selecting previously unselected package libxdmcp6:amd64. Preparing to unpack .../003-libxdmcp6_1%3a1.1.2-3_amd64.deb ... Unpacking libxdmcp6:amd64 (1:1.1.2-3) ... Selecting previously unselected package libxcb1:amd64. Preparing to unpack .../004-libxcb1_1.13.1-2_amd64.deb ... Unpacking libxcb1:amd64 (1.13.1-2) ... Selecting previously unselected package libx11-data. Preparing to unpack .../005-libx11-data_2%3a1.6.7-1+deb10u2_all.deb ... Unpacking libx11-data (2:1.6.7-1+deb10u2) ... Selecting previously unselected package libx11-6:amd64. Preparing to unpack .../006-libx11-6_2%3a1.6.7-1+deb10u2_amd64.deb ... Unpacking libx11-6:amd64 (2:1.6.7-1+deb10u2) ... Selecting previously unselected package libxext6:amd64. Preparing to unpack .../007-libxext6_2%3a1.3.3-1+b2_amd64.deb ... Unpacking libxext6:amd64 (2:1.3.3-1+b2) ... Selecting previously unselected package lsb-base. Preparing to unpack .../008-lsb-base_10.2019051400_all.deb ... Unpacking lsb-base (10.2019051400) ... Selecting previously unselected package x11-common. Preparing to unpack .../009-x11-common_1%3a7.7+19_all.deb ... Unpacking x11-common (1:7.7+19) ... Selecting previously unselected package libice6:amd64. Preparing to unpack .../010-libice6_2%3a1.0.9-2_amd64.deb ... Unpacking libice6:amd64 (2:1.0.9-2) ... Selecting previously unselected package libsm6:amd64. Preparing to unpack .../011-libsm6_2%3a1.2.3-1_amd64.deb ... Unpacking libsm6:amd64 (2:1.2.3-1) ... Selecting previously unselected package libxt6:amd64. Preparing to unpack .../012-libxt6_1%3a1.1.5-1+b3_amd64.deb ... Unpacking libxt6:amd64 (1:1.1.5-1+b3) ... Selecting previously unselected package libxmu6:amd64. Preparing to unpack .../013-libxmu6_2%3a1.1.2-2+b3_amd64.deb ... Unpacking libxmu6:amd64 (2:1.1.2-2+b3) ... Selecting previously unselected package xclip. Preparing to unpack .../014-xclip_0.13-1_amd64.deb ... Unpacking xclip (0.13-1) ... Selecting previously unselected package python3-pyperclip. Preparing to unpack .../015-python3-pyperclip_1.6.4-1_all.deb ... Unpacking python3-pyperclip (1.6.4-1) ... Selecting previously unselected package python3-six. Preparing to unpack .../016-python3-six_1.12.0-1_all.deb ... Unpacking python3-six (1.12.0-1) ... Selecting previously unselected package python3-wcwidth. Preparing to unpack .../017-python3-wcwidth_0.1.7+dfsg1-3_all.deb ... Unpacking python3-wcwidth (0.1.7+dfsg1-3) ... Selecting previously unselected package python3-cmd2. Preparing to unpack .../018-python3-cmd2_0.8.5-2_all.deb ... Unpacking python3-cmd2 (0.8.5-2) ... Selecting previously unselected package sgml-base. Preparing to unpack .../019-sgml-base_1.29_all.deb ... Unpacking sgml-base (1.29) ... Selecting previously unselected package netbase. Preparing to unpack .../020-netbase_5.6_all.deb ... Unpacking netbase (5.6) ... Selecting previously unselected package libncurses6:amd64. Preparing to unpack .../021-libncurses6_6.1+20181013-2+deb10u2_amd64.deb ... Unpacking libncurses6:amd64 (6.1+20181013-2+deb10u2) ... Selecting previously unselected package libprocps7:amd64. Preparing to unpack .../022-libprocps7_2%3a3.3.15-2_amd64.deb ... Unpacking libprocps7:amd64 (2:3.3.15-2) ... Selecting previously unselected package procps. Preparing to unpack .../023-procps_2%3a3.3.15-2_amd64.deb ... Unpacking procps (2:3.3.15-2) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../024-sensible-utils_0.0.12_all.deb ... Unpacking sensible-utils (0.0.12) ... Selecting previously unselected package libapparmor1:amd64. Preparing to unpack .../025-libapparmor1_2.13.2-10_amd64.deb ... Unpacking libapparmor1:amd64 (2.13.2-10) ... Selecting previously unselected package libdbus-1-3:amd64. Preparing to unpack .../026-libdbus-1-3_1.12.20-0+deb10u1_amd64.deb ... Unpacking libdbus-1-3:amd64 (1.12.20-0+deb10u1) ... Selecting previously unselected package dbus. Preparing to unpack .../027-dbus_1.12.20-0+deb10u1_amd64.deb ... Unpacking dbus (1.12.20-0+deb10u1) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../028-libmagic-mgc_1%3a5.35-4+deb10u2_amd64.deb ... Unpacking libmagic-mgc (1:5.35-4+deb10u2) ... Selecting previously unselected package libmagic1:amd64. Preparing to unpack .../029-libmagic1_1%3a5.35-4+deb10u2_amd64.deb ... Unpacking libmagic1:amd64 (1:5.35-4+deb10u2) ... Selecting previously unselected package file. Preparing to unpack .../030-file_1%3a5.35-4+deb10u2_amd64.deb ... Unpacking file (1:5.35-4+deb10u2) ... Selecting previously unselected package gettext-base. Preparing to unpack .../031-gettext-base_0.19.8.1-9_amd64.deb ... Unpacking gettext-base (0.19.8.1-9) ... Selecting previously unselected package libpcre2-8-0:amd64. Preparing to unpack .../032-libpcre2-8-0_10.32-5_amd64.deb ... Unpacking libpcre2-8-0:amd64 (10.32-5) ... Selecting previously unselected package libpsl5:amd64. Preparing to unpack .../033-libpsl5_0.20.2-2_amd64.deb ... Unpacking libpsl5:amd64 (0.20.2-2) ... Selecting previously unselected package wget. Preparing to unpack .../034-wget_1.20.1-1.1_amd64.deb ... Unpacking wget (1.20.1-1.1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../035-python3-pkg-resources_40.8.0-1_all.deb ... Unpacking python3-pkg-resources (40.8.0-1) ... Selecting previously unselected package python3-dateutil. Preparing to unpack .../036-python3-dateutil_2.7.3-3_all.deb ... Unpacking python3-dateutil (2.7.3-3) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../037-python3-lib2to3_3.7.3-1_all.deb ... Unpacking python3-lib2to3 (3.7.3-1) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../038-python3-distutils_3.7.3-1_all.deb ... Unpacking python3-distutils (3.7.3-1) ... Selecting previously unselected package python3-editor. Preparing to unpack .../039-python3-editor_1.0.3-1_all.deb ... Unpacking python3-editor (1.0.3-1) ... Selecting previously unselected package python3-markupsafe. Preparing to unpack .../040-python3-markupsafe_1.1.0-1_amd64.deb ... Unpacking python3-markupsafe (1.1.0-1) ... Selecting previously unselected package python3-mako. Preparing to unpack .../041-python3-mako_1.0.7+ds1-1_all.deb ... Unpacking python3-mako (1.0.7+ds1-1) ... Selecting previously unselected package python3-sqlalchemy. Preparing to unpack .../042-python3-sqlalchemy_1.2.18+ds1-2_all.deb ... Unpacking python3-sqlalchemy (1.2.18+ds1-2) ... Selecting previously unselected package python3-alembic. Preparing to unpack .../043-python3-alembic_1.0.0-3_all.deb ... Unpacking python3-alembic (1.0.0-3) ... Selecting previously unselected package libjs-jquery. Preparing to unpack .../044-libjs-jquery_3.3.1~dfsg-3+deb10u1_all.deb ... Unpacking libjs-jquery (3.3.1~dfsg-3+deb10u1) ... Selecting previously unselected package libjs-underscore. Preparing to unpack .../045-libjs-underscore_1.9.1~dfsg-1+deb10u1_all.deb ... Unpacking libjs-underscore (1.9.1~dfsg-1+deb10u1) ... Selecting previously unselected package libjs-sphinxdoc. Preparing to unpack .../046-libjs-sphinxdoc_1.8.4-1_all.deb ... Unpacking libjs-sphinxdoc (1.8.4-1) ... Selecting previously unselected package alembic. Preparing to unpack .../047-alembic_1.0.0-3_all.deb ... Unpacking alembic (1.0.0-3) ... Selecting previously unselected package libsigsegv2:amd64. Preparing to unpack .../048-libsigsegv2_2.12-2_amd64.deb ... Unpacking libsigsegv2:amd64 (2.12-2) ... Selecting previously unselected package m4. Preparing to unpack .../049-m4_1.4.18-2_amd64.deb ... Unpacking m4 (1.4.18-2) ... Selecting previously unselected package autoconf. Preparing to unpack .../050-autoconf_2.69-11_all.deb ... Unpacking autoconf (2.69-11) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../051-autotools-dev_20180224.1_all.deb ... Unpacking autotools-dev (20180224.1) ... Selecting previously unselected package automake. Preparing to unpack .../052-automake_1%3a1.16.1-4_all.deb ... Unpacking automake (1:1.16.1-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../053-autopoint_0.19.8.1-9_all.deb ... Unpacking autopoint (0.19.8.1-9) ... Selecting previously unselected package openssl. Preparing to unpack .../054-openssl_1.1.1d-0+deb10u7_amd64.deb ... Unpacking openssl (1.1.1d-0+deb10u7) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../055-ca-certificates_20200601~deb10u2_all.deb ... Unpacking ca-certificates (20200601~deb10u2) ... Selecting previously unselected package libtool. Preparing to unpack .../056-libtool_2.4.6-9_all.deb ... Unpacking libtool (2.4.6-9) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../057-dh-autoreconf_19_all.deb ... Unpacking dh-autoreconf (19) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../058-libarchive-zip-perl_1.64-1_all.deb ... Unpacking libarchive-zip-perl (1.64-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../059-libfile-stripnondeterminism-perl_1.1.2-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.1.2-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../060-dh-strip-nondeterminism_1.1.2-1_all.deb ... Unpacking dh-strip-nondeterminism (1.1.2-1) ... Selecting previously unselected package libelf1:amd64. Preparing to unpack .../061-libelf1_0.176-1.1_amd64.deb ... Unpacking libelf1:amd64 (0.176-1.1) ... Selecting previously unselected package dwz. Preparing to unpack .../062-dwz_0.12-3_amd64.deb ... Unpacking dwz (0.12-3) ... Selecting previously unselected package libglib2.0-0:amd64. Preparing to unpack .../063-libglib2.0-0_2.58.3-2+deb10u3_amd64.deb ... Unpacking libglib2.0-0:amd64 (2.58.3-2+deb10u3) ... Selecting previously unselected package libicu63:amd64. Preparing to unpack .../064-libicu63_63.1-6+deb10u1_amd64.deb ... Unpacking libicu63:amd64 (63.1-6+deb10u1) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../065-libxml2_2.9.4+dfsg1-7+deb10u2_amd64.deb ... Unpacking libxml2:amd64 (2.9.4+dfsg1-7+deb10u2) ... Selecting previously unselected package libcroco3:amd64. Preparing to unpack .../066-libcroco3_0.6.12-3_amd64.deb ... Unpacking libcroco3:amd64 (0.6.12-3) ... Selecting previously unselected package gettext. Preparing to unpack .../067-gettext_0.19.8.1-9_amd64.deb ... Unpacking gettext (0.19.8.1-9) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../068-intltool-debian_0.35.0+20060710.5_all.deb ... Unpacking intltool-debian (0.35.0+20060710.5) ... Selecting previously unselected package po-debconf. Preparing to unpack .../069-po-debconf_1.0.21_all.deb ... Unpacking po-debconf (1.0.21) ... Selecting previously unselected package debhelper. Preparing to unpack .../070-debhelper_12.1.1_all.deb ... Unpacking debhelper (12.1.1) ... Selecting previously unselected package dh-python. Preparing to unpack .../071-dh-python_3.20190308_all.deb ... Unpacking dh-python (3.20190308) ... Selecting previously unselected package xml-core. Preparing to unpack .../072-xml-core_0.18+nmu1_all.deb ... Unpacking xml-core (0.18+nmu1) ... Selecting previously unselected package docutils-common. Preparing to unpack .../073-docutils-common_0.14+dfsg-4_all.deb ... Unpacking docutils-common (0.14+dfsg-4) ... Selecting previously unselected package python3-mccabe. Preparing to unpack .../074-python3-mccabe_0.6.1-2_all.deb ... Unpacking python3-mccabe (0.6.1-2) ... Selecting previously unselected package python3-pyflakes. Preparing to unpack .../075-python3-pyflakes_2.0.0-1_all.deb ... Unpacking python3-pyflakes (2.0.0-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../076-python3-setuptools_40.8.0-1_all.deb ... Unpacking python3-setuptools (40.8.0-1) ... Selecting previously unselected package python3-pycodestyle. Preparing to unpack .../077-python3-pycodestyle_2.4.0-2_all.deb ... Unpacking python3-pycodestyle (2.4.0-2) ... Selecting previously unselected package python3-flake8. Preparing to unpack .../078-python3-flake8_3.6.0-1_all.deb ... Unpacking python3-flake8 (3.6.0-1) ... Selecting previously unselected package flake8. Preparing to unpack .../079-flake8_3.6.0-1_all.deb ... Unpacking flake8 (3.6.0-1) ... Selecting previously unselected package fonts-glyphicons-halflings. Preparing to unpack .../080-fonts-glyphicons-halflings_1.009~3.4.1+dfsg-1_all.deb ... Unpacking fonts-glyphicons-halflings (1.009~3.4.1+dfsg-1) ... Selecting previously unselected package ieee-data. Preparing to unpack .../081-ieee-data_20180805.1_all.deb ... Unpacking ieee-data (20180805.1) ... Selecting previously unselected package libonig5:amd64. Preparing to unpack .../082-libonig5_6.9.1-1_amd64.deb ... Unpacking libonig5:amd64 (6.9.1-1) ... Selecting previously unselected package libjq1:amd64. Preparing to unpack .../083-libjq1_1.5+dfsg-2+b1_amd64.deb ... Unpacking libjq1:amd64 (1.5+dfsg-2+b1) ... Selecting previously unselected package jq. Preparing to unpack .../084-jq_1.5+dfsg-2+b1_amd64.deb ... Unpacking jq (1.5+dfsg-2+b1) ... Selecting previously unselected package libpng16-16:amd64. Preparing to unpack .../085-libpng16-16_1.6.36-6_amd64.deb ... Unpacking libpng16-16:amd64 (1.6.36-6) ... Selecting previously unselected package libfreetype6:amd64. Preparing to unpack .../086-libfreetype6_2.9.1-3+deb10u2_amd64.deb ... Unpacking libfreetype6:amd64 (2.9.1-3+deb10u2) ... Selecting previously unselected package libkeyutils1:amd64. Preparing to unpack .../087-libkeyutils1_1.6-6_amd64.deb ... Unpacking libkeyutils1:amd64 (1.6-6) ... Selecting previously unselected package libkrb5support0:amd64. Preparing to unpack .../088-libkrb5support0_1.17-3+deb10u3_amd64.deb ... Unpacking libkrb5support0:amd64 (1.17-3+deb10u3) ... Selecting previously unselected package libk5crypto3:amd64. Preparing to unpack .../089-libk5crypto3_1.17-3+deb10u3_amd64.deb ... Unpacking libk5crypto3:amd64 (1.17-3+deb10u3) ... Selecting previously unselected package libkrb5-3:amd64. Preparing to unpack .../090-libkrb5-3_1.17-3+deb10u3_amd64.deb ... Unpacking libkrb5-3:amd64 (1.17-3+deb10u3) ... Selecting previously unselected package libgssapi-krb5-2:amd64. Preparing to unpack .../091-libgssapi-krb5-2_1.17-3+deb10u3_amd64.deb ... Unpacking libgssapi-krb5-2:amd64 (1.17-3+deb10u3) ... Selecting previously unselected package libimagequant0:amd64. Preparing to unpack .../092-libimagequant0_2.12.2-1.1_amd64.deb ... Unpacking libimagequant0:amd64 (2.12.2-1.1) ... Selecting previously unselected package libjbig0:amd64. Preparing to unpack .../093-libjbig0_2.1-3.1+b2_amd64.deb ... Unpacking libjbig0:amd64 (2.1-3.1+b2) ... Selecting previously unselected package libjpeg62-turbo:amd64. Preparing to unpack .../094-libjpeg62-turbo_1%3a1.5.2-2+deb10u1_amd64.deb ... Unpacking libjpeg62-turbo:amd64 (1:1.5.2-2+deb10u1) ... Selecting previously unselected package libjs-bootstrap. Preparing to unpack .../095-libjs-bootstrap_3.4.1+dfsg-1_all.deb ... Unpacking libjs-bootstrap (3.4.1+dfsg-1) ... Selecting previously unselected package liblcms2-2:amd64. Preparing to unpack .../096-liblcms2-2_2.9-3_amd64.deb ... Unpacking liblcms2-2:amd64 (2.9-3) ... Selecting previously unselected package libsasl2-modules-db:amd64. Preparing to unpack .../097-libsasl2-modules-db_2.1.27+dfsg-1+deb10u1_amd64.deb ... Unpacking libsasl2-modules-db:amd64 (2.1.27+dfsg-1+deb10u1) ... Selecting previously unselected package libsasl2-2:amd64. Preparing to unpack .../098-libsasl2-2_2.1.27+dfsg-1+deb10u1_amd64.deb ... Unpacking libsasl2-2:amd64 (2.1.27+dfsg-1+deb10u1) ... Selecting previously unselected package libldap-common. Preparing to unpack .../099-libldap-common_2.4.47+dfsg-3+deb10u6_all.deb ... Unpacking libldap-common (2.4.47+dfsg-3+deb10u6) ... Selecting previously unselected package libldap-2.4-2:amd64. Preparing to unpack .../100-libldap-2.4-2_2.4.47+dfsg-3+deb10u6_amd64.deb ... Unpacking libldap-2.4-2:amd64 (2.4.47+dfsg-3+deb10u6) ... Selecting previously unselected package mysql-common. Preparing to unpack .../101-mysql-common_5.8+1.0.5_all.deb ... Unpacking mysql-common (5.8+1.0.5) ... Selecting previously unselected package mariadb-common. Preparing to unpack .../102-mariadb-common_1%3a10.3.31-0+deb10u1_all.deb ... Unpacking mariadb-common (1:10.3.31-0+deb10u1) ... Selecting previously unselected package libmariadb3:amd64. Preparing to unpack .../103-libmariadb3_1%3a10.3.31-0+deb10u1_amd64.deb ... Unpacking libmariadb3:amd64 (1:10.3.31-0+deb10u1) ... Selecting previously unselected package libnorm1:amd64. Preparing to unpack .../104-libnorm1_1.5.8+dfsg2-1_amd64.deb ... Unpacking libnorm1:amd64 (1.5.8+dfsg2-1) ... Selecting previously unselected package libpgm-5.2-0:amd64. Preparing to unpack .../105-libpgm-5.2-0_5.2.122~dfsg-3_amd64.deb ... Unpacking libpgm-5.2-0:amd64 (5.2.122~dfsg-3) ... Selecting previously unselected package libpq5:amd64. Preparing to unpack .../106-libpq5_11.13-0+deb10u1_amd64.deb ... Unpacking libpq5:amd64 (11.13-0+deb10u1) ... Selecting previously unselected package libsodium23:amd64. Preparing to unpack .../107-libsodium23_1.0.17-1_amd64.deb ... Unpacking libsodium23:amd64 (1.0.17-1) ... Selecting previously unselected package libsubunit-perl. Preparing to unpack .../108-libsubunit-perl_1.3.0-1_all.deb ... Unpacking libsubunit-perl (1.3.0-1) ... Selecting previously unselected package libwebp6:amd64. Preparing to unpack .../109-libwebp6_0.6.1-2+deb10u1_amd64.deb ... Unpacking libwebp6:amd64 (0.6.1-2+deb10u1) ... Selecting previously unselected package libtiff5:amd64. Preparing to unpack .../110-libtiff5_4.1.0+git191117-2~deb10u2_amd64.deb ... Unpacking libtiff5:amd64 (4.1.0+git191117-2~deb10u2) ... Selecting previously unselected package libwebpdemux2:amd64. Preparing to unpack .../111-libwebpdemux2_0.6.1-2+deb10u1_amd64.deb ... Unpacking libwebpdemux2:amd64 (0.6.1-2+deb10u1) ... Selecting previously unselected package libwebpmux3:amd64. Preparing to unpack .../112-libwebpmux3_0.6.1-2+deb10u1_amd64.deb ... Unpacking libwebpmux3:amd64 (0.6.1-2+deb10u1) ... Selecting previously unselected package libxslt1.1:amd64. Preparing to unpack .../113-libxslt1.1_1.1.32-2.2~deb10u1_amd64.deb ... Unpacking libxslt1.1:amd64 (1.1.32-2.2~deb10u1) ... Selecting previously unselected package libyaml-0-2:amd64. Preparing to unpack .../114-libyaml-0-2_0.2.1-1_amd64.deb ... Unpacking libyaml-0-2:amd64 (0.2.1-1) ... Selecting previously unselected package libzmq5:amd64. Preparing to unpack .../115-libzmq5_4.3.1-4+deb10u2_amd64.deb ... Unpacking libzmq5:amd64 (4.3.1-4+deb10u2) ... Selecting previously unselected package openstack-pkg-tools. Preparing to unpack .../116-openstack-pkg-tools_91_all.deb ... Unpacking openstack-pkg-tools (91) ... Selecting previously unselected package pycadf-common. Preparing to unpack .../117-pycadf-common_2.7.0-2_all.deb ... Unpacking pycadf-common (2.7.0-2) ... Selecting previously unselected package pyflakes3. Preparing to unpack .../118-pyflakes3_2.0.0-1_all.deb ... Unpacking pyflakes3 (2.0.0-1) ... Selecting previously unselected package python-babel-localedata. Preparing to unpack .../119-python-babel-localedata_2.6.0+dfsg.1-1_all.deb ... Unpacking python-babel-localedata (2.6.0+dfsg.1-1) ... Selecting previously unselected package python-extras. Preparing to unpack .../120-python-extras_1.0.0-3_all.deb ... Unpacking python-extras (1.0.0-3) ... Selecting previously unselected package python-pkg-resources. Preparing to unpack .../121-python-pkg-resources_40.8.0-1_all.deb ... Unpacking python-pkg-resources (40.8.0-1) ... Selecting previously unselected package python-setuptools. Preparing to unpack .../122-python-setuptools_40.8.0-1_all.deb ... Unpacking python-setuptools (40.8.0-1) ... Selecting previously unselected package python-six. Preparing to unpack .../123-python-six_1.12.0-1_all.deb ... Unpacking python-six (1.12.0-1) ... Selecting previously unselected package python-pbr. Preparing to unpack .../124-python-pbr_4.2.0-5_all.deb ... Unpacking python-pbr (4.2.0-5) ... Selecting previously unselected package python-linecache2. Preparing to unpack .../125-python-linecache2_1.0.0-3_all.deb ... Unpacking python-linecache2 (1.0.0-3) ... Selecting previously unselected package python-mimeparse. Preparing to unpack .../126-python-mimeparse_0.1.4-3.1_all.deb ... Unpacking python-mimeparse (0.1.4-3.1) ... Selecting previously unselected package python-traceback2. Preparing to unpack .../127-python-traceback2_1.4.0-5_all.deb ... Unpacking python-traceback2 (1.4.0-5) ... Selecting previously unselected package python-unittest2. Preparing to unpack .../128-python-unittest2_1.1.0-6.1_all.deb ... Unpacking python-unittest2 (1.1.0-6.1) ... Selecting previously unselected package python-testtools. Preparing to unpack .../129-python-testtools_2.3.0-5_all.deb ... Unpacking python-testtools (2.3.0-5) ... Selecting previously unselected package python-fixtures. Preparing to unpack .../130-python-fixtures_3.0.0-2_all.deb ... Unpacking python-fixtures (3.0.0-2) ... Selecting previously unselected package python-netaddr. Preparing to unpack .../131-python-netaddr_0.7.19-1_all.deb ... Unpacking python-netaddr (0.7.19-1) ... Selecting previously unselected package python-os-api-ref-common. Preparing to unpack .../132-python-os-api-ref-common_1.5.0+dfsg1-4_all.deb ... Unpacking python-os-api-ref-common (1.5.0+dfsg1-4) ... Selecting previously unselected package python-pastedeploy-tpl. Preparing to unpack .../133-python-pastedeploy-tpl_2.0.1-1_all.deb ... Unpacking python-pastedeploy-tpl (2.0.1-1) ... Selecting previously unselected package python-subunit. Preparing to unpack .../134-python-subunit_1.3.0-1_all.deb ... Unpacking python-subunit (1.3.0-1) ... Selecting previously unselected package python3-alabaster. Preparing to unpack .../135-python3-alabaster_0.7.8-1_all.deb ... Unpacking python3-alabaster (0.7.8-1) ... Selecting previously unselected package python3-all. Preparing to unpack .../136-python3-all_3.7.3-1_amd64.deb ... Unpacking python3-all (3.7.3-1) ... Selecting previously unselected package python3-vine. Preparing to unpack .../137-python3-vine_1.1.4+dfsg-2_all.deb ... Unpacking python3-vine (1.1.4+dfsg-2) ... Selecting previously unselected package python3-amqp. Preparing to unpack .../138-python3-amqp_2.4.0-2_all.deb ... Unpacking python3-amqp (2.4.0-2) ... Selecting previously unselected package python3-amqplib. Preparing to unpack .../139-python3-amqplib_1.0.2-1_all.deb ... Unpacking python3-amqplib (1.0.2-1) ... Selecting previously unselected package python3-anyjson. Preparing to unpack .../140-python3-anyjson_0.3.3-1_all.deb ... Unpacking python3-anyjson (0.3.3-1) ... Selecting previously unselected package python3-appdirs. Preparing to unpack .../141-python3-appdirs_1.4.3-1_all.deb ... Unpacking python3-appdirs (1.4.3-1) ... Selecting previously unselected package python3-asn1crypto. Preparing to unpack .../142-python3-asn1crypto_0.24.0-1_all.deb ... Unpacking python3-asn1crypto (0.24.0-1) ... Selecting previously unselected package python3-pbr. Preparing to unpack .../143-python3-pbr_4.2.0-5_all.deb ... Unpacking python3-pbr (4.2.0-5) ... Selecting previously unselected package python3-wrapt. Preparing to unpack .../144-python3-wrapt_1.10.11-1_amd64.deb ... Unpacking python3-wrapt (1.10.11-1) ... Selecting previously unselected package python3-debtcollector. Preparing to unpack .../145-python3-debtcollector_1.20.0-2_all.deb ... Unpacking python3-debtcollector (1.20.0-2) ... Selecting previously unselected package python3-prettytable. Preparing to unpack .../146-python3-prettytable_0.7.2-4_all.deb ... Unpacking python3-prettytable (0.7.2-4) ... Selecting previously unselected package python3-automaton. Preparing to unpack .../147-python3-automaton_1.15.0-1_all.deb ... Unpacking python3-automaton (1.15.0-1) ... Selecting previously unselected package python3-tz. Preparing to unpack .../148-python3-tz_2019.1-1_all.deb ... Unpacking python3-tz (2019.1-1) ... Selecting previously unselected package python3-babel. Preparing to unpack .../149-python3-babel_2.6.0+dfsg.1-1_all.deb ... Unpacking python3-babel (2.6.0+dfsg.1-1) ... Selecting previously unselected package python3-bashate. Preparing to unpack .../150-python3-bashate_0.6.0-1_all.deb ... Unpacking python3-bashate (0.6.0-1) ... Selecting previously unselected package python3-blinker. Preparing to unpack .../151-python3-blinker_1.4+dfsg1-0.2_all.deb ... Unpacking python3-blinker (1.4+dfsg1-0.2) ... Selecting previously unselected package python3-funcparserlib. Preparing to unpack .../152-python3-funcparserlib_0.3.6-7_all.deb ... Unpacking python3-funcparserlib (0.3.6-7) ... Selecting previously unselected package python3-pil:amd64. Preparing to unpack .../153-python3-pil_5.4.1-2+deb10u2_amd64.deb ... Unpacking python3-pil:amd64 (5.4.1-2+deb10u2) ... Selecting previously unselected package python3-webcolors. Preparing to unpack .../154-python3-webcolors_1.5-2_all.deb ... Unpacking python3-webcolors (1.5-2) ... Selecting previously unselected package python3-roman. Preparing to unpack .../155-python3-roman_2.0.0-3_all.deb ... Unpacking python3-roman (2.0.0-3) ... Selecting previously unselected package python3-docutils. Preparing to unpack .../156-python3-docutils_0.14+dfsg-4_all.deb ... Unpacking python3-docutils (0.14+dfsg-4) ... Selecting previously unselected package python3-reportlab-accel:amd64. Preparing to unpack .../157-python3-reportlab-accel_3.5.13-1+deb10u1_amd64.deb ... Unpacking python3-reportlab-accel:amd64 (3.5.13-1+deb10u1) ... Selecting previously unselected package python3-reportlab. Preparing to unpack .../158-python3-reportlab_3.5.13-1+deb10u1_all.deb ... Unpacking python3-reportlab (3.5.13-1+deb10u1) ... Selecting previously unselected package python3-blockdiag. Preparing to unpack .../159-python3-blockdiag_1.5.3+dfsg-5.2_all.deb ... Unpacking python3-blockdiag (1.5.3+dfsg-5.2) ... Selecting previously unselected package python3-soupsieve. Preparing to unpack .../160-python3-soupsieve_1.8+dfsg-1_all.deb ... Unpacking python3-soupsieve (1.8+dfsg-1) ... Selecting previously unselected package python3-bs4. Preparing to unpack .../161-python3-bs4_4.7.1-1_all.deb ... Unpacking python3-bs4 (4.7.1-1) ... Selecting previously unselected package python3-cachetools. Preparing to unpack .../162-python3-cachetools_3.1.0-2_all.deb ... Unpacking python3-cachetools (3.1.0-2) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../163-python3-certifi_2018.8.24-1_all.deb ... Unpacking python3-certifi (2018.8.24-1) ... Selecting previously unselected package python3-cffi-backend. Preparing to unpack .../164-python3-cffi-backend_1.12.2-1_amd64.deb ... Unpacking python3-cffi-backend (1.12.2-1) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../165-python3-chardet_3.0.4-3_all.deb ... Unpacking python3-chardet (3.0.4-3) ... Selecting previously unselected package python3-iso8601. Preparing to unpack .../166-python3-iso8601_0.1.11-1_all.deb ... Unpacking python3-iso8601 (0.1.11-1) ... Selecting previously unselected package python3-lxml:amd64. Preparing to unpack .../167-python3-lxml_4.3.2-1+deb10u3_amd64.deb ... Unpacking python3-lxml:amd64 (4.3.2-1+deb10u3) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../168-python3-cryptography_2.6.1-3+deb10u2_amd64.deb ... Unpacking python3-cryptography (2.6.1-3+deb10u2) ... Selecting previously unselected package python3-jwt. Preparing to unpack .../169-python3-jwt_1.7.0-2_all.deb ... Unpacking python3-jwt (1.7.0-2) ... Selecting previously unselected package python3-oauthlib. Preparing to unpack .../170-python3-oauthlib_2.1.0-1_all.deb ... Unpacking python3-oauthlib (2.1.0-1) ... Selecting previously unselected package python3-os-service-types. Preparing to unpack .../171-python3-os-service-types_1.3.0-2_all.deb ... Unpacking python3-os-service-types (1.3.0-2) ... Selecting previously unselected package python3-idna. Preparing to unpack .../172-python3-idna_2.6-1_all.deb ... Unpacking python3-idna (2.6-1) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../173-python3-urllib3_1.24.1-1_all.deb ... Unpacking python3-urllib3 (1.24.1-1) ... Selecting previously unselected package python3-requests. Preparing to unpack .../174-python3-requests_2.21.0-1_all.deb ... Unpacking python3-requests (2.21.0-1) ... Selecting previously unselected package python3-stevedore. Preparing to unpack .../175-python3-stevedore_1.29.0-2_all.deb ... Unpacking python3-stevedore (1.29.0-2) ... Selecting previously unselected package python3-keystoneauth1. Preparing to unpack .../176-python3-keystoneauth1_3.10.0-2_all.deb ... Unpacking python3-keystoneauth1 (3.10.0-2) ... Selecting previously unselected package python3-oslo.i18n. Preparing to unpack .../177-python3-oslo.i18n_3.21.0-2_all.deb ... Unpacking python3-oslo.i18n (3.21.0-2) ... Selecting previously unselected package python3-funcsigs. Preparing to unpack .../178-python3-funcsigs_1.0.2-4_all.deb ... Unpacking python3-funcsigs (1.0.2-4) ... Selecting previously unselected package python3-monotonic. Preparing to unpack .../179-python3-monotonic_1.1-2_all.deb ... Unpacking python3-monotonic (1.1-2) ... Selecting previously unselected package python3-netaddr. Preparing to unpack .../180-python3-netaddr_0.7.19-1_all.deb ... Unpacking python3-netaddr (0.7.19-1) ... Selecting previously unselected package python3-netifaces. Preparing to unpack .../181-python3-netifaces_0.10.4-1+b1_amd64.deb ... Unpacking python3-netifaces (0.10.4-1+b1) ... Selecting previously unselected package python3-oslo.utils. Preparing to unpack .../182-python3-oslo.utils_3.36.5-0+deb10u1_all.deb ... Unpacking python3-oslo.utils (3.36.5-0+deb10u1) ... Selecting previously unselected package python3-simplejson. Preparing to unpack .../183-python3-simplejson_3.16.0-1_amd64.deb ... Unpacking python3-simplejson (3.16.0-1) ... Selecting previously unselected package python3-cinderclient. Preparing to unpack .../184-python3-cinderclient_1%3a4.0.1-2_all.deb ... Unpacking python3-cinderclient (1:4.0.1-2) ... Selecting previously unselected package python3-unicodecsv. Preparing to unpack .../185-python3-unicodecsv_0.14.1-1_all.deb ... Unpacking python3-unicodecsv (0.14.1-1) ... Selecting previously unselected package python3-yaml. Preparing to unpack .../186-python3-yaml_3.13-2_amd64.deb ... Unpacking python3-yaml (3.13-2) ... Selecting previously unselected package python3-cliff. Preparing to unpack .../187-python3-cliff_2.13.0-1_all.deb ... Unpacking python3-cliff (2.13.0-1) ... Selecting previously unselected package python3-contextlib2. Preparing to unpack .../188-python3-contextlib2_0.5.5-1_all.deb ... Unpacking python3-contextlib2 (0.5.5-1) ... Selecting previously unselected package python3-coverage. Preparing to unpack .../189-python3-coverage_4.5.2+dfsg.1-1_amd64.deb ... Unpacking python3-coverage (4.5.2+dfsg.1-1) ... Selecting previously unselected package python3-crypto. Preparing to unpack .../190-python3-crypto_2.6.1-9+b1_amd64.deb ... Unpacking python3-crypto (2.6.1-9+b1) ... Selecting previously unselected package python3-dbus. Preparing to unpack .../191-python3-dbus_1.2.8-3_amd64.deb ... Unpacking python3-dbus (1.2.8-3) ... Selecting previously unselected package python3-decorator. Preparing to unpack .../192-python3-decorator_4.3.0-1.1_all.deb ... Unpacking python3-decorator (4.3.0-1.1) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../193-python3-packaging_19.0-1_all.deb ... Unpacking python3-packaging (19.0-1) ... Selecting previously unselected package python3-deprecation. Preparing to unpack .../194-python3-deprecation_2.0.6-1_all.deb ... Unpacking python3-deprecation (2.0.6-1) ... Selecting previously unselected package python3-restructuredtext-lint. Preparing to unpack .../195-python3-restructuredtext-lint_0.12.2-2_all.deb ... Unpacking python3-restructuredtext-lint (0.12.2-2) ... Selecting previously unselected package python3-doc8. Preparing to unpack .../196-python3-doc8_0.8.0-1_all.deb ... Unpacking python3-doc8 (0.8.0-1) ... Selecting previously unselected package python3-dogpile.cache. Preparing to unpack .../197-python3-dogpile.cache_0.6.2-6_all.deb ... Unpacking python3-dogpile.cache (0.6.2-6) ... Selecting previously unselected package python3-dracclient. Preparing to unpack .../198-python3-dracclient_1.3.1-1_all.deb ... Unpacking python3-dracclient (1.3.1-1) ... Selecting previously unselected package python3-dulwich. Preparing to unpack .../199-python3-dulwich_0.19.11-2_amd64.deb ... Unpacking python3-dulwich (0.19.11-2) ... Selecting previously unselected package python3-entrypoints. Preparing to unpack .../200-python3-entrypoints_0.3-1_all.deb ... Unpacking python3-entrypoints (0.3-1) ... Selecting previously unselected package python3-greenlet. Preparing to unpack .../201-python3-greenlet_0.4.15-2_amd64.deb ... Unpacking python3-greenlet (0.4.15-2) ... Selecting previously unselected package python3-eventlet. Preparing to unpack .../202-python3-eventlet_0.20.0-6_all.deb ... Unpacking python3-eventlet (0.20.0-6) ... Selecting previously unselected package python3-extras. Preparing to unpack .../203-python3-extras_1.0.0-3_all.deb ... Unpacking python3-extras (1.0.0-3) ... Selecting previously unselected package python3-fasteners. Preparing to unpack .../204-python3-fasteners_0.12.0-3_all.deb ... Unpacking python3-fasteners (0.12.0-3) ... Selecting previously unselected package python3-linecache2. Preparing to unpack .../205-python3-linecache2_1.0.0-3_all.deb ... Unpacking python3-linecache2 (1.0.0-3) ... Selecting previously unselected package python3-mimeparse. Preparing to unpack .../206-python3-mimeparse_0.1.4-3.1_all.deb ... Unpacking python3-mimeparse (0.1.4-3.1) ... Selecting previously unselected package python3-traceback2. Preparing to unpack .../207-python3-traceback2_1.4.0-5_all.deb ... Unpacking python3-traceback2 (1.4.0-5) ... Selecting previously unselected package python3-unittest2. Preparing to unpack .../208-python3-unittest2_1.1.0-6.1_all.deb ... Unpacking python3-unittest2 (1.1.0-6.1) ... Selecting previously unselected package python3-testtools. Preparing to unpack .../209-python3-testtools_2.3.0-5_all.deb ... Unpacking python3-testtools (2.3.0-5) ... Selecting previously unselected package python3-fixtures. Preparing to unpack .../210-python3-fixtures_3.0.0-2_all.deb ... Unpacking python3-fixtures (3.0.0-2) ... Selecting previously unselected package python3-future. Preparing to unpack .../211-python3-future_0.16.0-1_all.deb ... Unpacking python3-future (0.16.0-1) ... Selecting previously unselected package python3-futurist. Preparing to unpack .../212-python3-futurist_1.6.0-2_all.deb ... Unpacking python3-futurist (1.6.0-2) ... Selecting previously unselected package python3-openssl. Preparing to unpack .../213-python3-openssl_19.0.0-1_all.deb ... Unpacking python3-openssl (19.0.0-1) ... Selecting previously unselected package python3-json-pointer. Preparing to unpack .../214-python3-json-pointer_1.10-1_all.deb ... Unpacking python3-json-pointer (1.10-1) ... Selecting previously unselected package python3-jsonpatch. Preparing to unpack .../215-python3-jsonpatch_1.21-1_all.deb ... Unpacking python3-jsonpatch (1.21-1) ... Selecting previously unselected package python3-jsonschema. Preparing to unpack .../216-python3-jsonschema_2.6.0-4_all.deb ... Unpacking python3-jsonschema (2.6.0-4) ... Selecting previously unselected package python3-warlock. Preparing to unpack .../217-python3-warlock_1.2.0-2_all.deb ... Unpacking python3-warlock (1.2.0-2) ... Selecting previously unselected package python3-glanceclient. Preparing to unpack .../218-python3-glanceclient_1%3a2.13.1-1_all.deb ... Unpacking python3-glanceclient (1:2.13.1-1) ... Selecting previously unselected package python3-pep8. Preparing to unpack .../219-python3-pep8_1.7.1-3_all.deb ... Unpacking python3-pep8 (1.7.1-3) ... Selecting previously unselected package python3-hacking. Preparing to unpack .../220-python3-hacking_1.1.0-2_all.deb ... Unpacking python3-hacking (1.1.0-2) ... Selecting previously unselected package python3-imagesize. Preparing to unpack .../221-python3-imagesize_1.0.0-1_all.deb ... Unpacking python3-imagesize (1.0.0-1) ... Selecting previously unselected package python3-jmespath. Preparing to unpack .../222-python3-jmespath_0.9.4-1_all.deb ... Unpacking python3-jmespath (0.9.4-1) ... Selecting previously unselected package python3-munch. Preparing to unpack .../223-python3-munch_2.3.2-1_all.deb ... Unpacking python3-munch (2.3.2-1) ... Selecting previously unselected package python3-requestsexceptions. Preparing to unpack .../224-python3-requestsexceptions_1.4.0-1_all.deb ... Unpacking python3-requestsexceptions (1.4.0-1) ... Selecting previously unselected package python3-openstacksdk. Preparing to unpack .../225-python3-openstacksdk_0.17.2-2_all.deb ... Unpacking python3-openstacksdk (0.17.2-2) ... Selecting previously unselected package python3-osc-lib. Preparing to unpack .../226-python3-osc-lib_1.11.1-2_all.deb ... Unpacking python3-osc-lib (1.11.1-2) ... Selecting previously unselected package python3-ironic-inspector-client. Preparing to unpack .../227-python3-ironic-inspector-client_3.3.0-2_all.deb ... Unpacking python3-ironic-inspector-client (3.3.0-2) ... Selecting previously unselected package python3-oslo.context. Preparing to unpack .../228-python3-oslo.context_2.21.0-2_all.deb ... Unpacking python3-oslo.context (2.21.0-2) ... Selecting previously unselected package python3-msgpack. Preparing to unpack .../229-python3-msgpack_0.5.6-1+b1_amd64.deb ... Unpacking python3-msgpack (0.5.6-1+b1) ... Selecting previously unselected package python3-oslo.serialization. Preparing to unpack .../230-python3-oslo.serialization_2.27.0-2_all.deb ... Unpacking python3-oslo.serialization (2.27.0-2) ... Selecting previously unselected package python3-pyinotify. Preparing to unpack .../231-python3-pyinotify_0.9.6-1_all.deb ... Unpacking python3-pyinotify (0.9.6-1) ... Selecting previously unselected package python3-oslo.log. Preparing to unpack .../232-python3-oslo.log_3.39.0-2_all.deb ... Unpacking python3-oslo.log (3.39.0-2) ... Selecting previously unselected package python3-rfc3986. Preparing to unpack .../233-python3-rfc3986_0.3.1-2_all.deb ... Unpacking python3-rfc3986 (0.3.1-2) ... Selecting previously unselected package python3-oslo.config. Preparing to unpack .../234-python3-oslo.config_1%3a6.4.1-1_all.deb ... Unpacking python3-oslo.config (1:6.4.1-1) ... Selecting previously unselected package python3-oslo.concurrency. Preparing to unpack .../235-python3-oslo.concurrency_3.27.0-3_all.deb ... Unpacking python3-oslo.concurrency (3.27.0-3) ... Selecting previously unselected package python3-tempita. Preparing to unpack .../236-python3-tempita_0.5.2-2_all.deb ... Unpacking python3-tempita (0.5.2-2) ... Selecting previously unselected package python3-paste. Preparing to unpack .../237-python3-paste_3.0.6+dfsg-1_all.deb ... Unpacking python3-paste (3.0.6+dfsg-1) ... Selecting previously unselected package python3-pastedeploy. Preparing to unpack .../238-python3-pastedeploy_2.0.1-1_all.deb ... Unpacking python3-pastedeploy (2.0.1-1) ... Selecting previously unselected package python3-repoze.lru. Preparing to unpack .../239-python3-repoze.lru_0.7-1_all.deb ... Unpacking python3-repoze.lru (0.7-1) ... Selecting previously unselected package python3-routes. Preparing to unpack .../240-python3-routes_2.4.1-1_all.deb ... Unpacking python3-routes (2.4.1-1) ... Selecting previously unselected package python3-webob. Preparing to unpack .../241-python3-webob_1%3a1.8.5-1_all.deb ... Unpacking python3-webob (1:1.8.5-1) ... Selecting previously unselected package python3-oslo.service. Preparing to unpack .../242-python3-oslo.service_1.31.8-1_all.deb ... Unpacking python3-oslo.service (1.31.8-1) ... Selecting previously unselected package python3-ironic-lib. Preparing to unpack .../243-python3-ironic-lib_2.14.0-2_all.deb ... Unpacking python3-ironic-lib (2.14.0-2) ... Selecting previously unselected package python3-jinja2. Preparing to unpack .../244-python3-jinja2_2.10-2_all.deb ... Unpacking python3-jinja2 (2.10-2) ... Selecting previously unselected package python3-kafka. Preparing to unpack .../245-python3-kafka_1.4.3-1_all.deb ... Unpacking python3-kafka (1.4.3-1) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../246-python3-pygments_2.3.1+dfsg-1+deb10u2_all.deb ... Unpacking python3-pygments (2.3.1+dfsg-1+deb10u2) ... Selecting previously unselected package python3-kazoo. Preparing to unpack .../247-python3-kazoo_2.5.0-1_all.deb ... Unpacking python3-kazoo (2.5.0-1) ... Selecting previously unselected package python3-secretstorage. Preparing to unpack .../248-python3-secretstorage_2.3.1-2_all.deb ... Unpacking python3-secretstorage (2.3.1-2) ... Selecting previously unselected package python3-keyring. Preparing to unpack .../249-python3-keyring_17.1.1-1_all.deb ... Unpacking python3-keyring (17.1.1-1) ... Selecting previously unselected package python3-keystoneclient. Preparing to unpack .../250-python3-keystoneclient_1%3a3.17.0-2_all.deb ... Unpacking python3-keystoneclient (1:3.17.0-2) ... Selecting previously unselected package python3-memcache. Preparing to unpack .../251-python3-memcache_1.59-1_all.deb ... Unpacking python3-memcache (1.59-1) ... Selecting previously unselected package python3-oslo.cache. Preparing to unpack .../252-python3-oslo.cache_1.30.3-1_all.deb ... Unpacking python3-oslo.cache (1.30.3-1) ... Selecting previously unselected package python3-pycadf. Preparing to unpack .../253-python3-pycadf_2.7.0-2_all.deb ... Unpacking python3-pycadf (2.7.0-2) ... Selecting previously unselected package python3-keystonemiddleware. Preparing to unpack .../254-python3-keystonemiddleware_5.2.0-2_all.deb ... Unpacking python3-keystonemiddleware (5.2.0-2) ... Selecting previously unselected package python3-kombu. Preparing to unpack .../255-python3-kombu_4.2.1-3_all.deb ... Unpacking python3-kombu (4.2.1-3) ... Selecting previously unselected package python3-logutils. Preparing to unpack .../256-python3-logutils_0.3.3-5_all.deb ... Unpacking python3-logutils (0.3.3-5) ... Selecting previously unselected package python3-sqlparse. Preparing to unpack .../257-python3-sqlparse_0.2.4-1_all.deb ... Unpacking python3-sqlparse (0.2.4-1) ... Selecting previously unselected package python3-migrate. Preparing to unpack .../258-python3-migrate_0.11.0-5_all.deb ... Unpacking python3-migrate (0.11.0-5) ... Selecting previously unselected package python3-mock. Preparing to unpack .../259-python3-mock_2.0.0-4_all.deb ... Unpacking python3-mock (2.0.0-4) ... Selecting previously unselected package python3-mox3. Preparing to unpack .../260-python3-mox3_0.24.0-1_all.deb ... Unpacking python3-mox3 (0.24.0-1) ... Selecting previously unselected package python3-mysqldb. Preparing to unpack .../261-python3-mysqldb_1.3.10-2_amd64.deb ... Unpacking python3-mysqldb (1.3.10-2) ... Selecting previously unselected package python3-os-client-config. Preparing to unpack .../262-python3-os-client-config_1.31.2-2_all.deb ... Unpacking python3-os-client-config (1.31.2-2) ... Selecting previously unselected package python3-neutronclient. Preparing to unpack .../263-python3-neutronclient_1%3a6.9.1-1_all.deb ... Unpacking python3-neutronclient (1:6.9.1-1) ... Selecting previously unselected package sphinx-common. Preparing to unpack .../264-sphinx-common_1.8.4-1_all.deb ... Unpacking sphinx-common (1.8.4-1) ... Selecting previously unselected package python3-sphinx. Preparing to unpack .../265-python3-sphinx_1.8.4-1_all.deb ... Unpacking python3-sphinx (1.8.4-1) ... Selecting previously unselected package python3-openstackdocstheme. Preparing to unpack .../266-python3-openstackdocstheme_1.20.0-3_all.deb ... Unpacking python3-openstackdocstheme (1.20.0-3) ... Selecting previously unselected package python3-os-api-ref. Preparing to unpack .../267-python3-os-api-ref_1.5.0+dfsg1-4_all.deb ... Unpacking python3-os-api-ref (1.5.0+dfsg1-4) ... Selecting previously unselected package python3-os-traits. Preparing to unpack .../268-python3-os-traits_0.9.0-2_all.deb ... Unpacking python3-os-traits (0.9.0-2) ... Selecting previously unselected package python3-testresources. Preparing to unpack .../269-python3-testresources_2.0.0-2_all.deb ... Unpacking python3-testresources (2.0.0-2) ... Selecting previously unselected package python3-testscenarios. Preparing to unpack .../270-python3-testscenarios_0.5.0-2_all.deb ... Unpacking python3-testscenarios (0.5.0-2) ... Selecting previously unselected package python3-oslo.db. Preparing to unpack .../271-python3-oslo.db_4.40.0-3_all.deb ... Unpacking python3-oslo.db (4.40.0-3) ... Selecting previously unselected package python3-statsd. Preparing to unpack .../272-python3-statsd_3.2.1-2_all.deb ... Unpacking python3-statsd (3.2.1-2) ... Selecting previously unselected package python3-oslo.middleware. Preparing to unpack .../273-python3-oslo.middleware_3.36.0-2_all.deb ... Unpacking python3-oslo.middleware (3.36.0-2) ... Selecting previously unselected package python3-tenacity. Preparing to unpack .../274-python3-tenacity_4.12.0-2_all.deb ... Unpacking python3-tenacity (4.12.0-2) ... Selecting previously unselected package python3-zmq. Preparing to unpack .../275-python3-zmq_17.1.2-2+deb10u1_amd64.deb ... Unpacking python3-zmq (17.1.2-2+deb10u1) ... Selecting previously unselected package python3-oslo.messaging. Preparing to unpack .../276-python3-oslo.messaging_8.1.4-1+deb10u1_all.deb ... Unpacking python3-oslo.messaging (8.1.4-1+deb10u1) ... Selecting previously unselected package python3-oslo.policy. Preparing to unpack .../277-python3-oslo.policy_1.38.1-2_all.deb ... Unpacking python3-oslo.policy (1.38.1-2) ... Selecting previously unselected package python3-psutil. Preparing to unpack .../278-python3-psutil_5.5.1-1_amd64.deb ... Unpacking python3-psutil (5.5.1-1) ... Selecting previously unselected package python3-oslo.reports. Preparing to unpack .../279-python3-oslo.reports_1.28.0-2_all.deb ... Unpacking python3-oslo.reports (1.28.0-2) ... Selecting previously unselected package sudo. Preparing to unpack .../280-sudo_1.8.27-1+deb10u3_amd64.deb ... Unpacking sudo (1.8.27-1+deb10u3) ... Selecting previously unselected package python3-oslo.rootwrap. Preparing to unpack .../281-python3-oslo.rootwrap_5.14.1-2_all.deb ... Unpacking python3-oslo.rootwrap (5.14.1-2) ... Selecting previously unselected package python3-oslo.versionedobjects. Preparing to unpack .../282-python3-oslo.versionedobjects_1.33.3-2_all.deb ... Unpacking python3-oslo.versionedobjects (1.33.3-2) ... Selecting previously unselected package python3-voluptuous. Preparing to unpack .../283-python3-voluptuous_0.11.1-1_all.deb ... Unpacking python3-voluptuous (0.11.1-1) ... Selecting previously unselected package python3-subunit. Preparing to unpack .../284-python3-subunit_1.3.0-1_all.deb ... Unpacking python3-subunit (1.3.0-1) ... Selecting previously unselected package subunit. Preparing to unpack .../285-subunit_1.3.0-1_all.deb ... Unpacking subunit (1.3.0-1) ... Selecting previously unselected package python3-stestr. Preparing to unpack .../286-python3-stestr_2.1.0-2_all.deb ... Unpacking python3-stestr (2.1.0-2) ... Selecting previously unselected package python3-oslotest. Preparing to unpack .../287-python3-oslotest_1%3a3.6.0-2_all.deb ... Unpacking python3-oslotest (1:3.6.0-2) ... Selecting previously unselected package python3-osprofiler. Preparing to unpack .../288-python3-osprofiler_2.3.0-3_all.deb ... Unpacking python3-osprofiler (2.3.0-3) ... Selecting previously unselected package python3-simplegeneric. Preparing to unpack .../289-python3-simplegeneric_0.8.1-2_all.deb ... Unpacking python3-simplegeneric (0.8.1-2) ... Selecting previously unselected package python3-singledispatch. Preparing to unpack .../290-python3-singledispatch_3.4.0.3-2_all.deb ... Unpacking python3-singledispatch (3.4.0.3-2) ... Selecting previously unselected package python3-waitress. Preparing to unpack .../291-python3-waitress_1.2.0~b2-2_all.deb ... Unpacking python3-waitress (1.2.0~b2-2) ... Selecting previously unselected package python3-webtest. Preparing to unpack .../292-python3-webtest_2.0.32-1_all.deb ... Unpacking python3-webtest (2.0.32-1) ... Selecting previously unselected package python3-pecan. Preparing to unpack .../293-python3-pecan_1.3.2-2_all.deb ... Unpacking python3-pecan (1.3.2-2) ... Selecting previously unselected package python3-ply. Preparing to unpack .../294-python3-ply_3.11-3_all.deb ... Unpacking python3-ply (3.11-3) ... Selecting previously unselected package python3-pyasn1. Preparing to unpack .../295-python3-pyasn1_0.4.2-3_all.deb ... Unpacking python3-pyasn1 (0.4.2-3) ... Selecting previously unselected package python3-pycryptodome. Preparing to unpack .../296-python3-pycryptodome_3.6.1-2+b1_amd64.deb ... Unpacking python3-pycryptodome (3.6.1-2+b1) ... Selecting previously unselected package python3-pysmi. Preparing to unpack .../297-python3-pysmi_0.3.2-1_all.deb ... Unpacking python3-pysmi (0.3.2-1) ... Selecting previously unselected package python3-pysnmp4. Preparing to unpack .../298-python3-pysnmp4_4.4.6+repack1-1_all.deb ... Unpacking python3-pysnmp4 (4.4.6+repack1-1) ... Selecting previously unselected package python3-retrying. Preparing to unpack .../299-python3-retrying_1.3.3-3_all.deb ... Unpacking python3-retrying (1.3.3-3) ... Selecting previously unselected package python3-sushy. Preparing to unpack .../300-python3-sushy_1.3.1-3_all.deb ... Unpacking python3-sushy (1.3.1-3) ... Selecting previously unselected package python3-proliantutils. Preparing to unpack .../301-python3-proliantutils_2.6.0-2_all.deb ... Unpacking python3-proliantutils (2.6.0-2) ... Selecting previously unselected package python3-psycopg2. Preparing to unpack .../302-python3-psycopg2_2.7.7-1_amd64.deb ... Unpacking python3-psycopg2 (2.7.7-1) ... Selecting previously unselected package python3-pyghmi. Preparing to unpack .../303-python3-pyghmi_1.0.32-5_all.deb ... Unpacking python3-pyghmi (1.0.32-5) ... Selecting previously unselected package python3-pymemcache. Preparing to unpack .../304-python3-pymemcache_1.3.2-3_all.deb ... Unpacking python3-pymemcache (1.3.2-3) ... Selecting previously unselected package python3-pymysql. Preparing to unpack .../305-python3-pymysql_0.9.3-1_all.deb ... Unpacking python3-pymysql (0.9.3-1) ... Selecting previously unselected package python3-redis. Preparing to unpack .../306-python3-redis_3.2.1-2_all.deb ... Unpacking python3-redis (3.2.1-2) ... Selecting previously unselected package python3-scciclient. Preparing to unpack .../307-python3-scciclient_0.7.2-2_all.deb ... Unpacking python3-scciclient (0.7.2-2) ... Selecting previously unselected package python3-sendfile:amd64. Preparing to unpack .../308-python3-sendfile_2.0.1-2_amd64.deb ... Unpacking python3-sendfile:amd64 (2.0.1-2) ... Selecting previously unselected package python3-seqdiag. Preparing to unpack .../309-python3-seqdiag_0.9.5+dfsg-1.1_all.deb ... Unpacking python3-seqdiag (0.9.5+dfsg-1.1) ... Selecting previously unselected package python3-sphinxcontrib.httpdomain. Preparing to unpack .../310-python3-sphinxcontrib.httpdomain_1.5.0-2_all.deb ... Unpacking python3-sphinxcontrib.httpdomain (1.5.0-2) ... Selecting previously unselected package python3-sphinxcontrib-pecanwsme. Preparing to unpack .../311-python3-sphinxcontrib-pecanwsme_0.8.0-7_all.deb ... Unpacking python3-sphinxcontrib-pecanwsme (0.8.0-7) ... Selecting previously unselected package python3-sphinxcontrib.apidoc. Preparing to unpack .../312-python3-sphinxcontrib.apidoc_0.2.1-2_all.deb ... Unpacking python3-sphinxcontrib.apidoc (0.2.1-2) ... Selecting previously unselected package python3-sphinxcontrib.seqdiag. Preparing to unpack .../313-python3-sphinxcontrib.seqdiag_0.8.5-1_all.deb ... Unpacking python3-sphinxcontrib.seqdiag (0.8.5-1) ... Selecting previously unselected package python3-swiftclient. Preparing to unpack .../314-python3-swiftclient_1%3a3.6.0-2_all.deb ... Unpacking python3-swiftclient (1:3.6.0-2) ... Selecting previously unselected package python3-zope.interface. Preparing to unpack .../315-python3-zope.interface_4.3.2-1+b2_amd64.deb ... Unpacking python3-zope.interface (4.3.2-1+b2) ... Selecting previously unselected package python3-zake. Preparing to unpack .../316-python3-zake_0.2.2-2_all.deb ... Unpacking python3-zake (0.2.2-2) ... Selecting previously unselected package python3-tooz. Preparing to unpack .../317-python3-tooz_1.62.0-3_all.deb ... Unpacking python3-tooz (1.62.0-3) ... Selecting previously unselected package python3-wsme. Preparing to unpack .../318-python3-wsme_0.9.3-2_all.deb ... Unpacking python3-wsme (0.9.3-2) ... Setting up libpipeline1:amd64 (1.5.1-2) ... Setting up liblcms2-2:amd64 (2.9-3) ... Setting up lsb-base (10.2019051400) ... Setting up mysql-common (5.8+1.0.5) ... update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode Setting up libxau6:amd64 (1:1.0.8-1+b2) ... Setting up libsubunit-perl (1.3.0-1) ... Setting up libkeyutils1:amd64 (1.6-6) ... Setting up libapparmor1:amd64 (2.13.2-10) ... Setting up libpsl5:amd64 (0.20.2-2) ... Setting up libsodium23:amd64 (1.0.17-1) ... Setting up mime-support (3.62) ... Setting up libmagic-mgc (1:5.35-4+deb10u2) ... Setting up libarchive-zip-perl (1.64-1) ... Setting up libyaml-0-2:amd64 (0.2.1-1) ... Setting up libglib2.0-0:amd64 (2.58.3-2+deb10u3) ... No schema files found: doing nothing. Setting up fonts-glyphicons-halflings (1.009~3.4.1+dfsg-1) ... Setting up libprocps7:amd64 (2:3.3.15-2) ... Setting up libnorm1:amd64 (1.5.8+dfsg2-1) ... Setting up x11-common (1:7.7+19) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults invoke-rc.d: could not determine current runlevel Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix. Setting up libmagic1:amd64 (1:5.35-4+deb10u2) ... Setting up gettext-base (0.19.8.1-9) ... Setting up file (1:5.35-4+deb10u2) ... Setting up libldap-common (2.4.47+dfsg-3+deb10u6) ... Setting up libjbig0:amd64 (2.1-3.1+b2) ... Setting up libicu63:amd64 (63.1-6+deb10u1) ... Setting up python-babel-localedata (2.6.0+dfsg.1-1) ... Setting up libkrb5support0:amd64 (1.17-3+deb10u3) ... Setting up libsasl2-modules-db:amd64 (2.1.27+dfsg-1+deb10u1) ... Setting up mariadb-common (1:10.3.31-0+deb10u1) ... update-alternatives: using /etc/mysql/mariadb.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode Setting up autotools-dev (20180224.1) ... Setting up python-pastedeploy-tpl (2.0.1-1) ... Setting up libjpeg62-turbo:amd64 (1:1.5.2-2+deb10u1) ... Setting up libx11-data (2:1.6.7-1+deb10u2) ... Setting up libncurses6:amd64 (6.1+20181013-2+deb10u2) ... Setting up libdbus-1-3:amd64 (1.12.20-0+deb10u1) ... Setting up dbus (1.12.20-0+deb10u1) ... invoke-rc.d: could not determine current runlevel invoke-rc.d: policy-rc.d denied execution of start. Setting up libsigsegv2:amd64 (2.12-2) ... Setting up libimagequant0:amd64 (2.12.2-1.1) ... Setting up libpng16-16:amd64 (1.6.36-6) ... Setting up autopoint (0.19.8.1-9) ... Setting up libwebp6:amd64 (0.6.1-2+deb10u1) ... Setting up sudo (1.8.27-1+deb10u3) ... invoke-rc.d: could not determine current runlevel invoke-rc.d: policy-rc.d denied execution of start. Setting up libmariadb3:amd64 (1:10.3.31-0+deb10u1) ... Setting up libpcre2-8-0:amd64 (10.32-5) ... Setting up libk5crypto3:amd64 (1.17-3+deb10u3) ... Setting up libsasl2-2:amd64 (2.1.27+dfsg-1+deb10u1) ... Setting up pycadf-common (2.7.0-2) ... Setting up sensible-utils (0.0.12) ... Setting up libuchardet0:amd64 (0.0.6-3) ... Setting up procps (2:3.3.15-2) ... update-alternatives: using /usr/bin/w.procps to provide /usr/bin/w (w) in auto mode Setting up netbase (5.6) ... Setting up sgml-base (1.29) ... Setting up libkrb5-3:amd64 (1.17-3+deb10u3) ... Setting up libtiff5:amd64 (4.1.0+git191117-2~deb10u2) ... Setting up libmpdec2:amd64 (2.4.2-2) ... Setting up libjs-jquery (3.3.1~dfsg-3+deb10u1) ... Setting up openssl (1.1.1d-0+deb10u7) ... Setting up libwebpmux3:amd64 (0.6.1-2+deb10u1) ... Setting up libbsd0:amd64 (0.9.1-2+deb10u1) ... Setting up libelf1:amd64 (0.176-1.1) ... Setting up readline-common (7.0-5) ... Setting up libxml2:amd64 (2.9.4+dfsg1-7+deb10u2) ... Setting up libonig5:amd64 (6.9.1-1) ... Setting up libjs-bootstrap (3.4.1+dfsg-1) ... Setting up libreadline7:amd64 (7.0-5) ... Setting up libpgm-5.2-0:amd64 (5.2.122~dfsg-3) ... Setting up libjs-underscore (1.9.1~dfsg-1+deb10u1) ... Setting up libfile-stripnondeterminism-perl (1.1.2-1) ... Setting up libice6:amd64 (2:1.0.9-2) ... Setting up libxdmcp6:amd64 (1:1.1.2-3) ... Setting up libpython3.7-stdlib:amd64 (3.7.3-2+deb10u3) ... Setting up libxcb1:amd64 (1.13.1-2) ... Setting up wget (1.20.1-1.1) ... Setting up libtool (2.4.6-9) ... Setting up libjq1:amd64 (1.5+dfsg-2+b1) ... Setting up libwebpdemux2:amd64 (0.6.1-2+deb10u1) ... Setting up libldap-2.4-2:amd64 (2.4.47+dfsg-3+deb10u6) ... Setting up m4 (1.4.18-2) ... Setting up libpython2.7-stdlib:amd64 (2.7.16-2+deb10u1) ... Setting up ca-certificates (20200601~deb10u2) ... Updating certificates in /etc/ssl/certs... 137 added, 0 removed; done. Setting up libfreetype6:amd64 (2.9.1-3+deb10u2) ... Setting up bsdmainutils (11.1.2+b1) ... update-alternatives: using /usr/bin/bsd-write to provide /usr/bin/write (write) in auto mode update-alternatives: using /usr/bin/bsd-from to provide /usr/bin/from (from) in auto mode Setting up python-os-api-ref-common (1.5.0+dfsg1-4) ... Setting up libgssapi-krb5-2:amd64 (1.17-3+deb10u3) ... Setting up libcroco3:amd64 (0.6.12-3) ... Setting up libjs-sphinxdoc (1.8.4-1) ... Setting up autoconf (2.69-11) ... Setting up dwz (0.12-3) ... Setting up ieee-data (20180805.1) ... Setting up groff-base (1.22.4-3+deb10u1) ... Setting up xml-core (0.18+nmu1) ... Setting up jq (1.5+dfsg-2+b1) ... Setting up libxslt1.1:amd64 (1.1.32-2.2~deb10u1) ... Setting up libx11-6:amd64 (2:1.6.7-1+deb10u2) ... Setting up libsm6:amd64 (2:1.2.3-1) ... Setting up libpython3-stdlib:amd64 (3.7.3-1) ... Setting up automake (1:1.16.1-4) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up python3.7 (3.7.3-2+deb10u3) ... Setting up gettext (0.19.8.1-9) ... Setting up libzmq5:amd64 (4.3.1-4+deb10u2) ... Setting up python2.7 (2.7.16-2+deb10u1) ... Setting up libpython2-stdlib:amd64 (2.7.16-1) ... Setting up libpq5:amd64 (11.13-0+deb10u1) ... Setting up libxext6:amd64 (2:1.3.3-1+b2) ... Setting up python3 (3.7.3-1) ... Setting up python3-contextlib2 (0.5.5-1) ... Setting up python3-sendfile:amd64 (2.0.1-2) ... Setting up python3-kafka (1.4.3-1) ... Setting up man-db (2.8.5-2) ... Not building database; man-db/auto-update is not 'true'. Setting up python3-markupsafe (1.1.0-1) ... Setting up python2 (2.7.16-1) ... Setting up python3-psutil (5.5.1-1) ... Setting up python3-tz (2019.1-1) ... Setting up python3-sqlalchemy (1.2.18+ds1-2) ... Setting up python3-vine (1.1.4+dfsg-2) ... Setting up intltool-debian (0.35.0+20060710.5) ... Setting up python3-monotonic (1.1-2) ... Setting up python3-dogpile.cache (0.6.2-6) ... Setting up python3-mysqldb (1.3.10-2) ... Setting up python3-six (1.12.0-1) ... Setting up python3-simplejson (3.16.0-1) ... Setting up python3-pil:amd64 (5.4.1-2+deb10u2) ... Setting up libpython-stdlib:amd64 (2.7.16-1) ... Setting up python3-roman (2.0.0-3) ... Setting up python3-decorator (4.3.0-1.1) ... Setting up python3-pycodestyle (2.4.0-2) ... Setting up python3-jinja2 (2.10-2) ... Setting up python3-pygments (2.3.1+dfsg-1+deb10u2) ... Setting up python3-tempita (0.5.2-2) ... Setting up python3-webcolors (1.5-2) ... Setting up python3-iso8601 (0.1.11-1) ... Setting up python3-sqlparse (0.2.4-1) ... Setting up python3-wcwidth (0.1.7+dfsg1-3) ... Setting up python3-rfc3986 (0.3.1-2) ... Setting up python3-pyparsing (2.2.0+dfsg1-2) ... Setting up python3-certifi (2018.8.24-1) ... Setting up python3-linecache2 (1.0.0-3) ... Setting up python3-jmespath (0.9.4-1) ... Setting up python3-funcsigs (1.0.2-4) ... Setting up python3-zmq (17.1.2-2+deb10u1) ... Setting up sphinx-common (1.8.4-1) ... Setting up python3-greenlet (0.4.15-2) ... Setting up python3-reportlab-accel:amd64 (3.5.13-1+deb10u1) ... Setting up python3-idna (2.6-1) ... Setting up python3-wrapt (1.10.11-1) ... Setting up python3-psycopg2 (2.7.7-1) ... Setting up python3-funcparserlib (0.3.6-7) ... Setting up python3-pymysql (0.9.3-1) ... Setting up python3-redis (3.2.1-2) ... Setting up python3-fasteners (0.12.0-3) ... Setting up libxt6:amd64 (1:1.1.5-1+b3) ... Setting up python3-urllib3 (1.24.1-1) ... Setting up python3-unicodecsv (0.14.1-1) ... Setting up python3-reportlab (3.5.13-1+deb10u1) ... Setting up python3-netifaces (0.10.4-1+b1) ... Setting up python3-netaddr (0.7.19-1) ... Setting up python3-json-pointer (1.10-1) ... update-alternatives: using /usr/bin/python3-jsonpointer to provide /usr/bin/jsonpointer (jsonpointer) in auto mode Setting up python3-lxml:amd64 (4.3.2-1+deb10u3) ... Setting up python3-dulwich (0.19.11-2) ... Setting up python3-amqp (2.4.0-2) ... Setting up python3-pyasn1 (0.4.2-3) ... Setting up python3-crypto (2.6.1-9+b1) ... Setting up python3-dateutil (2.7.3-3) ... Setting up python3-mccabe (0.6.1-2) ... Setting up python3-anyjson (0.3.3-1) ... Setting up python3-msgpack (0.5.6-1+b1) ... Setting up python3-singledispatch (3.4.0.3-2) ... Setting up python3-voluptuous (0.11.1-1) ... Setting up python3-logutils (0.3.3-5) ... Setting up python3-simplegeneric (0.8.1-2) ... Setting up python3-prettytable (0.7.2-4) ... Setting up python3-lib2to3 (3.7.3-1) ... Setting up python3-appdirs (1.4.3-1) ... Setting up python (2.7.16-1) ... Setting up python3-asn1crypto (0.24.0-1) ... Setting up python3-soupsieve (1.8+dfsg-1) ... Setting up python3-mimeparse (0.1.4-3.1) ... Setting up python3-cffi-backend (1.12.2-1) ... Setting up python3-mako (1.0.7+ds1-1) ... Setting up python3-webob (1:1.8.5-1) ... Setting up python3-imagesize (1.0.0-1) ... Setting up python3-blinker (1.4+dfsg1-0.2) ... Setting up python-extras (1.0.0-3) ... Setting up python3-pkg-resources (40.8.0-1) ... Setting up python3-entrypoints (0.3-1) ... Setting up python3-distutils (3.7.3-1) ... Setting up dh-python (3.20190308) ... Setting up python3-pymemcache (1.3.2-3) ... Setting up python3-dbus (1.2.8-3) ... Setting up libxmu6:amd64 (2:1.1.2-2+b3) ... Setting up python3-waitress (1.2.0~b2-2) ... update-alternatives: using /usr/bin/waitress-serve-python3 to provide /usr/bin/waitress-serve (waitress-serve) in auto mode Setting up python3-setuptools (40.8.0-1) ... Setting up python3-repoze.lru (0.7-1) ... Setting up python3-jwt (1.7.0-2) ... Setting up python3-cachetools (3.1.0-2) ... Setting up python3-babel (2.6.0+dfsg.1-1) ... update-alternatives: using /usr/bin/pybabel-python3 to provide /usr/bin/pybabel (pybabel) in auto mode Setting up python3-zope.interface (4.3.2-1+b2) ... Setting up python3-pbr (4.2.0-5) ... update-alternatives: using /usr/bin/python3-pbr to provide /usr/bin/pbr (pbr) in auto mode Setting up python3-statsd (3.2.1-2) ... Setting up python-pkg-resources (40.8.0-1) ... Setting up python3-alabaster (0.7.8-1) ... Setting up python3-amqplib (1.0.2-1) ... Setting up python3-os-traits (0.9.0-2) ... Setting up python3-pycryptodome (3.6.1-2+b1) ... Setting up po-debconf (1.0.21) ... Setting up python3-jsonpatch (1.21-1) ... update-alternatives: using /usr/bin/python3-jsondiff to provide /usr/bin/jsondiff (jsondiff) in auto mode update-alternatives: using /usr/bin/python3-jsonpatch to provide /usr/bin/jsonpatch (jsonpatch) in auto mode Setting up python3-tenacity (4.12.0-2) ... Setting up python3-ply (3.11-3) ... Setting up python3-pyinotify (0.9.6-1) ... Setting up python3-retrying (1.3.3-3) ... Setting up python3-pyflakes (2.0.0-1) ... Setting up python3-extras (1.0.0-3) ... Setting up python3-memcache (1.59-1) ... Setting up python3-traceback2 (1.4.0-5) ... Setting up python3-all (3.7.3-1) ... Setting up python3-requestsexceptions (1.4.0-1) ... Setting up python3-coverage (4.5.2+dfsg.1-1) ... Setting up python3-yaml (3.13-2) ... Setting up python3-futurist (1.6.0-2) ... Setting up python3-debtcollector (1.20.0-2) ... Setting up python-linecache2 (1.0.0-3) ... Setting up python-mimeparse (0.1.4-3.1) ... Setting up python3-kombu (4.2.1-3) ... Setting up python3-munch (2.3.2-1) ... Setting up openstack-pkg-tools (91) ... Setting up python3-bs4 (4.7.1-1) ... Setting up python3-flake8 (3.6.0-1) ... Setting up python3-mock (2.0.0-4) ... Setting up python-six (1.12.0-1) ... Setting up python3-routes (2.4.1-1) ... Setting up python3-eventlet (0.20.0-6) ... Setting up python3-packaging (19.0-1) ... Setting up python3-chardet (3.0.4-3) ... Setting up python3-paste (3.0.6+dfsg-1) ... Setting up python3-jsonschema (2.6.0-4) ... update-alternatives: using /usr/bin/python3-jsonschema to provide /usr/bin/jsonschema (jsonschema) in auto mode Setting up python3-kazoo (2.5.0-1) ... Setting up python3-cryptography (2.6.1-3+deb10u2) ... Setting up python3-requests (2.21.0-1) ... Setting up python3-zake (0.2.2-2) ... Setting up python3-oslo.rootwrap (5.14.1-2) ... update-alternatives: using /usr/bin/python3-oslo-rootwrap to provide /usr/bin/oslo-rootwrap (oslo-rootwrap) in auto mode update-alternatives: using /usr/bin/python3-oslo-rootwrap-daemon to provide /usr/bin/oslo-rootwrap-daemon (oslo-rootwrap-daemon) in auto mode Setting up python3-unittest2 (1.1.0-6.1) ... update-alternatives: using /usr/bin/python3-unit2 to provide /usr/bin/unit2 (unit2) in auto mode Setting up xclip (0.13-1) ... Setting up python-setuptools (40.8.0-1) ... Setting up python3-deprecation (2.0.6-1) ... Setting up python3-oslo.context (2.21.0-2) ... Setting up python3-automaton (1.15.0-1) ... Setting up python3-pysmi (0.3.2-1) ... Setting up python3-os-service-types (1.3.0-2) ... Setting up python3-stevedore (1.29.0-2) ... Setting up python3-dracclient (1.3.1-1) ... Setting up python3-pyghmi (1.0.32-5) ... Setting up python-pbr (4.2.0-5) ... update-alternatives: using /usr/bin/python2-pbr to provide /usr/bin/pbr (pbr) in auto mode Setting up python3-future (0.16.0-1) ... update-alternatives: using /usr/bin/python3-futurize to provide /usr/bin/futurize (futurize) in auto mode update-alternatives: using /usr/bin/python3-pasteurize to provide /usr/bin/pasteurize (pasteurize) in auto mode Setting up python-netaddr (0.7.19-1) ... Setting up python3-bashate (0.6.0-1) ... update-alternatives: using /usr/bin/python3-bashate to provide /usr/bin/bashate (bashate) in auto mode Setting up python3-migrate (0.11.0-5) ... update-alternatives: using /usr/bin/python3-migrate to provide /usr/bin/migrate (migrate) in auto mode update-alternatives: using /usr/bin/python3-migrate-repository to provide /usr/bin/migrate-repository (migrate-repository) in auto mode Setting up python3-oslo.i18n (3.21.0-2) ... Setting up python3-editor (1.0.3-1) ... Setting up python3-pep8 (1.7.1-3) ... Setting up pyflakes3 (2.0.0-1) ... Setting up python3-testresources (2.0.0-2) ... Setting up python3-pysnmp4 (4.4.6+repack1-1) ... Setting up python3-sushy (1.3.1-3) ... Setting up python3-wsme (0.9.3-2) ... Setting up python3-warlock (1.2.0-2) ... Setting up python3-openssl (19.0.0-1) ... Setting up python-traceback2 (1.4.0-5) ... Setting up python3-pastedeploy (2.0.1-1) ... Setting up python3-pyperclip (1.6.4-1) ... Setting up python3-oslo.utils (3.36.5-0+deb10u1) ... Setting up flake8 (3.6.0-1) ... Setting up python3-oauthlib (2.1.0-1) ... Setting up python3-secretstorage (2.3.1-2) ... Setting up python3-cmd2 (0.8.5-2) ... Setting up python3-alembic (1.0.0-3) ... Setting up python3-keyring (17.1.1-1) ... Setting up python3-webtest (2.0.32-1) ... Setting up python-unittest2 (1.1.0-6.1) ... update-alternatives: using /usr/bin/python2-unit2 to provide /usr/bin/unit2 (unit2) in auto mode Setting up python3-keystoneauth1 (3.10.0-2) ... Setting up alembic (1.0.0-3) ... Setting up python3-hacking (1.1.0-2) ... Setting up python3-pecan (1.3.2-2) ... update-alternatives: using /usr/bin/python3-pecan to provide /usr/bin/pecan (pecan) in auto mode update-alternatives: using /usr/bin/python3-gunicorn_pecan to provide /usr/bin/gunicorn_pecan (gunicorn_pecan) in auto mode Setting up python3-oslo.serialization (2.27.0-2) ... Setting up python3-glanceclient (1:2.13.1-1) ... update-alternatives: using /usr/bin/python3-glance to provide /usr/bin/glance (glance) in auto mode Setting up python3-scciclient (0.7.2-2) ... Setting up python3-openstacksdk (0.17.2-2) ... Setting up python3-cinderclient (1:4.0.1-2) ... update-alternatives: using /usr/bin/python3-cinder to provide /usr/bin/cinder (cinder) in auto mode Setting up python3-os-client-config (1.31.2-2) ... Setting up python3-oslo.reports (1.28.0-2) ... Setting up python3-tooz (1.62.0-3) ... Setting up python-testtools (2.3.0-5) ... Setting up dh-autoreconf (19) ... Setting up python3-fixtures (3.0.0-2) ... Setting up python-subunit (1.3.0-1) ... Setting up python3-testtools (2.3.0-5) ... Setting up python-fixtures (3.0.0-2) ... Setting up debhelper (12.1.1) ... Setting up python3-subunit (1.3.0-1) ... Setting up python3-mox3 (0.24.0-1) ... Setting up dh-strip-nondeterminism (1.1.2-1) ... Setting up python3-testscenarios (0.5.0-2) ... Setting up subunit (1.3.0-1) ... Processing triggers for libc-bin (2.28-10) ... Processing triggers for sgml-base (1.29) ... Setting up docutils-common (0.14+dfsg-4) ... Processing triggers for sgml-base (1.29) ... Setting up python3-docutils (0.14+dfsg-4) ... update-alternatives: using /usr/share/docutils/scripts/python3/rst-buildhtml to provide /usr/bin/rst-buildhtml (rst-buildhtml) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2html to provide /usr/bin/rst2html (rst2html) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2html4 to provide /usr/bin/rst2html4 (rst2html4) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2html5 to provide /usr/bin/rst2html5 (rst2html5) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2latex to provide /usr/bin/rst2latex (rst2latex) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2man to provide /usr/bin/rst2man (rst2man) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2odt to provide /usr/bin/rst2odt (rst2odt) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2odt_prepstyles to provide /usr/bin/rst2odt_prepstyles (rst2odt_prepstyles) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2pseudoxml to provide /usr/bin/rst2pseudoxml (rst2pseudoxml) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2s5 to provide /usr/bin/rst2s5 (rst2s5) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2xetex to provide /usr/bin/rst2xetex (rst2xetex) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rst2xml to provide /usr/bin/rst2xml (rst2xml) in auto mode update-alternatives: using /usr/share/docutils/scripts/python3/rstpep2html to provide /usr/bin/rstpep2html (rstpep2html) in auto mode Setting up python3-restructuredtext-lint (0.12.2-2) ... update-alternatives: using /usr/bin/python3-restructuredtext-lint to provide /usr/bin/restructuredtext-lint (restructuredtext-lint) in auto mode update-alternatives: using /usr/bin/python3-rst-lint to provide /usr/bin/rst-lint (rst-lint) in auto mode Setting up python3-doc8 (0.8.0-1) ... update-alternatives: using /usr/bin/python3-doc8 to provide /usr/bin/doc8 (doc8) in auto mode Setting up python3-cliff (2.13.0-1) ... Setting up python3-oslo.config (1:6.4.1-1) ... update-alternatives: using /usr/bin/python3-oslo-config-generator to provide /usr/bin/oslo-config-generator (oslo-config-generator) in auto mode Setting up python3-oslo.middleware (3.36.0-2) ... Setting up python3-keystoneclient (1:3.17.0-2) ... Setting up python3-oslo.db (4.40.0-3) ... Setting up python3-blockdiag (1.5.3+dfsg-5.2) ... Setting up python3-osc-lib (1.11.1-2) ... Setting up python3-oslo.concurrency (3.27.0-3) ... update-alternatives: using /usr/bin/python3-lockutils-wrapper to provide /usr/bin/lockutils-wrapper (lockutils-wrapper) in auto mode Setting up python3-sphinx (1.8.4-1) ... update-alternatives: using /usr/share/sphinx/scripts/python3/sphinx-apidoc to provide /usr/bin/sphinx-apidoc (sphinx-apidoc) in auto mode update-alternatives: using /usr/share/sphinx/scripts/python3/sphinx-autogen to provide /usr/bin/sphinx-autogen (sphinx-autogen) in auto mode update-alternatives: using /usr/share/sphinx/scripts/python3/sphinx-build to provide /usr/bin/sphinx-build (sphinx-build) in auto mode update-alternatives: using /usr/share/sphinx/scripts/python3/sphinx-quickstart to provide /usr/bin/sphinx-quickstart (sphinx-quickstart) in auto mode Setting up python3-swiftclient (1:3.6.0-2) ... update-alternatives: using /usr/bin/python3-swift to provide /usr/bin/swift (swift) in auto mode Setting up python3-oslo.log (3.39.0-2) ... update-alternatives: using /usr/bin/python3-convert-json to provide /usr/bin/convert-json (convert-json) in auto mode Setting up python3-pycadf (2.7.0-2) ... Setting up python3-oslo.policy (1.38.1-2) ... update-alternatives: using /usr/bin/python3-oslopolicy-checker to provide /usr/bin/oslopolicy-checker (oslopolicy-checker) in auto mode update-alternatives: using /usr/bin/python3-oslopolicy-list-redundant to provide /usr/bin/oslopolicy-list-redundant (oslopolicy-list-redundant) in auto mode update-alternatives: using /usr/bin/python3-oslopolicy-policy-generator to provide /usr/bin/oslopolicy-policy-generator (oslopolicy-policy-generator) in auto mode update-alternatives: using /usr/bin/python3-oslopolicy-sample-generator to provide /usr/bin/oslopolicy-sample-generator (oslopolicy-sample-generator) in auto mode Setting up python3-stestr (2.1.0-2) ... update-alternatives: using /usr/bin/python3-stestr to provide /usr/bin/stestr (stestr) in auto mode Setting up python3-sphinxcontrib.httpdomain (1.5.0-2) ... Setting up python3-sphinxcontrib-pecanwsme (0.8.0-7) ... Setting up python3-seqdiag (0.9.5+dfsg-1.1) ... Setting up python3-sphinxcontrib.apidoc (0.2.1-2) ... Setting up python3-sphinxcontrib.seqdiag (0.8.5-1) ... Setting up python3-oslo.service (1.31.8-1) ... Setting up python3-proliantutils (2.6.0-2) ... Setting up python3-ironic-inspector-client (3.3.0-2) ... Setting up python3-oslotest (1:3.6.0-2) ... update-alternatives: using /usr/bin/python3-oslo_debug_helper to provide /usr/bin/oslo_debug_helper (oslo_debug_helper) in auto mode update-alternatives: using /usr/bin/python3-oslo_run_pre_release_tests to provide /usr/bin/oslo_run_pre_release_tests (oslo_run_pre_release_tests) in auto mode update-alternatives: using /usr/bin/python3-oslo_run_cross_tests to provide /usr/bin/oslo_run_cross_tests (oslo_run_cross_tests) in auto mode Setting up python3-osprofiler (2.3.0-3) ... update-alternatives: using /usr/bin/python3-osprofiler to provide /usr/bin/osprofiler (osprofiler) in auto mode Setting up python3-oslo.messaging (8.1.4-1+deb10u1) ... update-alternatives: using /usr/bin/python3-oslo-messaging-send-notification to provide /usr/bin/oslo-messaging-send-notification (oslo-messaging-send-notification) in auto mode update-alternatives: using /usr/bin/python3-oslo-messaging-zmq-broker to provide /usr/bin/oslo-messaging-zmq-broker (oslo-messaging-zmq-broker) in auto mode Setting up python3-openstackdocstheme (1.20.0-3) ... Setting up python3-neutronclient (1:6.9.1-1) ... update-alternatives: using /usr/bin/python3-neutron to provide /usr/bin/neutron (neutron) in auto mode Setting up python3-oslo.cache (1.30.3-1) ... Setting up python3-oslo.versionedobjects (1.33.3-2) ... Setting up python3-keystonemiddleware (5.2.0-2) ... Setting up python3-ironic-lib (2.14.0-2) ... Setting up python3-os-api-ref (1.5.0+dfsg1-4) ... Processing triggers for ca-certificates (20200601~deb10u2) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps Reading package lists... Building dependency tree... Reading state information... fakeroot is already the newest version (1.23-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package hostname: Name or service not known I: Running cd /build/ironic-11.1.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ironic_11.1.0-6_source.changes dpkg-buildpackage: info: source package ironic dpkg-buildpackage: info: source version 1:11.1.0-6 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Thomas Goirand dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 dpkg-source: info: using options from ironic-11.1.0/debian/source/options: --extend-diff-ignore=^[.]gitreview$ fakeroot debian/rules clean pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions dh clean --buildsystem=python_distutils --with python3,sphinxdoc,systemd debian/rules override_dh_auto_clean make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions python3 setup.py clean running clean rm -f debian/ironic-common.config debian/ironic-common.postinst debian/ironic-api.postinst debian/ironic-api.config rm -rf doc/build rm -f debian/*.init debian/*.service debian/*.upstart make[1]: Leaving directory '/build/ironic-11.1.0' dh_autoreconf_clean -O--buildsystem=python_distutils dh_clean -O--buildsystem=python_distutils debian/rules build pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions dh build --buildsystem=python_distutils --with python3,sphinxdoc,systemd dh_update_autotools_config -O--buildsystem=python_distutils dh_autoreconf -O--buildsystem=python_distutils dh_auto_configure -O--buildsystem=python_distutils dh_auto_configure: Please use the third-party "pybuild" build system instead of python-distutils dh_auto_configure: This feature will be removed in compat 12. debian/rules override_dh_auto_build make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-common.config /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-common.postinst /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-api.config /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-api.postinst pkgos-merge-templates ironic-api ironic endpoint Merging cs.po... Merging da.po... Merging de.po... Merging es.po... Merging fr.po... Merging gl.po... Merging it.po... Merging ja.po... Merging nl.po... Merging pl.po... Merging pt.po... Merging pt_BR.po... Merging ru.po... Merging sv.po... Merging zh_CN.po... pkgos-merge-templates ironic-common ironic db rabbit ksat Merging cs.po... Merging da.po... Merging de.po... Merging es.po... Merging fr.po... Merging gl.po... Merging it.po... Merging ja.po... Merging nl.po... Merging pl.po... Merging pt.po... Merging pt_BR.po... Merging ru.po... Merging sv.po... Merging zh_CN.po... make[1]: Leaving directory '/build/ironic-11.1.0' debian/rules override_dh_auto_test make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions echo "Do nothing..." Do nothing... make[1]: Leaving directory '/build/ironic-11.1.0' create-stamp debian/debhelper-build-stamp fakeroot debian/rules binary pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions dh binary --buildsystem=python_distutils --with python3,sphinxdoc,systemd dh_testroot -O--buildsystem=python_distutils dh_prep -O--buildsystem=python_distutils debian/rules override_dh_auto_install make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions echo "Do nothing..." Do nothing... make[1]: Leaving directory '/build/ironic-11.1.0' debian/rules override_dh_install make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions for i in 3.7 ; do \ python$i setup.py install --install-layout=deb --root /build/ironic-11.1.0/debian/tmp ; \ done running install [pbr] Generating AUTHORS [pbr] AUTHORS complete (0.0s) running build running build_py creating build creating build/lib creating build/lib/ironic creating build/lib/ironic/tests creating build/lib/ironic/tests/unit creating build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_utils.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_swift.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_states.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_rpc_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_rpc.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_release_mappings.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_raid.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_pxe_utils.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_policy.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_neutron.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_network.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_keystone.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_images.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_image_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_hash_ring.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_glance_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_fsm.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_exception.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_driver_factory.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_context.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_cinder.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/__init__.py -> build/lib/ironic/tests/unit/common creating build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/redfish creating build/lib/ironic/api creating build/lib/ironic/api/controllers copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers creating build/lib/ironic/tests/unit/drivers/modules/cimc copying ironic/tests/unit/drivers/modules/cimc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/cimc copying ironic/tests/unit/drivers/modules/cimc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/cimc copying ironic/tests/unit/drivers/modules/cimc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/cimc copying ironic/tests/unit/drivers/modules/cimc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/cimc creating build/lib/ironic/api/middleware copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/auth_token.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware creating build/lib/ironic/dhcp copying ironic/dhcp/none.py -> build/lib/ironic/dhcp copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp copying ironic/dhcp/base.py -> build/lib/ironic/dhcp copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp creating build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/utils.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_target.py -> build/lib/ironic/tests/unit/objects 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/db copying ironic/db/migration.py -> build/lib/ironic/db copying ironic/db/api.py -> build/lib/ironic/db copying ironic/db/__init__.py -> build/lib/ironic/db 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 copying ironic/tests/unit/drivers/modules/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_iscsi_deploy.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipmitool.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_inspector.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_image_cache.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_console_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_client.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_base_vendor.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/drivers creating build/lib/ironic/drivers/modules 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/hacking copying ironic/hacking/checks.py -> build/lib/ironic/hacking copying ironic/hacking/__init__.py -> build/lib/ironic/hacking creating build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api copying ironic/version.py -> build/lib/ironic copying ironic/__init__.py -> build/lib/ironic 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 copying ironic/drivers/snmp.py -> build/lib/ironic/drivers copying ironic/drivers/redfish.py -> build/lib/ironic/drivers copying ironic/drivers/oneview.py -> build/lib/ironic/drivers copying ironic/drivers/irmc.py -> build/lib/ironic/drivers copying ironic/drivers/ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/ilo.py -> build/lib/ironic/drivers copying ironic/drivers/hardware_type.py -> build/lib/ironic/drivers copying ironic/drivers/generic.py -> build/lib/ironic/drivers copying ironic/drivers/fake_hardware.py -> build/lib/ironic/drivers 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/conf copying ironic/conf/xclarity.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf copying ironic/conf/snmp.py -> build/lib/ironic/conf copying ironic/conf/service_catalog.py -> build/lib/ironic/conf copying ironic/conf/redfish.py -> build/lib/ironic/conf copying ironic/conf/pxe.py -> build/lib/ironic/conf copying ironic/conf/opts.py -> build/lib/ironic/conf copying ironic/conf/oneview.py -> build/lib/ironic/conf copying ironic/conf/neutron.py -> build/lib/ironic/conf copying ironic/conf/metrics_statsd.py -> build/lib/ironic/conf copying ironic/conf/metrics.py -> build/lib/ironic/conf copying ironic/conf/iscsi.py -> build/lib/ironic/conf copying ironic/conf/irmc.py -> build/lib/ironic/conf copying ironic/conf/ipmi.py -> build/lib/ironic/conf copying ironic/conf/inspector.py -> build/lib/ironic/conf copying ironic/conf/ilo.py -> build/lib/ironic/conf copying ironic/conf/healthcheck.py -> build/lib/ironic/conf copying ironic/conf/glance.py -> build/lib/ironic/conf copying ironic/conf/drac.py -> build/lib/ironic/conf copying ironic/conf/dhcp.py -> build/lib/ironic/conf copying ironic/conf/deploy.py -> build/lib/ironic/conf copying ironic/conf/default.py -> build/lib/ironic/conf copying ironic/conf/database.py -> build/lib/ironic/conf copying ironic/conf/console.py -> build/lib/ironic/conf copying ironic/conf/conductor.py -> build/lib/ironic/conf copying ironic/conf/cisco.py -> build/lib/ironic/conf copying ironic/conf/cinder.py -> build/lib/ironic/conf copying ironic/conf/auth.py -> build/lib/ironic/conf copying ironic/conf/audit.py -> build/lib/ironic/conf copying ironic/conf/api.py -> build/lib/ironic/conf copying ironic/conf/ansible.py -> build/lib/ironic/conf copying ironic/conf/agent.py -> build/lib/ironic/conf copying ironic/conf/__init__.py -> build/lib/ironic/conf creating build/lib/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/power.py -> build/lib/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/management.py -> build/lib/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/helper.py -> build/lib/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/__init__.py -> build/lib/ironic/drivers/modules/ucs creating build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible creating build/lib/ironic/drivers/modules/oneview copying ironic/drivers/modules/oneview/power.py -> build/lib/ironic/drivers/modules/oneview copying ironic/drivers/modules/oneview/management.py -> build/lib/ironic/drivers/modules/oneview copying ironic/drivers/modules/oneview/inspect.py -> build/lib/ironic/drivers/modules/oneview copying ironic/drivers/modules/oneview/deploy_utils.py -> build/lib/ironic/drivers/modules/oneview copying ironic/drivers/modules/oneview/deploy.py -> build/lib/ironic/drivers/modules/oneview copying ironic/drivers/modules/oneview/common.py -> build/lib/ironic/drivers/modules/oneview copying ironic/drivers/modules/oneview/__init__.py -> build/lib/ironic/drivers/modules/oneview creating build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible creating build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/utils.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_targets.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_connectors.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_ports.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_portgroups.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_nodes.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_traits.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_tags.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_conductor.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_chassis.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_bios_settings.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_api.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/base.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/__init__.py -> build/lib/ironic/tests/unit/db creating build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/vendor.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/power.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/management.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/inspect.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/firmware_processor.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/console.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/common.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/boot.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/bios.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/__init__.py -> build/lib/ironic/drivers/modules/ilo creating build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/utils.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/power.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/management.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/__init__.py -> build/lib/ironic/drivers/modules/redfish creating build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy creating build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/drivers/modules/snmp.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop_mgmt.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/iscsi_deploy.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/inspector.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_base_vendor.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules creating build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_factory.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/__init__.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/drivers/test_base.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/lib/ironic/tests/unit/drivers 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/functional copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional creating build/lib/ironic/objects copying ironic/objects/volume_target.py -> build/lib/ironic/objects copying ironic/objects/volume_connector.py -> build/lib/ironic/objects copying ironic/objects/trait.py -> build/lib/ironic/objects copying ironic/objects/portgroup.py -> build/lib/ironic/objects copying ironic/objects/port.py -> build/lib/ironic/objects copying ironic/objects/notification.py -> build/lib/ironic/objects copying ironic/objects/node.py -> build/lib/ironic/objects copying ironic/objects/indirection.py -> build/lib/ironic/objects copying ironic/objects/fields.py -> build/lib/ironic/objects copying ironic/objects/conductor.py -> build/lib/ironic/objects copying ironic/objects/chassis.py -> build/lib/ironic/objects copying ironic/objects/bios.py -> build/lib/ironic/objects copying ironic/objects/base.py -> build/lib/ironic/objects copying ironic/objects/__init__.py -> build/lib/ironic/objects creating build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ilo creating build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/common creating build/lib/ironic/common/glance_service creating build/lib/ironic/common/glance_service/v2 copying ironic/common/glance_service/v2/image_service.py -> build/lib/ironic/common/glance_service/v2 copying ironic/common/glance_service/v2/__init__.py -> build/lib/ironic/common/glance_service/v2 copying ironic/tests/base.py -> build/lib/ironic/tests copying ironic/tests/__init__.py -> build/lib/ironic/tests creating build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/boot.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/raid.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/power.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/management.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/inspect.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/common.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/bios.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/__init__.py -> build/lib/ironic/drivers/modules/irmc creating build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage creating build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/vendor_passthru.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/raid.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/power.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/management.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/job.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/inspect.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/common.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/bios.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/__init__.py -> build/lib/ironic/drivers/modules/drac creating build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/irmc creating build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_task_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_rpcapi.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_notification_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_base_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/mgr_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/__init__.py -> build/lib/ironic/tests/unit/conductor creating build/lib/ironic/common/glance_service/v1 copying ironic/common/glance_service/v1/image_service.py -> build/lib/ironic/common/glance_service/v1 copying ironic/common/glance_service/v1/__init__.py -> build/lib/ironic/common/glance_service/v1 creating build/lib/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/power.py -> build/lib/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/management.py -> build/lib/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/common.py -> build/lib/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/__init__.py -> build/lib/ironic/drivers/modules/cimc creating build/lib/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/test_helper.py -> build/lib/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ucs creating build/lib/ironic/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers creating build/lib/ironic/cmd copying ironic/cmd/dbsync.py -> build/lib/ironic/cmd copying ironic/cmd/conductor.py -> build/lib/ironic/cmd copying ironic/cmd/api.py -> build/lib/ironic/cmd copying ironic/cmd/__init__.py -> build/lib/ironic/cmd creating build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf creating build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/power.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/management.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/common.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/__init__.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/api/wsgi.py -> build/lib/ironic/api copying ironic/api/hooks.py -> build/lib/ironic/api copying ironic/api/expose.py -> build/lib/ironic/api copying ironic/api/config.py -> build/lib/ironic/api copying ironic/api/app.py -> build/lib/ironic/api copying ironic/api/__init__.py -> build/lib/ironic/api creating build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_job.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/drac creating build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity creating build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_types.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_root.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_port.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_node.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_expose.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_driver.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/__init__.py -> build/lib/ironic/tests/unit/api/controllers/v1 creating build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_dbsync.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_conductor.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/__init__.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit copying ironic/common/glance_service/service_utils.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/service.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/base_image_service.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/__init__.py -> build/lib/ironic/common/glance_service creating build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_target.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_connector.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/versions.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/utils.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/types.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/state.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/ramdisk.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/portgroup.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/port.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/notification_utils.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/node.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/driver.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/collection.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/chassis.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/bios.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/__init__.py -> build/lib/ironic/api/controllers/v1 copying ironic/common/wsgi_service.py -> build/lib/ironic/common copying ironic/common/utils.py -> build/lib/ironic/common copying ironic/common/swift.py -> build/lib/ironic/common copying ironic/common/states.py -> build/lib/ironic/common copying ironic/common/service.py -> build/lib/ironic/common copying ironic/common/rpc_service.py -> build/lib/ironic/common copying ironic/common/rpc.py -> build/lib/ironic/common copying ironic/common/release_mappings.py -> build/lib/ironic/common copying ironic/common/raid.py -> build/lib/ironic/common copying ironic/common/pxe_utils.py -> build/lib/ironic/common copying ironic/common/profiler.py -> build/lib/ironic/common copying ironic/common/policy.py -> build/lib/ironic/common copying ironic/common/neutron.py -> build/lib/ironic/common copying ironic/common/network.py -> build/lib/ironic/common copying ironic/common/keystone.py -> build/lib/ironic/common copying ironic/common/images.py -> build/lib/ironic/common copying ironic/common/image_service.py -> build/lib/ironic/common copying ironic/common/i18n.py -> build/lib/ironic/common copying ironic/common/hash_ring.py -> build/lib/ironic/common copying ironic/common/fsm.py -> build/lib/ironic/common copying ironic/common/faults.py -> build/lib/ironic/common copying ironic/common/exception.py -> build/lib/ironic/common copying ironic/common/driver_factory.py -> build/lib/ironic/common copying ironic/common/dhcp_factory.py -> build/lib/ironic/common copying ironic/common/context.py -> build/lib/ironic/common copying ironic/common/config.py -> build/lib/ironic/common copying ironic/common/cinder.py -> build/lib/ironic/common copying ironic/common/boot_modes.py -> build/lib/ironic/common copying ironic/common/boot_devices.py -> build/lib/ironic/common copying ironic/common/__init__.py -> build/lib/ironic/common creating build/lib/ironic/tests/unit/drivers/modules/oneview copying ironic/tests/unit/drivers/modules/oneview/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/oneview copying ironic/tests/unit/drivers/modules/oneview/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/oneview copying ironic/tests/unit/drivers/modules/oneview/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/oneview copying ironic/tests/unit/drivers/modules/oneview/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules/oneview copying ironic/tests/unit/drivers/modules/oneview/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/oneview copying ironic/tests/unit/drivers/modules/oneview/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/oneview copying ironic/tests/unit/drivers/modules/oneview/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/oneview creating build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/flat.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/common.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/__init__.py -> build/lib/ironic/drivers/modules/network creating build/lib/ironic/conductor copying ironic/conductor/utils.py -> build/lib/ironic/conductor copying ironic/conductor/task_manager.py -> build/lib/ironic/conductor copying ironic/conductor/rpcapi.py -> build/lib/ironic/conductor copying ironic/conductor/notification_utils.py -> build/lib/ironic/conductor copying ironic/conductor/manager.py -> build/lib/ironic/conductor copying ironic/conductor/base_manager.py -> build/lib/ironic/conductor copying ironic/conductor/__init__.py -> build/lib/ironic/conductor running egg_info creating ironic.egg-info writing ironic.egg-info/PKG-INFO writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt writing requirements to ironic.egg-info/requires.txt writing top-level names to ironic.egg-info/top_level.txt [pbr] Processing SOURCES.txt writing manifest file 'ironic.egg-info/SOURCES.txt' warning: no files found matching 'AUTHORS' warning: no files found matching 'ChangeLog' warning: no previously-included files found matching '.gitignore' warning: no previously-included files found matching '.gitreview' warning: no previously-included files matching '*.pyc' found anywhere in distribution reading manifest template 'MANIFEST.in' writing manifest file 'ironic.egg-info/SOURCES.txt' copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers creating build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/inventory -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks creating build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins creating build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library creating build/lib/ironic/drivers/modules/ansible/playbooks/roles creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/modules/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/db/sqlalchemy/alembic.ini -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/README -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/env.py -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/script.py.mako -> build/lib/ironic/db/sqlalchemy/alembic creating build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/api/app.wsgi -> build/lib/ironic/api copying ironic/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common running install_lib creating /build/ironic-11.1.0/debian/tmp creating /build/ironic-11.1.0/debian/tmp/usr creating /build/ironic-11.1.0/debian/tmp/usr/lib creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3 creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/base_manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/notification_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/rpcapi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/task_manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/api.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/dbsync.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/isolinux_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/grub_conf.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/boot_devices.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/boot_modes.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/cinder.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/config.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/context.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/dhcp_factory.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/driver_factory.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/exception.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/faults.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/fsm.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/hash_ring.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/i18n.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/images.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/keystone.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/network.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/policy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/profiler.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/pxe_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/raid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/release_mappings.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/rpc.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/rpc_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/states.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/swift.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/wsgi_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/base_image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/service_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1 copying build/lib/ironic/common/glance_service/v1/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1 copying build/lib/ironic/common/glance_service/v1/image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1 creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 copying build/lib/ironic/common/glance_service/v2/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 copying build/lib/ironic/common/glance_service/v2/image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects 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/conf copying build/lib/ironic/conf/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/agent.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/ansible.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/api.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/audit.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/auth.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/cinder.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/cisco.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/console.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/database.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/default.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/deploy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/dhcp.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/drac.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/glance.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/healthcheck.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/ilo.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/inspector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/ipmi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/irmc.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/iscsi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/metrics.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/metrics_statsd.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/oneview.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/opts.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/pxe.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/redfish.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/service_catalog.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf 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 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/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/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 copying build/lib/ironic/drivers/modules/master_grub_cfg.txt -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipxe_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/elilo_efi_pxe_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot.ipxe -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/flat.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/noop.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc copying build/lib/ironic/drivers/modules/cimc/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc copying build/lib/ironic/drivers/modules/cimc/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc copying build/lib/ironic/drivers/modules/cimc/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc copying build/lib/ironic/drivers/modules/cimc/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac 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/irmc copying build/lib/ironic/drivers/modules/irmc/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/raid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/boot.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_base_vendor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_client.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot_mode_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/console_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/deploy_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/fake.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/image_cache.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/inspector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipmitool.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/iscsi_deploy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/noop.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/noop_mgmt.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/snmp.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo 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/oneview copying build/lib/ironic/drivers/modules/oneview/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview copying build/lib/ironic/drivers/modules/oneview/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview copying build/lib/ironic/drivers/modules/oneview/deploy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview copying build/lib/ironic/drivers/modules/oneview/deploy_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview copying build/lib/ironic/drivers/modules/oneview/inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview copying build/lib/ironic/drivers/modules/oneview/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview copying build/lib/ironic/drivers/modules/oneview/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/shutdown.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/playbooks/inventory -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/deploy.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/playbooks/clean_steps.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/playbooks/clean.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/playbooks/ansible.cfg -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> /build/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/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 creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/script.py.mako -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/env.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/README -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic.ini -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/api.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/migration.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/models.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db copying build/lib/ironic/db/api.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db copying build/lib/ironic/db/migration.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/none.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/app.wsgi -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/app.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/config.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/expose.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/hooks.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/wsgi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/auth_token.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/json_ext.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/parsable_error.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/chassis.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/collection.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/driver.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/notification_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/port.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/portgroup.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/ramdisk.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/state.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/types.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/versions.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_connector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_target.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/link.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/root.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests copying build/lib/ironic/tests/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests copying build/lib/ironic/tests/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional copying build/lib/ironic/tests/functional/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/policy_fixture.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/raid_constants.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/stubs.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit copying build/lib/ironic/tests/unit/test_base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_dbsync.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/test_auth.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_task_manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy 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/api creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_chassis.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_driver.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_expose.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_port.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_portgroup.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_root.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_types.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_versions.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_target.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers copying build/lib/ironic/tests/unit/api/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_acl.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_audit.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_hooks.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_middleware.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_root.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_chassis.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_fields.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_notification.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_objects.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_port.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_portgroup.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_trait.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_connector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_target.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_grub_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_timeout.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_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/elilo_efi_pxe_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/boot.ipxe -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/__init__.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_cisco.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_drac.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_fake_hardware.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_generic.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_ilo.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_ipmi.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_irmc.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_oneview.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_redfish.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_snmp.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_utils.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_xclarity.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mocks.py -> /build/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/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/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 copying build/lib/ironic/tests/unit/drivers/modules/drac/test_common.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_inspect.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_job.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_management.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_periodic_task.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_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/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/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_raid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/test_cinder.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/test_external.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo 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/network copying build/lib/ironic/tests/unit/drivers/modules/network/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_flat.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_noop.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent_base_vendor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent_client.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_console_utils.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_deploy_utils.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_image_cache.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_inspector.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_ipmitool.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_iscsi_deploy.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_noop.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_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/cimc copying build/lib/ironic/tests/unit/drivers/modules/cimc/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_cinder.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_context.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_exception.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_fsm.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_glance_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_images.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_keystone.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_network.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_policy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_pxe_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_raid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_states.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_swift.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/base_manager.py to base_manager.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/manager.py to manager.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/notification_utils.py to notification_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/rpcapi.py to rpcapi.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/task_manager.py to task_manager.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/utils.py to utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/api.py to api.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/conductor.py to conductor.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/dbsync.py to dbsync.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/boot_devices.py to boot_devices.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/boot_modes.py to boot_modes.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/cinder.py to cinder.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/config.py to config.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/context.py to context.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/dhcp_factory.py to dhcp_factory.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/driver_factory.py to driver_factory.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/exception.py to exception.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/faults.py to faults.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/fsm.py to fsm.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/hash_ring.py to hash_ring.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/i18n.py to i18n.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/image_service.py to image_service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/images.py to images.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/keystone.py to keystone.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/network.py to network.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/neutron.py to neutron.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/policy.py to policy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/profiler.py to profiler.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/pxe_utils.py to pxe_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/raid.py to raid.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/release_mappings.py to release_mappings.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/rpc.py to rpc.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/rpc_service.py to rpc_service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/service.py to service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/states.py to states.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/swift.py to swift.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/utils.py to utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/wsgi_service.py to wsgi_service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/base_image_service.py to base_image_service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/service.py to service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/service_utils.py to service_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1/image_service.py to image_service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2/image_service.py to image_service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/base.py to base.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/bios.py to bios.cpython-37.pyc 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/conf/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/agent.py to agent.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ansible.py to ansible.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/api.py to api.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/audit.py to audit.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/auth.py to auth.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/cinder.py to cinder.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/cisco.py to cisco.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/conductor.py to conductor.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/console.py to console.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/database.py to database.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/default.py to default.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/deploy.py to deploy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/dhcp.py to dhcp.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/drac.py to drac.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/glance.py to glance.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/healthcheck.py to healthcheck.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ilo.py to ilo.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/inspector.py to inspector.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/ipmi.py to ipmi.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/irmc.py to irmc.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/iscsi.py to iscsi.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/metrics.py to metrics.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/metrics_statsd.py to metrics_statsd.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/neutron.py to neutron.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/oneview.py to oneview.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/opts.py to opts.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/pxe.py to pxe.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/redfish.py to redfish.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/service_catalog.py to service_catalog.cpython-37.pyc 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/__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/hacking/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking/checks.py to checks.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/__init__.py to __init__.cpython-37.pyc 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/drivers/modules/network/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/common.py to common.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/flat.py to flat.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/neutron.py to neutron.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/noop.py to noop.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/common.py to common.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/management.py to management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/power.py to power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/common.py to common.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/management.py to management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/power.py to power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/bios.py to bios.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/common.py to common.cpython-37.pyc 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/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 byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/inspect.py to inspect.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/management.py to management.cpython-37.pyc 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/__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 byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/agent_client.py to agent_client.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/boot_mode_utils.py to boot_mode_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/console_utils.py to console_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/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/fake.py to fake.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/image_cache.py to image_cache.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/inspector.py to inspector.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ipmitool.py to ipmitool.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/iscsi_deploy.py to iscsi_deploy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/noop.py to noop.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/noop_mgmt.py to noop_mgmt.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/pxe.py to pxe.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/snmp.py to snmp.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/management.py to management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/power.py to power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/utils.py to utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/bios.py to bios.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/boot.py to boot.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/common.py to common.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/console.py to console.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/firmware_processor.py to firmware_processor.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/inspect.py to inspect.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/management.py to management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/power.py to power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/vendor.py to vendor.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/common.py to common.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/deploy.py to deploy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/deploy_utils.py to deploy_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/inspect.py to inspect.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/management.py to management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/power.py to power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/stream_url.py to stream_url.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/root_hints.py to root_hints.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py to facts_wwn.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py to ironic_log.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/deploy.py to deploy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/helper.py to helper.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/management.py to management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/power.py to power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/cinder.py to cinder.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/external.py to external.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/noop.py to noop.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py to fb3f10dd262e_add_fault_to_node_table.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py to f6fdb920c182_set_pxe_enabled_true.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py to e918ff30eb42_resize_column_nodes_instance_info.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py to e294876e8028_add_node_network_interface.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py to dd34e1f1303b_add_resource_class_to_node.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py to dbefd6bdaa2c_add_default_column_to_.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py to daa1ba02d98_add_volume_connectors_table.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py to c14cef6dfedf_populate_node_network_interface.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py to bcdd431ba0bf_add_fields_for_all_interfaces.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py to bb59b63f55a_add_node_driver_internal_info.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py to b9117ac17882_add_node_deploy_step.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py to b4130a7fc904_create_nodetraits_table.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py to 868cb606a74a_add_version_field_in_base_class.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py to 82c315d60161_add_bios_settings.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py to 789acc877671_add_raid_config.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py to 664f85c2f622_add_conductor_group_to_nodes_conductors.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py to 60cf717201bc_add_standalone_ports_supported.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py to 5ea1b0d310e_added_port_group_table_and_altered_ports.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py to 5674c57409b9_replace_nostate_with_available.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py to 516faf1bb9b1_resizing_column_nodes_driver.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py to 4f399b21ae71_add_node_clean_step.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py to 493d8f27f235_add_portgroup_configuration_fields.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py to 48d6c242bb9b_add_node_tags.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py to 487deb87cc9d_add_conductor_affinity_and_online.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py to 405cfe08f18d_add_rescue_interface_to_node.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py to 3d86a077a3f2_add_port_physical_network.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py to 3cb628139ea4_nodes_add_console_enabled.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py to 3bea56f25597_add_unique_constraint_to_instance_uuid.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py to 3ae36a5f5131_add_logical_name.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py to 31baaf680d2b_add_node_instance_info.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py to 2fb93ffd2af1_increase_node_name_length.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py to 2d13bc3d6bba_add_bios_config_and_interface.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py to 2581ebaf0cb2_initial_migration.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py to 242cc6a923b3_add_node_maintenance_reason.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py to 2353895ecfae_add_conductor_hardware_interfaces_table.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py to 21b331f883ef_add_provision_updated_at.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py to 1e1d5ace7dc6_add_inspection_started_at_and_.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py to 1d6951876d68_add_storage_interface_db_field_and_.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py to 1a59178ebdf6_add_volume_targets_table.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py to 10b163d4481e_add_port_portgroup_internal_info.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/env.py to env.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/api.py to api.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/migration.py to migration.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/models.py to models.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/api.py to api.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/migration.py to migration.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/base.py to base.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/neutron.py to neutron.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/none.py to none.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/app.py to app.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/config.py to config.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/expose.py to expose.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/hooks.py to hooks.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/wsgi.py to wsgi.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/auth_token.py to auth_token.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/json_ext.py to json_ext.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/parsable_error.py to parsable_error.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/bios.py to bios.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/chassis.py to chassis.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/collection.py to collection.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/driver.py to driver.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/node.py to node.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/notification_utils.py to notification_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/port.py to port.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/portgroup.py to portgroup.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/ramdisk.py to ramdisk.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/state.py to state.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/types.py to types.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/utils.py to utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/versions.py to versions.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume.py to volume.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_connector.py to volume_connector.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_target.py to volume_target.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/base.py to base.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/link.py to link.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/root.py to root.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/base.py to base.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/policy_fixture.py to policy_fixture.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/raid_constants.py to raid_constants.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/stubs.py to stubs.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/test_base.py to test_base.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_conductor.py to test_conductor.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_dbsync.py to test_dbsync.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf/test_auth.py to test_auth.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/mgr_utils.py to mgr_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_base_manager.py to test_base_manager.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_manager.py to test_manager.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_notification_utils.py to test_notification_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_rpcapi.py to test_rpcapi.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_task_manager.py to test_task_manager.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_utils.py to test_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_factory.py to test_factory.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_neutron.py to test_neutron.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_api.py to test_api.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_migrations.py to test_migrations.cpython-37.pyc 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/api/controllers/v1/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_chassis.py to test_chassis.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_driver.py to test_driver.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_expose.py to test_expose.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_node.py to test_node.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_notification_utils.py to test_notification_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_port.py to test_port.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_portgroup.py to test_portgroup.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_ramdisk.py to test_ramdisk.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_root.py to test_root.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_types.py to test_types.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_utils.py to test_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_versions.py to test_versions.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume.py to test_volume.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_connector.py to test_volume_connector.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_target.py to test_volume_target.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/test_base.py to test_base.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/base.py to base.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_acl.py to test_acl.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_audit.py to test_audit.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_healthcheck.py to test_healthcheck.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_hooks.py to test_hooks.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_middleware.py to test_middleware.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_ospmiddleware.py to test_ospmiddleware.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_root.py to test_root.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/utils.py to utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_bios.py to test_bios.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_chassis.py to test_chassis.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_conductor.py to test_conductor.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_fields.py to test_fields.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_node.py to test_node.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_notification.py to test_notification.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_objects.py to test_objects.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_port.py to test_port.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_portgroup.py to test_portgroup.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_trait.py to test_trait.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_connector.py to test_volume_connector.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_target.py to test_volume_target.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/utils.py to utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_cisco.py to test_cisco.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_drac.py to test_drac.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_fake_hardware.py to test_fake_hardware.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_generic.py to test_generic.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ilo.py to test_ilo.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ipmi.py to test_ipmi.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_irmc.py to test_irmc.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_oneview.py to test_oneview.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_redfish.py to test_redfish.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/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/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/test_xclarity.py to test_xclarity.cpython-37.pyc 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/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/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 byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/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/drac/test_job.py to test_job.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/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/drac/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/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/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/irmc/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_common.py to test_common.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_inspect.py to test_inspect.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py to test_periodic_task.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_raid.py to test_raid.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_cinder.py to test_cinder.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_external.py to test_external.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_bios.py to test_bios.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_boot.py to test_boot.cpython-37.pyc 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/network/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_common.py to test_common.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_flat.py to test_flat.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_neutron.py to test_neutron.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_noop.py to test_noop.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/test_deploy.py to test_deploy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent.py to test_agent.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent_base_vendor.py to test_agent_base_vendor.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent_client.py to test_agent_client.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_console_utils.py to test_console_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/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/test_image_cache.py to test_image_cache.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_inspector.py to test_inspector.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_ipmitool.py to test_ipmitool.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py to test_iscsi_deploy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/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/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/cimc/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_common.py to test_common.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_management.py to test_management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_power.py to test_power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_management.py to test_management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_power.py to test_power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_utils.py to test_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_cinder.py to test_cinder.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_context.py to test_context.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_driver_factory.py to test_driver_factory.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_exception.py to test_exception.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_fsm.py to test_fsm.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_glance_service.py to test_glance_service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_hash_ring.py to test_hash_ring.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_image_service.py to test_image_service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_images.py to test_images.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_keystone.py to test_keystone.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_network.py to test_network.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_neutron.py to test_neutron.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_policy.py to test_policy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_pxe_utils.py to test_pxe_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_raid.py to test_raid.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_release_mappings.py to test_release_mappings.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc.py to test_rpc.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc_service.py to test_rpc_service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_states.py to test_states.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_swift.py to test_swift.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_utils.py to test_utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_wsgi_service.py to test_wsgi_service.cpython-37.pyc running install_data creating /build/ironic-11.1.0/debian/tmp/usr/etc creating /build/ironic-11.1.0/debian/tmp/usr/etc/ironic copying etc/ironic/rootwrap.conf -> /build/ironic-11.1.0/debian/tmp/usr/etc/ironic creating /build/ironic-11.1.0/debian/tmp/usr/etc/ironic/rootwrap.d copying etc/ironic/rootwrap.d/ironic-utils.filters -> /build/ironic-11.1.0/debian/tmp/usr/etc/ironic/rootwrap.d/ copying etc/ironic/rootwrap.d/ironic-lib.filters -> /build/ironic-11.1.0/debian/tmp/usr/etc/ironic/rootwrap.d/ copying etc/ironic/rootwrap.d/ironic-images.filters -> /build/ironic-11.1.0/debian/tmp/usr/etc/ironic/rootwrap.d/ running install_egg_info Copying ironic.egg-info to /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic-11.1.0.egg-info Skipping SOURCES.txt running install_scripts Installing ironic-api script to /build/ironic-11.1.0/debian/tmp/usr/bin Installing ironic-conductor script to /build/ironic-11.1.0/debian/tmp/usr/bin Installing ironic-dbsync script to /build/ironic-11.1.0/debian/tmp/usr/bin Installing ironic-rootwrap script to /build/ironic-11.1.0/debian/tmp/usr/bin Installing ironic-api-wsgi script to /build/ironic-11.1.0/debian/tmp/usr/bin /usr/lib/python3/dist-packages/pbr/packaging.py:407: EasyInstallDeprecationWarning: Use get_header header = easy_install.get_script_header("", executable, is_wininst) rm -rf /build/ironic-11.1.0/debian/tmp/usr/etc pkgos-dh_auto_test --no-py2 'ironic\.tests\.unit\.(?!(.*api\.controllers\.v1\.test_chassis\.TestPost\.test_create_chassis_unicode_description.*))' + PKGOS_USE_PY2=yes + PKGOS_USE_PY3=yes + PKGOS_TEST_PARALLEL=yes + PYTHONS=disabled + PYTHON3S=disabled + TEST_PARALLEL_OPT=--parallel + for i in $@ + case "${1}" in + PKGOS_USE_PY2=no + shift + for i in $@ + case "${1}" in + '[' no = yes ']' + '[' yes = yes ']' ++ py3versions -vr + PYTHON3S=3.7 + '[' yes = no ']' + for pyvers in ${PYTHONS} ${PYTHON3S} + '[' disabled = disabled ']' + continue + for pyvers in ${PYTHONS} ${PYTHON3S} + '[' 3.7 = disabled ']' ++ echo 3.7 ++ cut -d. -f1 + PYMAJOR=3 + 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 + export PYTHONPATH=/build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages + 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 2021-12-05 07:52:32.244 875100 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.291 875101 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.410 875099 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.467 875102 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.652 875104 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.701 875103 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.779 875107 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.792 875109 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.800 875106 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.804 875105 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.891 875112 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:32.937 875113 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:33.062 875108 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:33.119 875111 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:52:33.197 875110 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2021-12-05 07:53:05.035 875100 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:05.203 875101 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:05.266 875099 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:05.418 875102 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:05.505 875100 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:05.616 875101 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:05.769 875099 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:05.844 875100 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:05.886 875104 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:05.924 875100 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:05.926 875102 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:05.950 875101 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:05.957 875100 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:05.994 875103 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:06.089 875107 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:06.123 875099 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:06.127 875106 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:06.131 875101 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.150 875101 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:06.164 875109 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:06.185 875099 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.199 875099 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:06.220 875102 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:06.272 875102 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.286 875102 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:06.327 875104 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:06.363 875105 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:06.367 875103 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:06.378 875112 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:06.380 875107 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:06.414 875106 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:06.443 875113 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:06.451 875109 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:06.484 875104 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:06.519 875103 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:06.525 875104 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.530 875107 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:06.537 875104 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:06.551 875108 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:06.552 875106 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:06.562 875103 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.576 875107 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.577 875109 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:06.576 875103 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:06.584 875111 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:06.589 875107 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:06.599 875106 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.609 875106 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:06.622 875109 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.627 875105 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:06.634 875112 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:06.635 875109 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:06.804 875113 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:06.841 875110 INFO keyring.backend [-] Loading KWallet 2021-12-05 07:53:06.867 875105 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:06.871 875112 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:06.883 875108 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:06.893 875105 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.906 875113 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:06.906 875112 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.911 875105 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:06.916 875111 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:06.919 875112 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:06.963 875113 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:06.986 875113 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:07.026 875108 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:07.068 875111 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:07.072 875110 INFO keyring.backend [-] Loading SecretService 2021-12-05 07:53:07.075 875108 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:07.082 875108 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:07.094 875111 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:07.105 875111 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:07.152 875110 INFO keyring.backend [-] Loading Windows 2021-12-05 07:53:07.281 875110 INFO keyring.backend [-] Loading chainer 2021-12-05 07:53:07.298 875110 INFO keyring.backend [-] Loading macOS 2021-12-05 07:53:40.655 875100 INFO alembic.runtime.migration [req-d0adebed-b618-4138-9d57-786be1ea6fb2 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:40.656 875100 INFO alembic.runtime.migration [req-d0adebed-b618-4138-9d57-786be1ea6fb2 - - - - -] Will assume non-transactional DDL. 2021-12-05 07:53:40.707 875101 INFO alembic.runtime.migration [req-e512a93f-0b05-4cce-8fc2-b31a31a074df - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:40.708 875101 INFO alembic.runtime.migration [req-e512a93f-0b05-4cce-8fc2-b31a31a074df - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:40.760 875099 INFO alembic.runtime.migration [req-94ebe575-b57c-45b8-9efe-08a0abee4576 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:40.761 875099 INFO alembic.runtime.migration [req-94ebe575-b57c-45b8-9efe-08a0abee4576 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:41.024 875102 INFO alembic.runtime.migration [req-f0290185-7fd0-4002-bb4e-b3c9b1aa6887 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:41.025 875102 INFO alembic.runtime.migration [req-f0290185-7fd0-4002-bb4e-b3c9b1aa6887 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:41.672 875106 INFO alembic.runtime.migration [req-b3a99e6f-8898-4b2c-b166-227b005d480e - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:41.673 875106 INFO alembic.runtime.migration [req-b3a99e6f-8898-4b2c-b166-227b005d480e - - - - -] Will assume non-transactional DDL. 2021-12-05 07:53:41.723 875104 INFO alembic.runtime.migration [req-11a0689f-02e7-4a61-89b6-ce79af296e03 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:41.724 875104 INFO alembic.runtime.migration [req-11a0689f-02e7-4a61-89b6-ce79af296e03 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:41.986 875107 INFO alembic.runtime.migration [req-8e23602e-d929-44de-9fba-61ee4880c73b - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:41.987 875107 INFO alembic.runtime.migration [req-8e23602e-d929-44de-9fba-61ee4880c73b - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:42.088 875103 INFO alembic.runtime.migration [req-898eaea0-b932-42ac-8784-e5b745cacad8 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:42.089 875103 INFO alembic.runtime.migration [req-898eaea0-b932-42ac-8784-e5b745cacad8 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:42.460 875109 INFO alembic.runtime.migration [req-8882b316-8daf-475a-b580-dac12a159cd4 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:42.461 875109 INFO alembic.runtime.migration [req-8882b316-8daf-475a-b580-dac12a159cd4 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:42.648 875113 INFO alembic.runtime.migration [req-85a5ab40-a2c7-4eb3-b7fa-1517b08062f9 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:42.649 875113 INFO alembic.runtime.migration [req-85a5ab40-a2c7-4eb3-b7fa-1517b08062f9 - - - - -] Will assume non-transactional DDL. 2021-12-05 07:53:42.682 875105 INFO alembic.runtime.migration [req-af8b6afb-ae91-4614-bc39-7862497f6e60 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:42.683 875105 INFO alembic.runtime.migration [req-af8b6afb-ae91-4614-bc39-7862497f6e60 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:42.783 875112 INFO alembic.runtime.migration [req-5f05c048-358d-4924-add5-35930b294873 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:42.784 875112 INFO alembic.runtime.migration [req-5f05c048-358d-4924-add5-35930b294873 - - - - -] Will assume non-transactional DDL. ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:42.904 875108 INFO alembic.runtime.migration [req-3a6ce145-1bc4-4ef6-aa40-1bc14a2fc48f - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:42.905 875108 INFO alembic.runtime.migration [req-3a6ce145-1bc4-4ef6-aa40-1bc14a2fc48f - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:42.998 875111 INFO alembic.runtime.migration [req-35a75634-9a3f-4aa1-ab86-ab8643d949c0 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:42.999 875111 INFO alembic.runtime.migration [req-35a75634-9a3f-4aa1-ab86-ab8643d949c0 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2021-12-05 07:53:43.188 875110 INFO alembic.runtime.migration [req-4a609dd5-6c10-48c0-b6d2-e8bc679a9db7 - - - - -] Context impl SQLiteImpl. 2021-12-05 07:53:43.189 875110 INFO alembic.runtime.migration [req-4a609dd5-6c10-48c0-b6d2-e8bc679a9db7 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_sample ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_sample ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false ... ok ironic.tests.unit.api.controllers.v1.test_chassis.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.TestListChassis.test_get_custom_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis ... ok ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields ... ok ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface ... ok ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_ramdisk_api_policy ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_ramdisk_api_policy ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi ... ok ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description ... ok DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-db07a12f-5994-4127-a221-c1c3f3172caf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '7195e458-22a6-4b2e-9005-8d263835a581', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/7195e458-22a6-4b2e-9005-8d263835a581', 'rel': 'self'}, {'href': 'http://localhost/chassis/7195e458-22a6-4b2e-9005-8d263835a581', 'rel': 'bookmark'}]}, {'uuid': '1d58b440-1dcb-4d69-89f0-0bd848e6d2fd', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/1d58b440-1dcb-4d69-89f0-0bd848e6d2fd', 'rel': 'self'}, {'href': 'http://localhost/chassis/1d58b440-1dcb-4d69-89f0-0bd848e6d2fd', 'rel': 'bookmark'}]}, {'uuid': '43136351-d4ef-449f-b0f7-8c0493c085ee', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/43136351-d4ef-449f-b0f7-8c0493c085ee', 'rel': 'self'}, {'href': 'http://localhost/chassis/43136351-d4ef-449f-b0f7-8c0493c085ee', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&limit=3&marker=43136351-d4ef-449f-b0f7-8c0493c085ee'} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-08d248c5-9f0f-4447-a2df-4e599ef86f20 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f {} GOT:{'uuid': 'f75b72f3-e789-47fb-8956-5b99cd92669f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.030419+00:00'} GET: /v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f {} GOT:{'uuid': 'f75b72f3-e789-47fb-8956-5b99cd92669f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.030419+00:00'} GET: /chassis/f75b72f3-e789-47fb-8956-5b99cd92669f {} GOT:{'uuid': 'f75b72f3-e789-47fb-8956-5b99cd92669f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.030419+00:00'} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.385263+00:00'} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'foo': 123}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-f46f4c42-f7a0-4cc5-94b9-c4c62ebda50a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {"foo": 123}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:48.504534+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'foo': 123}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.504534+00:00'} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 204 No Content Openstack-Request-Id: req-a8ea5126-ac0a-4486-b8aa-19d7011bb90e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 GET: /v1/nodes?associated=true {} GOT:{'nodes': [{'uuid': '22c5da3f-230a-4675-ba0f-33800802592c', 'instance_uuid': '3aefd93e-09d5-4fbe-b2ad-08417e79663e', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/22c5da3f-230a-4675-ba0f-33800802592c', 'rel': 'self'}, {'href': 'http://localhost/nodes/22c5da3f-230a-4675-ba0f-33800802592c', 'rel': 'bookmark'}]}, {'uuid': 'bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'instance_uuid': 'e88ee2a5-da35-461b-899c-9a23edd776d2', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'rel': 'bookmark'}]}, {'uuid': '93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'instance_uuid': 'e06d5918-a9e0-4de4-9a85-c114dab9fbb6', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'rel': 'bookmark'}]}, {'uuid': '51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'instance_uuid': 'a3a92ceb-97fd-479b-9591-e3b2aef47a9f', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'rel': 'self'}, {'href': 'http://localhost/nodes/51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=True {} GOT:{'nodes': [{'uuid': '22c5da3f-230a-4675-ba0f-33800802592c', 'instance_uuid': '3aefd93e-09d5-4fbe-b2ad-08417e79663e', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/22c5da3f-230a-4675-ba0f-33800802592c', 'rel': 'self'}, {'href': 'http://localhost/nodes/22c5da3f-230a-4675-ba0f-33800802592c', 'rel': 'bookmark'}]}, {'uuid': 'bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'instance_uuid': 'e88ee2a5-da35-461b-899c-9a23edd776d2', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'rel': 'bookmark'}]}, {'uuid': '93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'instance_uuid': 'e06d5918-a9e0-4de4-9a85-c114dab9fbb6', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'rel': 'bookmark'}]}, {'uuid': '51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'instance_uuid': 'a3a92ceb-97fd-479b-9591-e3b2aef47a9f', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'rel': 'self'}, {'href': 'http://localhost/nodes/51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed ... ok DELETE: /v1/chassis/eb9d0f8f-0f7f-46b2-8614-d5769fb58d5e GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-47f14a3f-2f53-4f07-8a6a-1d804d31b3b1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eb9d0f8f-0f7f-46b2-8614-d5769fb58d5e could not be found.\", \"debuginfo\": null}"} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'new', 'op': 'replace'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9a4ee449-a620-484c-bf1c-90f65cae0414 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/chassis {'extra': {}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714 Openstack-Request-Id: req-da9affc7-b8dd-44c6-960e-2b195ce7e810 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d30888b0-c81d-40cf-894d-d1ea8ae5d714", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714", "rel": "self"}, {"href": "http://localhost/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:47.934539+00:00"} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': 'd30888b0-c81d-40cf-894d-d1ea8ae5d714', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714', 'rel': 'self'}, {'href': 'http://localhost/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714', 'rel': 'bookmark'}]}]} POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-5ca8676b-02e1-4186-9c1d-02bf8717e7ce X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null GET: /v1/drivers?detail=True {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2bf99009-fe2a-4872-a7a3-3238445a8e4a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} POST: /v1/nodes/node-39/vifs {'id': 'c234445d-6e9d-4e60-b0a6-609dcf00b1d3'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-83213cd6-e575-4037-8f01-bbf2961e0676 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'invalid%id^'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9f1610e5-2dfa-45f7-96b3-0e46151d2117 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received invalid%id^.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ad05905a-cc2c-4e52-bef6-3996aa1c4ac2 GOT:Response: 204 No Content Openstack-Request-Id: req-3fdf585f-3ac9-429f-822d-44642a3cbf54 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'conductor_group': ''} GET: /v1/nodes/node.json {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'node.json', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:49.069561+00:00'} GET: /v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e {} GOT:{'uuid': '8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.304601+00:00'} GET: /v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e {} GOT:{'uuid': '8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.304601+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource ... ok ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_node_api_policy ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_node_api_policy ... ok ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_driver_api_policy ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_driver_api_policy ... ok GET: /v1/chassis?fields=uuid,extra {} GOT:{'chassis': [{'uuid': 'd2b81bc4-81e7-4a64-b5d7-a6d614a4857c', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/d2b81bc4-81e7-4a64-b5d7-a6d614a4857c', 'rel': 'self'}, {'href': 'http://localhost/chassis/d2b81bc4-81e7-4a64-b5d7-a6d614a4857c', 'rel': 'bookmark'}]}, {'uuid': '071e3992-8896-4408-a5d8-7d3f1b3e2840', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/071e3992-8896-4408-a5d8-7d3f1b3e2840', 'rel': 'self'}, {'href': 'http://localhost/chassis/071e3992-8896-4408-a5d8-7d3f1b3e2840', 'rel': 'bookmark'}]}, {'uuid': '053b4d77-5c58-4ae7-8e98-a1482e7d3615', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/053b4d77-5c58-4ae7-8e98-a1482e7d3615', 'rel': 'self'}, {'href': 'http://localhost/chassis/053b4d77-5c58-4ae7-8e98-a1482e7d3615', 'rel': 'bookmark'}]}]} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b95a5ace-eeca-4a64-a8e0-4dc0f79ffbbf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} POST: /v1/drivers/fake-hardware-type/vendor_passthru {'test_key': 'test_value'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-49624dda-5e5f-42a1-8447-1cea9157ca08 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:{'vifs': []} DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3f4e56c9-a01f-49e2-848d-a83fc988c355 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eb3752e8-ee9b-4d1e-b1c5-317e15d30fc2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/nodes/?limit=3 {} GOT:{'nodes': [{'uuid': '85c702fc-20dc-41a4-9bda-9e24e2340d67', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/85c702fc-20dc-41a4-9bda-9e24e2340d67', 'rel': 'self'}, {'href': 'http://localhost/nodes/85c702fc-20dc-41a4-9bda-9e24e2340d67', 'rel': 'bookmark'}]}, {'uuid': '66d3decd-be17-4433-b69c-efecc3de7947', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/66d3decd-be17-4433-b69c-efecc3de7947', 'rel': 'self'}, {'href': 'http://localhost/nodes/66d3decd-be17-4433-b69c-efecc3de7947', 'rel': 'bookmark'}]}, {'uuid': 'c9a9c20c-e337-48c6-b654-095cb55ec5fa', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c9a9c20c-e337-48c6-b654-095cb55ec5fa', 'rel': 'self'}, {'href': 'http://localhost/nodes/c9a9c20c-e337-48c6-b654-095cb55ec5fa', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=c9a9c20c-e337-48c6-b654-095cb55ec5fa'} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes?detail=False {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f706e98e-3650-4a8a-b0ce-1507ea8da209 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/nodes/detail?instance_uuid=bb95771d-d292-4cfb-b04b-abf823930271 {} GOT:{'nodes': [{'uuid': '09b0114d-1576-4e49-af1b-32efc8da4a1a', 'instance_uuid': 'bb95771d-d292-4cfb-b04b-abf823930271', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/09b0114d-1576-4e49-af1b-32efc8da4a1a', 'rel': 'self'}, {'href': 'http://localhost/nodes/09b0114d-1576-4e49-af1b-32efc8da4a1a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/09b0114d-1576-4e49-af1b-32efc8da4a1a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/09b0114d-1576-4e49-af1b-32efc8da4a1a/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.951862+00:00'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=boot_interface,console_interface,deploy_interface,inspect_interface,management_interface,power_interface,raid_interface,vendor_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-339b03df-2ee0-4022-82da-ed127e3cc02e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?fields=uuid,instance_info {} GOT:{'nodes': [{'uuid': '6840da64-906f-463e-a247-e00d5fa15f34', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/6840da64-906f-463e-a247-e00d5fa15f34', 'rel': 'self'}, {'href': 'http://localhost/nodes/6840da64-906f-463e-a247-e00d5fa15f34', 'rel': 'bookmark'}]}, {'uuid': '63bd016f-a0bf-47e0-96d9-1c8340058f41', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/63bd016f-a0bf-47e0-96d9-1c8340058f41', 'rel': 'self'}, {'href': 'http://localhost/nodes/63bd016f-a0bf-47e0-96d9-1c8340058f41', 'rel': 'bookmark'}]}, {'uuid': '3d332118-81e9-488c-bdfc-b6272b6b8f69', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/3d332118-81e9-488c-bdfc-b6272b6b8f69', 'rel': 'self'}, {'href': 'http://localhost/nodes/3d332118-81e9-488c-bdfc-b6272b6b8f69', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9b3a41a1-97c6-4083-b2b2-f17802032c92 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found ... ok DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content Openstack-Request-Id: req-246011d9-2a13-4591-9852-a1477ca5e65b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b29f07ce-5a0e-4dec-9995-9081debd4dea X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\", \"debuginfo\": null}"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=extra,description {} GOT:{'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-fe2b8b58-17de-4e81-a125-296b75ca6304 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:48.725609+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.725609+00:00'} GET: /v1/drivers/test/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers {} GOT:{'drivers': []} GET: /v1/drivers?detail=True {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['direct', 'iscsi'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': None, 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': [], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-26af009f-d63e-40a9-9d6b-d2c97c004bed X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-742243a2-e0ed-4ed4-a563-42810fb4a89a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/nodes?detail=True {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:49.695009+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query ... ok ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_port_api_policy ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_port_api_policy ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ... ok PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c154cea7-f8a2-4337-b69a-7bb9c588debe X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870 [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a7fb7caa-ad16-4108-bff3-7f2c8d2c589d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "f57a0fe7-3dba-4e6e-86ed-212781132870", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870", "rel": "self"}, {"href": "http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes", "rel": "self"}, {"href": "http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes", "rel": "bookmark"}], "updated_at": "2021-12-04T17:53:48.052657+00:00", "created_at": "2021-12-04T17:53:48.000692+00:00"} GET: /v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870 {} GOT:{'uuid': 'f57a0fe7-3dba-4e6e-86ed-212781132870', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870', 'rel': 'self'}, {'href': 'http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-12-04T17:53:48.052657+00:00', 'created_at': '2021-12-04T17:53:48.000692+00:00'} PATCH: /v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-346006c2-2485-4213-a3dc-94d9041104db X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "f57a0fe7-3dba-4e6e-86ed-212781132870", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870", "rel": "self"}, {"href": "http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes", "rel": "self"}, {"href": "http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes", "rel": "bookmark"}], "updated_at": "2021-12-04T17:53:48.098703+00:00", "created_at": "2021-12-04T17:53:48.000692+00:00"} GET: /v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870 {} GOT:{'uuid': 'f57a0fe7-3dba-4e6e-86ed-212781132870', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870', 'rel': 'self'}, {'href': 'http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-12-04T17:53:48.098703+00:00', 'created_at': '2021-12-04T17:53:48.000692+00:00'} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 1334} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9c5777e9-c9e8-4b0a-a8cc-428c646a5c86 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: '1334'. Value should be string\", \"debuginfo\": null}"} DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-c4102088-d2c7-46c3-bedc-3a663dfe97f0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null DELETE: /v1/nodes/foo.json GOT:Response: 204 No Content Openstack-Request-Id: req-f6967e58-1434-41c5-9bcd-b1482efd6a17 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dcf24bea-0690-4b4b-95ce-2a12a639b0d1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9a9bbf21-20fe-4559-9100-14ebec437b4a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=boot_interface,console_interface,deploy_interface,inspect_interface,management_interface,power_interface,raid_interface,vendor_interface {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:{'boot_device': 'pxe', 'persistent': True} GET: /v1/nodes?driver=ipmi {} GOT:{'nodes': [{'uuid': 'a6cbbb2c-02a7-4771-86e2-4c89e4ff812b', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a6cbbb2c-02a7-4771-86e2-4c89e4ff812b', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6cbbb2c-02a7-4771-86e2-4c89e4ff812b', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=fake-hardware {} GOT:{'nodes': [{'uuid': '9decfe14-94d2-4f16-85a7-01ad4adb7503', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9decfe14-94d2-4f16-85a7-01ad4adb7503', 'rel': 'self'}, {'href': 'http://localhost/nodes/9decfe14-94d2-4f16-85a7-01ad4adb7503', 'rel': 'bookmark'}]}]} GET: /v1/nodes/node.json.json {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'node.json', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:49.735720+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version ... ok GET: /v1/chassis {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis?detail=False {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': 'c0c0da0d-f2e0-4229-a27f-9cfcafcbed4b', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c0c0da0d-f2e0-4229-a27f-9cfcafcbed4b', 'rel': 'self'}, {'href': 'http://localhost/chassis/c0c0da0d-f2e0-4229-a27f-9cfcafcbed4b', 'rel': 'bookmark'}]}, {'uuid': '87443dcc-f671-4537-b62d-444ea5e13b2a', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/87443dcc-f671-4537-b62d-444ea5e13b2a', 'rel': 'self'}, {'href': 'http://localhost/chassis/87443dcc-f671-4537-b62d-444ea5e13b2a', 'rel': 'bookmark'}]}, {'uuid': 'cbca438b-e399-464a-8f9d-9ad94b466bf6', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/cbca438b-e399-464a-8f9d-9ad94b466bf6', 'rel': 'self'}, {'href': 'http://localhost/chassis/cbca438b-e399-464a-8f9d-9ad94b466bf6', 'rel': 'bookmark'}]}, {'uuid': 'e52219eb-f5a0-4a03-ad14-fbc906a37b4d', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e52219eb-f5a0-4a03-ad14-fbc906a37b4d', 'rel': 'self'}, {'href': 'http://localhost/chassis/e52219eb-f5a0-4a03-ad14-fbc906a37b4d', 'rel': 'bookmark'}]}, {'uuid': 'ea3e5108-a2e5-462d-b29a-937a41dc7b3d', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ea3e5108-a2e5-462d-b29a-937a41dc7b3d', 'rel': 'self'}, {'href': 'http://localhost/chassis/ea3e5108-a2e5-462d-b29a-937a41dc7b3d', 'rel': 'bookmark'}]}]} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e7d0bd7e-0946-4d47-b977-9cce869843f1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bfc984bd-2731-4b8f-abb0-535f414c5e38 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The driver 'fake-hardware-type' is unknown.\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {} GOT:foo POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ff1a55cd-df3d-41ae-a864-44fdccf25f1e'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-10694227-e319-40f3-8b26-a47d4a7e3ead X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} DELETE: /v1/nodes/node-39/vifs/00a82a5d-cc51-497e-966c-c626f81da6a5 GOT:Response: 204 No Content Openstack-Request-Id: req-80850a2c-b23a-4e96-8dfd-229746be04cb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/8178560c-1e11-4b19-aef1-f59277275791 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e2c59c19-ffe9-450d-8ae7-6d7493282548 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8c0ddabc-d34b-4168-b4a8-c262866ef8c3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-784745b6-1431-487c-a44f-b56c0664eff4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b9747f8f-0924-4347-959b-fa3dbb58b607 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-466d2979-be43-4dae-a654-637b2a7c8a0f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'traits': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.077363+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ... ok GET: /nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e {} GOT:{'uuid': '8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.304601+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.564839+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:49.564839+00:00'} GET: /v1/nodes?instance_uuid=fb7020fe-c360-405d-a982-978371d68989 {} GOT:{'nodes': [{'uuid': 'b5ef685a-edef-4d5b-9e9d-22429fbf958c', 'instance_uuid': 'fb7020fe-c360-405d-a982-978371d68989', 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b5ef685a-edef-4d5b-9e9d-22429fbf958c', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5ef685a-edef-4d5b-9e9d-22429fbf958c', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.029505+00:00'} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e578172e-250a-42a8-91ab-9798e34f9f95 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid ... ok ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_portgroup_api_policy ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_portgroup_api_policy ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class ... ok GET: /v1/nodes/detail?sort_key=resource_class {} GOT:{'nodes': [{'uuid': 'e742bc9f-9a43-4634-8511-9d39068daf74', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e742bc9f-9a43-4634-8511-9d39068daf74', 'rel': 'self'}, {'href': 'http://localhost/nodes/e742bc9f-9a43-4634-8511-9d39068daf74', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e742bc9f-9a43-4634-8511-9d39068daf74/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e742bc9f-9a43-4634-8511-9d39068daf74/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e742bc9f-9a43-4634-8511-9d39068daf74/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e742bc9f-9a43-4634-8511-9d39068daf74/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:49.302897+00:00'}, {'uuid': 'e9244f80-f1dd-42fd-931f-2388680a11dc', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_2', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:49.297981+00:00'}, {'uuid': 'f8b4951b-016d-4d92-9b75-553e82b0b9a7', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_3', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:49.292737+00:00'}]} GET: /v1/nodes?provision_state=available {} GOT:{'nodes': [{'uuid': '4a2af214-664a-46ae-ab5f-72c833c33f52', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/4a2af214-664a-46ae-ab5f-72c833c33f52', 'rel': 'self'}, {'href': 'http://localhost/nodes/4a2af214-664a-46ae-ab5f-72c833c33f52', 'rel': 'bookmark'}]}]} GET: /v1/nodes?provision_state=deploying {} GOT:{'nodes': [{'uuid': '02afb037-84b0-49a1-849c-a01f75811ded', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'deploying', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/02afb037-84b0-49a1-849c-a01f75811ded', 'rel': 'self'}, {'href': 'http://localhost/nodes/02afb037-84b0-49a1-849c-a01f75811ded', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=foo {} GOT:{'nodes': [{'uuid': '625464c1-fcc4-4a33-9d71-733dc8482980', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/625464c1-fcc4-4a33-9d71-733dc8482980', 'rel': 'self'}, {'href': 'http://localhost/nodes/625464c1-fcc4-4a33-9d71-733dc8482980', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=bar {} GOT:{'nodes': [{'uuid': 'f553269c-db5c-4bfe-8336-a6da1b4569eb', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f553269c-db5c-4bfe-8336-a6da1b4569eb', 'rel': 'self'}, {'href': 'http://localhost/nodes/f553269c-db5c-4bfe-8336-a6da1b4569eb', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-03b86ba4-2cbf-478b-bdc9-a7f086b1834e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"} GET: /v1/nodes?traits=CUSTOM_TRAIT_1 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fa4e46dd-d8c5-43b1-95c4-6e2b5cebe4d5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:50.545711+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association ... ok ironic.tests.unit.api.controllers.v1.test_node.TestNodeObject.test_node_init ironic.tests.unit.api.controllers.v1.test_node.TestNodeObject.test_node_init ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-08c25ad3-f36a-404c-9195-3caa5830ef3b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/chassis/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7a7ce1a2-34f3-4f9e-8980-9310554d5e61 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3fd23712-51dc-4705-a3a1-1037ef9793a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"return_key": "return_value"} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'e4162adf-9ef8-43aa-991d-755d94c6c7fe'} GOT:Response: 204 No Content Openstack-Request-Id: req-681165e3-d9e1-4430-bd06-b2dbc0de3148 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-00b15a46-4aed-4651-ace3-f7bd723ebc28 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-7740fb5f-b177-461c-a9bd-9035a5114b69 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-39c7365a-4870-46f4-a5d2-25dae803f012 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\", \"debuginfo\": null}"} GET: /v1/nodes {} GOT:{'nodes': []} GET: /v1/nodes/spam/states/console {} GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} GET: /v1/nodes/detail?resource_class=test {} GOT:{'nodes': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.057901+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'foo': 'bar'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.057901+00:00'} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '18bffad2-af21-4716-ae60-d1467a2db4ac', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/18bffad2-af21-4716-ae60-d1467a2db4ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/18bffad2-af21-4716-ae60-d1467a2db4ac', 'rel': 'bookmark'}]}, {'uuid': '5a34df0d-6ecf-4cf2-870c-5a7474098e4c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5a34df0d-6ecf-4cf2-870c-5a7474098e4c', 'rel': 'self'}, {'href': 'http://localhost/nodes/5a34df0d-6ecf-4cf2-870c-5a7474098e4c', 'rel': 'bookmark'}]}, {'uuid': '73b956e3-c090-46d6-871a-ad6e4dbc01e4', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/73b956e3-c090-46d6-871a-ad6e4dbc01e4', 'rel': 'self'}, {'href': 'http://localhost/nodes/73b956e3-c090-46d6-871a-ad6e4dbc01e4', 'rel': 'bookmark'}]}, {'uuid': 'dd982270-19c6-46ea-886d-b0dba12f5e09', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/dd982270-19c6-46ea-886d-b0dba12f5e09', 'rel': 'self'}, {'href': 'http://localhost/nodes/dd982270-19c6-46ea-886d-b0dba12f5e09', 'rel': 'bookmark'}]}, {'uuid': 'd863b04f-9d1d-4b1f-9abe-11b6a606b08b', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d863b04f-9d1d-4b1f-9abe-11b6a606b08b', 'rel': 'self'}, {'href': 'http://localhost/nodes/d863b04f-9d1d-4b1f-9abe-11b6a606b08b', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '2000-01-01T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden ... ok GET: /v1/nodes/detail?traits=CUSTOM_TRAIT_1 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b21e1e9e-978e-4c8c-82a9-5dfc21c0bd4c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:{'supported_boot_devices': ['pxe']} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.140049+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': '2015-03-18T19:20:00+00:00', 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.140049+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.457153+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:50.457153+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:{'portgroups': [{'uuid': '1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'rel': 'bookmark'}]}, {'uuid': '693cff3d-ccb0-48c3-83c0-84bb224d9de6', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/693cff3d-ccb0-48c3-83c0-84bb224d9de6', 'rel': 'self'}, {'href': 'http://localhost/portgroups/693cff3d-ccb0-48c3-83c0-84bb224d9de6', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} GOT:{'nodes': [{'uuid': '584fabce-d96d-4281-a577-ac0d0692487c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/584fabce-d96d-4281-a577-ac0d0692487c', 'rel': 'self'}, {'href': 'http://localhost/nodes/584fabce-d96d-4281-a577-ac0d0692487c', 'rel': 'bookmark'}]}, {'uuid': 'eb50e162-c9e5-4f6e-a40a-a54d3327c160', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/eb50e162-c9e5-4f6e-a40a-a54d3327c160', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb50e162-c9e5-4f6e-a40a-a54d3327c160', 'rel': 'bookmark'}]}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} GOT:{'nodes': [{'uuid': '584fabce-d96d-4281-a577-ac0d0692487c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/584fabce-d96d-4281-a577-ac0d0692487c', 'rel': 'self'}, {'href': 'http://localhost/nodes/584fabce-d96d-4281-a577-ac0d0692487c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=1&marker=584fabce-d96d-4281-a577-ac0d0692487c'} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'test', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20a929f0-d41f-4cef-b56f-37b23070e7d3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "test", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": "2021-12-04T17:53:50.020726+00:00", "created_at": "2021-12-04T17:53:49.953455+00:00"} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'chassis-new-description', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed83b9d8-7a28-4964-95bf-b956266dd8ce X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "chassis-new-description", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": "2000-01-01T00:00:00+00:00", "created_at": "2021-12-04T17:53:50.159606+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'chassis-new-description', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': '2000-01-01T00:00:00+00:00', 'created_at': '2021-12-04T17:53:50.159606+00:00'} GET: /v1/drivers?detail=False {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-072ac5d1-a68a-4b25-a0ad-a2a55f4bdc11 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['direct', 'iscsi'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/properties {} GOT:{} GET: /drivers/fake-hardware-type/properties {} GET: /v1/drivers?detail=True {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['direct', 'iscsi'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': None, 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': [], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}]}ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.077363+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.373625+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.582929+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.582929+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.857539+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver ... ok GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/chassis/detail {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.354694+00:00'}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-31827a21-35d7-48a4-8641-2e650aad276d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/chassis?sort_key=uuid {} GOT:{'chassis': [{'uuid': '42689a46-24c7-4a4e-8486-7214ace4e322', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/42689a46-24c7-4a4e-8486-7214ace4e322', 'rel': 'self'}, {'href': 'http://localhost/chassis/42689a46-24c7-4a4e-8486-7214ace4e322', 'rel': 'bookmark'}]}, {'uuid': '4baa5ea4-8e9c-4063-9827-989b97a91305', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/4baa5ea4-8e9c-4063-9827-989b97a91305', 'rel': 'self'}, {'href': 'http://localhost/chassis/4baa5ea4-8e9c-4063-9827-989b97a91305', 'rel': 'bookmark'}]}, {'uuid': '8a7ffbd9-fbca-45bc-95e9-22a0285f35bc', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/8a7ffbd9-fbca-45bc-95e9-22a0285f35bc', 'rel': 'self'}, {'href': 'http://localhost/chassis/8a7ffbd9-fbca-45bc-95e9-22a0285f35bc', 'rel': 'bookmark'}]}]} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-543a03a1-a600-49d1-a5e8-63ecdcb3fb1b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "bar2"}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": "2021-12-04T17:53:48.996202+00:00", "created_at": "2021-12-04T17:53:48.790971+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'bar2'}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-12-04T17:53:48.996202+00:00', 'created_at': '2021-12-04T17:53:48.790971+00:00'} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6decf0ad-7afb-483d-8b0a-ba20a832c6cc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'. Value should have a maximum character requirement of 255\", \"debuginfo\": null}"} DELETE: /v1/nodes/doesntexist/vifs/aebf63ef-cd6c-4f7d-9233-e7a539d93261 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-826cf405-1576-4bbb-a076-94545e445bfe X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b5585fef-49ee-4080-8f64-6889963f3f61 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is associated with instance aaaaaaaa-1111-bbbb-2222-cccccccccccc.\", \"debuginfo\": null}"} DELETE: /v1/nodes/foo/maintenance GOT:Response: 202 Accepted Openstack-Request-Id: req-d65d557d-e926-461a-90bc-fe21542f85c4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 GET: /v1/nodes?detail=False&fields=name {} GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes/spam/management/boot_device {} GOT:{'boot_device': 'pxe', 'persistent': True} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f081307e-b21e-40c8-b8d1-5d8ff92b9c44 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes?fault=power failure {} GOT:{'nodes': [{'uuid': 'e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'rel': 'bookmark'}]}]} GET: /v1/nodes?fault=clean failure {} GOT:{'nodes': [{'uuid': 'a1471c10-ea01-4abf-a4cc-08453c139aa5', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?fault=power failure {} GOT:{'nodes': [{'uuid': 'e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': 'power failure', 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.264782+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource ... ok GET: /v1/chassis?detail=True {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.078129+00:00'}]} GET: /v1/chassis?detail=True&fields=description {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-70f524e0-8fd1-4fa9-a80a-3cfd1e46bace X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/chassis?detail=False&fields=description {} GOT:{'chassis': [{'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.597176+00:00'} GET: /v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2 {} GOT:{'uuid': '83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.910526+00:00'} GET: /v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2 {} GOT:{'uuid': '83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.910526+00:00'} GET: /chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2 {} GOT:{'uuid': '83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.910526+00:00'} PATCH: /v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369 [{'path': '/description', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f583751-fe05-4aba-824b-758df056e932 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6f4550a0-76ea-47ee-9c15-ccee9116d369", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369", "rel": "self"}, {"href": "http://localhost/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369/nodes", "rel": "self"}, {"href": "http://localhost/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369/nodes", "rel": "bookmark"}], "updated_at": "2021-12-04T17:53:50.262505+00:00", "created_at": "2021-12-04T17:53:50.162742+00:00"} GET: /v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369 {} GOT:{'uuid': '6f4550a0-76ea-47ee-9c15-ccee9116d369', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369', 'rel': 'self'}, {'href': 'http://localhost/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-12-04T17:53:50.262505+00:00', 'created_at': '2021-12-04T17:53:50.162742+00:00'} PATCH: /v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-234ce50f-092a-4315-b424-7f00fb5d226b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3f28b4bc-d3df-4f41-aefa-b2d040ff47a0", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0", "rel": "self"}, {"href": "http://localhost/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0/nodes", "rel": "self"}, {"href": "http://localhost/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0/nodes", "rel": "bookmark"}], "updated_at": "2021-12-04T17:53:50.470742+00:00", "created_at": "2021-12-04T17:53:50.395988+00:00"} GET: /v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0 {} GOT:{'uuid': '3f28b4bc-d3df-4f41-aefa-b2d040ff47a0', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0', 'rel': 'self'}, {'href': 'http://localhost/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-12-04T17:53:50.470742+00:00', 'created_at': '2021-12-04T17:53:50.395988+00:00'} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} GOT:{'foo': 'bar'} GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} GOT:{'foo': 'bar'} PUT: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-aa6303a7-9c15-4ecc-9c4f-8b0bc58abe6e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null GET: /v1/drivers/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 ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_chasis_api_policy ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_chasis_api_policy ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f6a66415-f71a-4639-b6e6-fcbd9ae0bb91 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d6dd92e4-1d56-44b7-83b7-2aad74fead84 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.395256+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.395256+00:00'} GET: /v1/nodes/?limit=3&associated=True {} GOT:{'nodes': [{'uuid': 'd4cabc76-cbbe-4de6-8e70-b504a45652f0', 'instance_uuid': '0ad98f8b-d8f5-4e32-baaf-bca774e4d812', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d4cabc76-cbbe-4de6-8e70-b504a45652f0', 'rel': 'self'}, {'href': 'http://localhost/nodes/d4cabc76-cbbe-4de6-8e70-b504a45652f0', 'rel': 'bookmark'}]}, {'uuid': 'b8e0245f-9da6-4cdb-95c8-ecb8d69206d5', 'instance_uuid': 'e730899c-ad21-4130-a63b-3ce3af96d684', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b8e0245f-9da6-4cdb-95c8-ecb8d69206d5', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8e0245f-9da6-4cdb-95c8-ecb8d69206d5', 'rel': 'bookmark'}]}, {'uuid': '9b20a751-9827-48e3-b423-344c921048e0', 'instance_uuid': '90c42c5b-c956-4306-9753-48b8b8e6c421', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9b20a751-9827-48e3-b423-344c921048e0', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b20a751-9827-48e3-b423-344c921048e0', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=9b20a751-9827-48e3-b423-344c921048e0'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fd578091-1aa8-4609-9675-a61595d79cb0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cf002ed5-e7af-4817-b316-4b6f72cb4b55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"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-39a7af8b-fe89-4271-a0e8-5214e209f85f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"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-b1e8cfcf-12ab-4eda-b140-1b7e8c4485c2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_info is an invalid field for sorting\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/nodes/validate?node=spam {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7f5dc842-db5a-4198-a2da-1f3f8a60153a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eb51ca6d-90b9-4859-8cb2-56225bbdcdcb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'maintenance'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2fca7ffc-2a6b-4841-b4bb-ec7a6bd9b660 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'management'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2617195b-f028-478d-8756-0fd74c56aead X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'states'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6cd96bfe-9c98-4c26-8bd3-463caeecd90f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'vendor_passthru'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cb1113d5-416f-4d3d-938d-5da10680554c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'detail'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7b32dd9d-7473-4467-923b-fb2e1ff5ca55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'validate'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7c049a89-4629-43b6-98fd-d2904b95e9dd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fb8653c1-df69-4de4-af43-1e1e69f91320 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"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-97cc8893-66a8-4da9-b7d2-0ae7a9816c7f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7fadff2-07fa-44b7-bb9c-3698a5c8d2d6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2021-12-04T17:53:51.242078+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6aaaee8e-022d-42d7-8365-aca68824ba11 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver ... ok GET: /v1/chassis/nodes {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a422f06c-7706-40cf-9f02-fd00266a24f8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0aff5756-fc0a-4870-ad6f-f7c1ea1d27ac X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/bad_driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-048d1501-50b7-41b7-977e-c1659832296f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): bad_driver.\", \"debuginfo\": null}"} GET: /v1/drivers/nope {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0942dcc6-8b04-4c6c-a137-66c90939a382 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\", \"debuginfo\": null}"} DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4bbf56dc-849e-44fe-a07d-a9a738a0c8f8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'network_interface': None} GET: /v1/nodes?driver=test {} GOT:{'nodes': []} GET: /v1/nodes/detail?resource_class=foo {} GOT:{'nodes': [{'uuid': 'e24f506a-e255-4e56-8d10-b0bf4df0a1a0', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0', 'rel': 'self'}, {'href': 'http://localhost/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.588150+00:00'}]} GET: /v1/nodes/detail?resource_class=bar {} GOT:{'nodes': [{'uuid': 'a4ce0b59-841c-4ed3-9587-1c873b50e9f5', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'bar', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.594696+00:00'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:{'ports': [{'uuid': '9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'rel': 'self'}, {'href': 'http://localhost/ports/9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'rel': 'bookmark'}]}, {'uuid': '363aea6d-b711-4e07-a1c5-d42c5a1178f6', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/363aea6d-b711-4e07-a1c5-d42c5a1178f6', 'rel': 'self'}, {'href': 'http://localhost/ports/363aea6d-b711-4e07-a1c5-d42c5a1178f6', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} GOT:{'ports': [{'uuid': '9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'rel': 'self'}, {'href': 'http://localhost/ports/9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=1&marker=9307e7d0-ae88-4e5f-b7d0-98f8e70206d3'} GET: /v1/nodes?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e5cae930-90e5-4121-b2cf-ab2529085adc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?associated=False&limit=2 {} GOT:{'nodes': [{'uuid': '8b95d026-a1ae-4efd-acb2-222378c0e6b9', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8b95d026-a1ae-4efd-acb2-222378c0e6b9', 'rel': 'self'}, {'href': 'http://localhost/nodes/8b95d026-a1ae-4efd-acb2-222378c0e6b9', 'rel': 'bookmark'}]}, {'uuid': 'eec67e6a-d512-414f-b879-b68bf03d92c4', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/eec67e6a-d512-414f-b879-b68bf03d92c4', 'rel': 'self'}, {'href': 'http://localhost/nodes/eec67e6a-d512-414f-b879-b68bf03d92c4', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=2&marker=eec67e6a-d512-414f-b879-b68bf03d92c4'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-affeea80-6b3c-4898-8125-4998a4fd19eb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/nodes/0d163bbf-bb5b-49e9-b52e-9bc25a3c9adc [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2399af7f-340d-40af-84dc-a0ecf25a7dec X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"0d163bbf-bb5b-49e9-b52e-9bc25a3c9adc\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} PATCH: /v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b424c026-12ac-4595-9181-7baecd5e8d34 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "3ea832e1-52a8-4386-b985-53fcb92e4db9", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9", "rel": "self"}, {"href": "http://localhost/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/ports", "rel": "self"}, {"href": "http://localhost/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/volume", "rel": "self"}, {"href": "http://localhost/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/states", "rel": "self"}, {"href": "http://localhost/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:50.903699+00:00"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': 'foo', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-897b0896-cc98-4139-86ff-c182e88e5e3d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3bd23e1c-54bd-4ba2-9cb4-2c811406dfcc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-77427eb5-13b3-4560-8019-90dce98b0f1f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} 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-ca584671-64c8-454e-b921-a5b08e16c897 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} 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-42e77737-7f11-4e13-894f-b4988c6c041a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'storage_interface': None} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '0ab58748-9472-4f65-80a6-dbc3bf1558b3', 'instance_uuid': None, 'name': 'node-0', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0ab58748-9472-4f65-80a6-dbc3bf1558b3', 'rel': 'self'}, {'href': 'http://localhost/nodes/0ab58748-9472-4f65-80a6-dbc3bf1558b3', 'rel': 'bookmark'}]}, {'uuid': '9b3ed629-ccf3-4650-83e5-cebe6fa32e9b', 'instance_uuid': None, 'name': 'node-1', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9b3ed629-ccf3-4650-83e5-cebe6fa32e9b', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b3ed629-ccf3-4650-83e5-cebe6fa32e9b', 'rel': 'bookmark'}]}, {'uuid': '3ab74555-1820-4bd1-bac0-4925ebd39dca', 'instance_uuid': None, 'name': 'node-2', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3ab74555-1820-4bd1-bac0-4925ebd39dca', 'rel': 'self'}, {'href': 'http://localhost/nodes/3ab74555-1820-4bd1-bac0-4925ebd39dca', 'rel': 'bookmark'}]}, {'uuid': '6cb12896-d637-4c5c-ab68-62b378b31a7c', 'instance_uuid': None, 'name': 'node-3', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6cb12896-d637-4c5c-ab68-62b378b31a7c', 'rel': 'self'}, {'href': 'http://localhost/nodes/6cb12896-d637-4c5c-ab68-62b378b31a7c', 'rel': 'bookmark'}]}, {'uuid': 'a95e091d-ec87-4e23-872c-d435522ca2bd', 'instance_uuid': None, 'name': 'node-4', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a95e091d-ec87-4e23-872c-d435522ca2bd', 'rel': 'self'}, {'href': 'http://localhost/nodes/a95e091d-ec87-4e23-872c-d435522ca2bd', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.372301+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.372301+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.669687+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key ... ok GET: /v1/chassis/?limit=3 {} GOT:{'chassis': [{'uuid': '43890044-02b6-480f-b22a-ec5876511f2c', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/43890044-02b6-480f-b22a-ec5876511f2c', 'rel': 'self'}, {'href': 'http://localhost/chassis/43890044-02b6-480f-b22a-ec5876511f2c', 'rel': 'bookmark'}]}, {'uuid': '928c5802-e15d-4006-94f2-8cb08272f5de', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/928c5802-e15d-4006-94f2-8cb08272f5de', 'rel': 'self'}, {'href': 'http://localhost/chassis/928c5802-e15d-4006-94f2-8cb08272f5de', 'rel': 'bookmark'}]}, {'uuid': '9dadef7c-b8a5-42eb-92ea-1c0913bce044', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/9dadef7c-b8a5-42eb-92ea-1c0913bce044', 'rel': 'self'}, {'href': 'http://localhost/chassis/9dadef7c-b8a5-42eb-92ea-1c0913bce044', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&limit=3&marker=9dadef7c-b8a5-42eb-92ea-1c0913bce044'} GET: /v1/drivers/driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4eb4e808-21bb-44a8-88a1-00214abe6c92 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"} GET: /v1/drivers?type=working {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d8d072e2-8674-4f66-bf46-e63d374b914c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"type\\\" filter must be one of \\\"classic\\\" or \\\"dynamic\\\", if specified.\", \"debuginfo\": null}"} GET: /v1/drivers {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}]}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /v1/nodes?instance_uuid=2bfd5473-a336-43df-81c2-a38b0994c32a {} GOT:{'nodes': [{'uuid': 'c5004cd5-b7cf-4e14-bd71-94fcfc95ed81', 'instance_uuid': '2bfd5473-a336-43df-81c2-a38b0994c32a', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c5004cd5-b7cf-4e14-bd71-94fcfc95ed81', 'rel': 'self'}, {'href': 'http://localhost/nodes/c5004cd5-b7cf-4e14-bd71-94fcfc95ed81', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:50.943825+00:00'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4e6bb266-4710-4873-9c7d-f400ed8134d2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes?driver=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f402844b-e703-4bfe-bac9-98e94dabbbe9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.16\", \"debuginfo\": null}"} GET: /v1/nodes?fault=power failure {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ea956de0-8f27-4bfe-8cb3-784942284ca3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"} GET: /v1/nodes/detail?fault=power failure {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5b165a84-16a3-4197-a6a6-a5575d326418 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface ... ok GET: /v1/chassis?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5b04b045-a4b8-4dc9-bfea-731790c348ef X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/chassis {} GOT:{'chassis': []} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6a2318ff-ac56-4a85-9b95-c3d4cb95bc3d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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-e0156deb-3f93-424f-93b7-46787134b527 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/chassis/a2d8e7a2-6cbe-495f-9116-3fba2de0dbdd [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a1a5854b-7f50-4a45-9113-5c035709c954 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis a2d8e7a2-6cbe-495f-9116-3fba2de0dbdd could not be found.\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-eb15f84d-a65f-4c35-b5d3-56415bf2a83e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "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'} GET: /v1/drivers {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-63ba5f37-cd04-4325-a253-67a849f55ee8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} GOT:{'virtualization': {'name': 'virtualization', 'value': 'on', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:50.315942+00:00', 'updated_at': None}} GET: /v1/nodes/detail?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4893419e-ee1b-46ed-8b68-bc696f76b217 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f02656ce-1917-4087-bf9a-8dafc7dab2a9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} GET: /v1/nodes/detail?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9165048a-c93e-4048-9fd4-e3d702b8bd31 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=driver_info {} GOT:{'driver_info': {'fake_password': '******'}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]} GET: /v1/nodes/test.1 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'test.1', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:51.274463+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface ... ok DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d73e9078-a97f-4665-9bb2-4788c960b107 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\", \"debuginfo\": null}"} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-96281740-ea3e-48d5-a581-c11a21a47609 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]} GET: /v1/drivers?type=classic {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-65193f41-8fab-4b48-be72-07f7434f295c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} POST: /v1/nodes/node-39/vifs {'id': '35149bd3-9b5a-419e-b594-0afa5cd86a53'} GOT:Response: 204 No Content Openstack-Request-Id: req-b5e95716-ec08-4e3c-afed-a76fd2bea52c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:{'bios': [{'name': 'virtualization', 'value': 'on', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:50.107263+00:00', 'updated_at': None}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fe5541bf-b6c4-4612-9a30-03ee475792a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.522895+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.522895+00:00'}]} GET: /v1/nodes?instance_uuid=fake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6f780048-06fa-4055-a552-9c350fe35747 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute instance_uuid. Value: 'fake'. unable to convert to uuid. Error: Expected a UUID but received fake.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-475398cd-4b08-4f80-988a-70a208474391 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}]ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits ... ok ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow ... ok GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a78f4411-b417-46df-a57e-d1fec7bb1007 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f8d8c553-9d71-46ca-bc9b-c997ca7bc7c3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:51.377602+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ac8c8dc-bb35-40e2-b0ba-622db8ee4305 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:51.611001+00:00"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'guido-van-rossum'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20065d85-7d38-4460-afb0-f58ec366acac X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "deadbeef-0000-1111-2222-333333333333", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:51.901558+00:00"} PATCH: /v1/nodes/a84478ad-d454-491c-8715-795ed8b09e3f [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8047c2c1-7be7-413d-ad9d-c319fa3309a9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.44 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/deploy_step' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0beffd4-1192-41f8-b7ba-66ad21b0bc0d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:52.338618+00:00"} PATCH: /v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf [{'path': '/network_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e81696c-b057-4135-93e5-7eca290e8bb4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "326b3253-7456-45be-b46a-35772d9ceabf", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf", "rel": "self"}, {"href": "http://localhost/nodes/326b3253-7456-45be-b46a-35772d9ceabf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf/ports", "rel": "self"}, {"href": "http://localhost/nodes/326b3253-7456-45be-b46a-35772d9ceabf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/326b3253-7456-45be-b46a-35772d9ceabf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf/volume", "rel": "self"}, {"href": "http://localhost/nodes/326b3253-7456-45be-b46a-35772d9ceabf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf/states", "rel": "self"}, {"href": "http://localhost/nodes/326b3253-7456-45be-b46a-35772d9ceabf/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:53.126164+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version ... ok GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-561ee295-5953-430f-a36f-b87085e05b32 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/drivers?type=classic {} GOT:{'drivers': []} GET: /v1/drivers?type=dynamic {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}]}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': '3e4e7574-794f-415c-ae21-3c2894ec088e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-377923f9-22a6-42da-a977-36b528c10486 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: id\", \"debuginfo\": null}"} DELETE: /v1/nodes/foo.1 GOT:Response: 204 No Content Openstack-Request-Id: req-cf73236d-77d3-49e3-aaa6-586065c0e0eb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '50c0d80a-7ae0-4758-9add-5f9b5d163c86', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/50c0d80a-7ae0-4758-9add-5f9b5d163c86', 'rel': 'self'}, {'href': 'http://localhost/nodes/50c0d80a-7ae0-4758-9add-5f9b5d163c86', 'rel': 'bookmark'}]}, {'uuid': '7444ce43-3360-4ca9-a2bf-f4062078ecc0', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7444ce43-3360-4ca9-a2bf-f4062078ecc0', 'rel': 'self'}, {'href': 'http://localhost/nodes/7444ce43-3360-4ca9-a2bf-f4062078ecc0', 'rel': 'bookmark'}]}, {'uuid': 'dfb9c0e7-ab63-4532-9f9d-ec93343a2828', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/dfb9c0e7-ab63-4532-9f9d-ec93343a2828', 'rel': 'self'}, {'href': 'http://localhost/nodes/dfb9c0e7-ab63-4532-9f9d-ec93343a2828', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=dfb9c0e7-ab63-4532-9f9d-ec93343a2828'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:{'console_enabled': False, 'console_info': None} GET: /v1/nodes?conductor_group=group1 {} GOT:{'nodes': [{'uuid': '31aa8127-8ddc-4f05-b912-5d563e73e223', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor_group=group2 {} GOT:{'nodes': [{'uuid': '02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?conductor_group=group1 {} GOT:{'nodes': [{'uuid': '31aa8127-8ddc-4f05-b912-5d563e73e223', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': 'group1', 'updated_at': None, 'created_at': '2021-12-04T17:53:52.297438+00:00'}]} GET: /v1/nodes/detail?conductor_group=group2 {} GOT:{'nodes': [{'uuid': '02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': 'group2', 'updated_at': None, 'created_at': '2021-12-04T17:53:52.302126+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c70096d2-70fe-44d3-9da3-f789890a2db2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/nodes/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b04814b5-226b-4c7d-99ae-9acafc555e66 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.31 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bed9610b-8ea6-4657-8f92-df501edc7a1e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/2f4ec1b5-09b6-4dbe-87bd-4ff714a794ed [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-69418b38-bbd8-489c-b388-edd26cfef200 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1f6cb3f7-1428-4439-8839-2ae8d9e3b291 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.network' entrypoint: foo. Valid interfaces are ['flat', 'neutron', 'noop'].\", \"debuginfo\": null}"} POST: /v1/nodes {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-85841c4c-4b1b-46ce-9a23-9979e02ebb6c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with invalid name ''\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-26384bc0-a3e5-48ba-9c50-a27a9e7c264a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-868b8466-cefd-4cb1-a1cc-c003e0cbefea X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.639070+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.639070+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id_deprecated ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id_deprecated ... ok GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} POST: /v1/nodes/doesntexist/vifs {'id': '89bf8b62-2b28-442c-984e-2999973eb8c4'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8e2270f3-ecea-43eb-bb41-624c6fb3b14b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes?associated=blah {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d6665a4b-3b21-4161-934c-98ea3d4cb60d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute associated. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} GET: /v1/nodes?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e6a68447-427c-4fc8-bc6b-7089b409a055 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/nodes?fault=somefake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-321439d1-3169-412d-9968-cf9da81a5c72 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-753dfc8e-b2c1-4191-8a5f-04513c96325d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure')\", \"debuginfo\": null}"} GET: /v1/nodes?provision_state=test {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-18dbe06e-079c-46ce-b060-6c24499eb346 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\", \"debuginfo\": null}"} GET: /v1/nodes?provision_state=test {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a015479e-3300-4d42-9309-530a78e476bb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.8 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-21cfbbd2-4927-4fd5-adad-e34fbcfa732e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:53.273454+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': ['CUSTOM_1'], 'updated_at': None, 'created_at': '2021-12-04T17:53:53.273454+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ssh_creds_masked ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ssh_creds_masked ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver ... ok GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/properties {} GOT:{} GET: /drivers/fake-hardware-type/properties {} GOT:{} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7fe24a30-1714-45a7-9326-98ab1b664eaf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 202 Accepted Openstack-Request-Id: req-129e8140-03c0-4d21-a4ca-7cb5638f363d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 GET: /v1/nodes/detail?associated=true {} GOT:{'nodes': [{'uuid': '8d562316-2658-4200-803e-f3b0d5633ca2', 'instance_uuid': 'a39ba00c-ec06-4aa0-b0d1-521d02d4db01', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/8d562316-2658-4200-803e-f3b0d5633ca2', 'rel': 'self'}, {'href': 'http://localhost/nodes/8d562316-2658-4200-803e-f3b0d5633ca2', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8d562316-2658-4200-803e-f3b0d5633ca2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8d562316-2658-4200-803e-f3b0d5633ca2/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.509503+00:00'}, {'uuid': '8b6a7b7d-a9dc-4415-9d69-8008d2e78ced', 'instance_uuid': '465abecc-6bb2-44f0-b0d1-5b56b005576a', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/8b6a7b7d-a9dc-4415-9d69-8008d2e78ced', 'rel': 'self'}, {'href': 'http://localhost/nodes/8b6a7b7d-a9dc-4415-9d69-8008d2e78ced', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8b6a7b7d-a9dc-4415-9d69-8008d2e78ced/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8b6a7b7d-a9dc-4415-9d69-8008d2e78ced/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.515615+00:00'}, {'uuid': 'dcaa39dc-bd48-43e0-bd53-7847311cbf6b', 'instance_uuid': 'a8f48b2d-b4a1-48d8-831a-e7daf2d402c6', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/dcaa39dc-bd48-43e0-bd53-7847311cbf6b', 'rel': 'self'}, {'href': 'http://localhost/nodes/dcaa39dc-bd48-43e0-bd53-7847311cbf6b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/dcaa39dc-bd48-43e0-bd53-7847311cbf6b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/dcaa39dc-bd48-43e0-bd53-7847311cbf6b/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.521491+00:00'}, {'uuid': '9b7e7aa0-c2d6-477f-b137-2d7ba5ce5dec', 'instance_uuid': '20e0a0ca-eba5-46fd-82fb-db3737e77658', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/9b7e7aa0-c2d6-477f-b137-2d7ba5ce5dec', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b7e7aa0-c2d6-477f-b137-2d7ba5ce5dec', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9b7e7aa0-c2d6-477f-b137-2d7ba5ce5dec/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b7e7aa0-c2d6-477f-b137-2d7ba5ce5dec/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.527334+00:00'}]} GET: /v1/nodes?maintenance=true {} GOT:{'nodes': [{'uuid': '30ce33ec-2463-4a8f-b161-7628a158f42e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/30ce33ec-2463-4a8f-b161-7628a158f42e', 'rel': 'self'}, {'href': 'http://localhost/nodes/30ce33ec-2463-4a8f-b161-7628a158f42e', 'rel': 'bookmark'}]}, {'uuid': '04290b48-e675-4cb5-987d-319d13860100', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/04290b48-e675-4cb5-987d-319d13860100', 'rel': 'self'}, {'href': 'http://localhost/nodes/04290b48-e675-4cb5-987d-319d13860100', 'rel': 'bookmark'}]}]} GET: /v1/nodes?maintenance=false {} GOT:{'nodes': [{'uuid': 'a61debd1-eea0-433a-a4be-593448586752', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a61debd1-eea0-433a-a4be-593448586752', 'rel': 'self'}, {'href': 'http://localhost/nodes/a61debd1-eea0-433a-a4be-593448586752', 'rel': 'bookmark'}]}, {'uuid': 'b29e2932-8521-4d45-9f76-168c3a8eed85', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b29e2932-8521-4d45-9f76-168c3a8eed85', 'rel': 'self'}, {'href': 'http://localhost/nodes/b29e2932-8521-4d45-9f76-168c3a8eed85', 'rel': 'bookmark'}]}, {'uuid': '40decdf9-ca2d-40a2-b402-f8d1eabc58ba', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/40decdf9-ca2d-40a2-b402-f8d1eabc58ba', 'rel': 'self'}, {'href': 'http://localhost/nodes/40decdf9-ca2d-40a2-b402-f8d1eabc58ba', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=true&maintenance=blah {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-22043bd0-9c9b-4fd2-a355-fc76c8a596bb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute maintenance. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group ... ok GET: /v1/nodes/detail?fault=clean failure {} GOT:{'nodes': [{'uuid': 'a1471c10-ea01-4abf-a4cc-08453c139aa5', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': 'clean failure', 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.270835+00:00'}]} GET: /v1/nodes?resource_class=test {} GOT:{'nodes': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=extra,instance_info {} GOT:{'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'extra': {}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:52.251888+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.824211+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:{'targets': [{'uuid': '9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'rel': 'bookmark'}]}, {'uuid': '62e1d59b-7961-4594-9e19-b0b435cfe5d2', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/62e1d59b-7961-4594-9e19-b0b435cfe5d2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/62e1d59b-7961-4594-9e19-b0b435cfe5d2', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} GOT:{'targets': [{'uuid': '9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=1&marker=9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c'} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/console_enabled', 'op': 'replace', 'value': True}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-69c78727-f2e2-449d-bb75-37c65d1d2edf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/console_enabled' is an internal attribute and can not be updated\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} GOT:{'portgroups': [{'uuid': '1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=1&marker=1d13ef05-cd4f-4266-bca3-f1ffb40a453a'} GET: /v1/nodes?sort_key=resource_class {} GOT:{'nodes': [{'uuid': 'a3a26833-408a-4872-aef1-c469978554eb', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a3a26833-408a-4872-aef1-c469978554eb', 'rel': 'self'}, {'href': 'http://localhost/nodes/a3a26833-408a-4872-aef1-c469978554eb', 'rel': 'bookmark'}]}, {'uuid': '473b3c03-3a44-432a-b850-cdf31192a8b7', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/473b3c03-3a44-432a-b850-cdf31192a8b7', 'rel': 'self'}, {'href': 'http://localhost/nodes/473b3c03-3a44-432a-b850-cdf31192a8b7', 'rel': 'bookmark'}]}, {'uuid': 'ac155ff7-a940-42f7-b4af-9a0b1615cb66', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ac155ff7-a940-42f7-b4af-9a0b1615cb66', 'rel': 'self'}, {'href': 'http://localhost/nodes/ac155ff7-a940-42f7-b4af-9a0b1615cb66', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:{'connectors': [{'uuid': '53aa2e27-0ce3-469f-8eb3-01741f600a80', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/53aa2e27-0ce3-469f-8eb3-01741f600a80', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/53aa2e27-0ce3-469f-8eb3-01741f600a80', 'rel': 'bookmark'}]}, {'uuid': '1104f2c1-e800-4f8f-84b6-622f83b76a58', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1104f2c1-e800-4f8f-84b6-622f83b76a58', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1104f2c1-e800-4f8f-84b6-622f83b76a58', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} GOT:{'connectors': [{'uuid': '53aa2e27-0ce3-469f-8eb3-01741f600a80', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/53aa2e27-0ce3-469f-8eb3-01741f600a80', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/53aa2e27-0ce3-469f-8eb3-01741f600a80', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=1&marker=53aa2e27-0ce3-469f-8eb3-01741f600a80'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5c742943-c350-4a2d-817f-9a0044e52c85 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-260044d7-3fa5-48fa-8944-a4f2c47b6a4e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name ''\", \"debuginfo\": null}"} PATCH: /v1/nodes/26ee2e23-be9a-4e3e-8293-0387191236de [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2230d081-c953-46b2-9033-c334f7cfa0aa X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\", \"debuginfo\": null}"} PATCH: /v1/nodes/96db666d-3067-4c18-ac46-00b5af2cf1bd [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10b812fb-1cf0-47b6-9f7c-21ffb6527ab3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "96db666d-3067-4c18-ac46-00b5af2cf1bd", "instance_uuid": null, "power_state": null, "target_power_state": "power off", "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": true, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/96db666d-3067-4c18-ac46-00b5af2cf1bd", "rel": "self"}, {"href": "http://localhost/nodes/96db666d-3067-4c18-ac46-00b5af2cf1bd", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/96db666d-3067-4c18-ac46-00b5af2cf1bd/ports", "rel": "self"}, {"href": "http://localhost/nodes/96db666d-3067-4c18-ac46-00b5af2cf1bd/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:52.307734+00:00"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ee685948-2018-4609-815c-069d31220d81 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4e85e43f-cd1d-43c6-a46d-4f37972089b1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support test (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8eb51e57-e91a-46b3-863c-19084bf83e6b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-43ff168c-8433-4325-8386-16bb83f046da X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cd7a46d1-5713-4bcf-9ed2-6ad80b926b14 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d4b17ff0-35e8-40ec-a2bf-74e45f21ef55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/chassis_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'guido-van-rossum'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c39408fa-2863-478d-bb63-caa6adef85a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:51.914272+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'Windows ME'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ccc54e62-6b30-4cb8-a468-4ddb8fe616b3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Windows ME'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/last_error', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b19961b5-0612-4785-9491-a9ae2d9a0007 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/last_error' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b8161c84-c21e-4d7c-931c-fdaad11d8227 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-10f3e705-7076-4bb5-980b-b37129694135 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-089b4ca2-d190-4c2d-bc56-0dfc93de3fda X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.639260+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.639260+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.639260+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_notification_uuid_unset ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_notification_uuid_unset ... ok ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cfd66c7f-5e00-4415-b9a7-6f6a8eb72047 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8a295faa-fc80-438b-979a-0b85ca15b923 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-927f656b-91ca-4f1e-9def-c4c2468b52db X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-607f0489-d552-4f93-ba48-18e1c3e282e7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3a4fd89c-a83f-4c18-9de1-5cb3fe0b8673 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-db1ac4c5-88ed-45b5-8bb7-9e021d187537 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-6e5ec271-59c9-44b6-bd29-8eeac6e5b302 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-33d9e407-57a7-4805-af76-d0810bb774ca X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-67a46b6c-fe66-439c-b00d-2d4b69efd45b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0435aaee-45fc-4eb5-b731-c84fcb1427aa X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} GET: /v1/ports?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b29ff759-d8c3-448f-8a2f-6cc56d0952bd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/ports/detail?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123&node=node-name {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:54.730086+00:00', 'updated_at': None}]} GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4&node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2ada969b-6f7c-4682-b4c4-fbce6dab9c19 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/ports/d125a974-0930-48cb-9178-03adc279f4fa [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}]ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_diff_internal ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_diff_internal ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_same ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_same ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid ... ok POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-2142b2f0-b389-4fe3-b599-00e467f23c79 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:51.959111+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:51.959111+00:00'} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8e976d2a-01ff-4a05-a197-2389e614fd51 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-73c65fde-07bc-453d-a57a-b846743194a9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-51f597eb-8fa5-488b-8bbc-a8cd0ebe49f1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9d9dcd47-3321-44c3-ac49-31bf00c8b073 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'false'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console Openstack-Request-Id: req-c75c2da4-d27b-48a7-ba97-8bcdea03b0ce X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortObject.test_port_init ironic.tests.unit.api.controllers.v1.test_port.TestPortObject.test_port_init ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_cannot_send_create_port ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_cannot_send_create_port ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e70491fd-ba90-454d-8dc8-0777cc76e0ab X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.749204+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.749204+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.097011+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2021-12-04T17:53:52.097011+00:00'}]} GET: /v1/nodes?associated=true&maintenance=false {} GOT:{'nodes': [{'uuid': '75b161cb-d82d-493b-9f44-ed51c61a6b75', 'instance_uuid': 'c93a1295-5146-4fed-99e2-b5870a7c5893', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/75b161cb-d82d-493b-9f44-ed51c61a6b75', 'rel': 'self'}, {'href': 'http://localhost/nodes/75b161cb-d82d-493b-9f44-ed51c61a6b75', 'rel': 'bookmark'}]}, {'uuid': '2b9a751b-4bf8-49fc-8cdc-4dadd23e8f9d', 'instance_uuid': 'e7cdfa82-1f24-4b15-8c3f-48a1a7587b6b', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2b9a751b-4bf8-49fc-8cdc-4dadd23e8f9d', 'rel': 'self'}, {'href': 'http://localhost/nodes/2b9a751b-4bf8-49fc-8cdc-4dadd23e8f9d', 'rel': 'bookmark'}]}, {'uuid': '121c487b-7403-4c0f-beac-d945e2a96dbd', 'instance_uuid': '4ff2d0d5-b3b3-4595-b54a-9ee187d076d7', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/121c487b-7403-4c0f-beac-d945e2a96dbd', 'rel': 'self'}, {'href': 'http://localhost/nodes/121c487b-7403-4c0f-beac-d945e2a96dbd', 'rel': 'bookmark'}]}, {'uuid': '8622f0a0-5a35-47f9-978b-60fe09df892b', 'instance_uuid': 'db3ac6ba-011d-41d6-bf54-0fe2d7b3015c', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8622f0a0-5a35-47f9-978b-60fe09df892b', 'rel': 'self'}, {'href': 'http://localhost/nodes/8622f0a0-5a35-47f9-978b-60fe09df892b', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.669687+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:52.017573+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.017573+00:00'} GET: /v1/nodes?sort_key=uuid {} GOT:{'nodes': [{'uuid': '26eb8914-98ae-4878-b28f-7354bffe45dc', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/26eb8914-98ae-4878-b28f-7354bffe45dc', 'rel': 'self'}, {'href': 'http://localhost/nodes/26eb8914-98ae-4878-b28f-7354bffe45dc', 'rel': 'bookmark'}]}, {'uuid': '5d52666c-5f04-47de-a7a4-550872c12fcb', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5d52666c-5f04-47de-a7a4-550872c12fcb', 'rel': 'self'}, {'href': 'http://localhost/nodes/5d52666c-5f04-47de-a7a4-550872c12fcb', 'rel': 'bookmark'}]}, {'uuid': '828b8657-ad59-4d41-a0c4-8611ea967655', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/828b8657-ad59-4d41-a0c4-8611ea967655', 'rel': 'self'}, {'href': 'http://localhost/nodes/828b8657-ad59-4d41-a0c4-8611ea967655', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:53.394458+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:51.863551+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {'foo': 'bar'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:51.863551+00:00'} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:52.187447+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': 'cinder', 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:52.187447+00:00'}]} GET: /v1/nodes/detail?limit=3&associated=true {} GOT:{'nodes': [{'uuid': '0997c58c-3b44-43fb-97fb-448cd1bcf60f', 'instance_uuid': 'e1ab17af-6b9c-49d7-8bc1-45add465b365', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/0997c58c-3b44-43fb-97fb-448cd1bcf60f', 'rel': 'self'}, {'href': 'http://localhost/nodes/0997c58c-3b44-43fb-97fb-448cd1bcf60f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/0997c58c-3b44-43fb-97fb-448cd1bcf60f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0997c58c-3b44-43fb-97fb-448cd1bcf60f/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.884872+00:00'}, {'uuid': '3cd9d7eb-fd06-48a2-985e-96c98f3e8693', 'instance_uuid': 'a1b63449-0efd-443f-add6-85885a034d2e', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/3cd9d7eb-fd06-48a2-985e-96c98f3e8693', 'rel': 'self'}, {'href': 'http://localhost/nodes/3cd9d7eb-fd06-48a2-985e-96c98f3e8693', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/3cd9d7eb-fd06-48a2-985e-96c98f3e8693/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/3cd9d7eb-fd06-48a2-985e-96c98f3e8693/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.891097+00:00'}, {'uuid': 'ee15df8d-223f-4e06-9210-0a7804251c78', 'instance_uuid': '96a8f602-f90e-4619-8353-2f8415446e77', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/ee15df8d-223f-4e06-9210-0a7804251c78', 'rel': 'self'}, {'href': 'http://localhost/nodes/ee15df8d-223f-4e06-9210-0a7804251c78', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ee15df8d-223f-4e06-9210-0a7804251c78/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ee15df8d-223f-4e06-9210-0a7804251c78/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.897568+00:00'}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=ee15df8d-223f-4e06-9210-0a7804251c78'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable ... ok GET: /v1/nodes/spam/management/boot_device/supported {} GOT:{'supported_boot_devices': ['pxe']} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.391511+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'fish', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.391511+00:00'} GET: /v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8 {} GOT:{'uuid': 'bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.724144+00:00'} GET: /v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8 {} GOT:{'uuid': 'bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.724144+00:00'} GET: /nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8 {} GOT:{'uuid': 'bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.724144+00:00'} GET: /v1/nodes?instance_uuid=a3551191-910f-447e-878b-6a671f2cb79d {} GOT:{'nodes': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'inspecting', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2021-12-04T17:53:55.256534+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition ... ok POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ce2e3968-beae-408c-a5c0-ddb93e2d2934 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute driver. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-851eadc8-0ce6-4332-9065-963cea8b7697 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {} GOT:foo PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-79722d85-dd3e-49e7-ab1a-9a9a8616ab5c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'not-supported'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-be2ec0b8-22c4-442d-b520-61f1d6282198 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-38038eef-d8a1-4b42-8044-883c3d6a13eb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'not-supported'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-428dd697-96d8-4120-995a-61e3e646774b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': 'foo'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-cf677f12-3236-43f0-9c4e-102b64df27e5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e0381390-dc50-4604-ab9d-cb487cdf2da9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-cac8bdff-7735-424f-bb37-be964694ab7a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute persistent. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted Openstack-Request-Id: req-fb7524cd-b17e-4888-b483-eac5e79cba31 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-591ec99e-da1a-4b70-93be-ca59d25893b1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-cc34d408-e2c0-46a7-bb31-289f03ced9b6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-15888a38-210a-413b-badc-2cdb7eeb3079 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} GET: /v1/ports?node=test-node {} GOT:{'ports': [{'uuid': 'a41c335a-c6ef-404b-96e6-fd9a3149762e', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/a41c335a-c6ef-404b-96e6-fd9a3149762e', 'rel': 'self'}, {'href': 'http://localhost/ports/a41c335a-c6ef-404b-96e6-fd9a3149762e', 'rel': 'bookmark'}]}, {'uuid': 'aca9fa6a-1235-47f0-9a33-9a5e926983b5', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/aca9fa6a-1235-47f0-9a33-9a5e926983b5', 'rel': 'self'}, {'href': 'http://localhost/ports/aca9fa6a-1235-47f0-9a33-9a5e926983b5', 'rel': 'bookmark'}]}, {'uuid': '2a76e162-1d20-4bd7-88c5-a95b77c9fa0c', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/2a76e162-1d20-4bd7-88c5-a95b77c9fa0c', 'rel': 'self'}, {'href': 'http://localhost/ports/2a76e162-1d20-4bd7-88c5-a95b77c9fa0c', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f7b07192-33a4-4e2c-9221-33e387b0a615 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-80887bdb-d4c0-4a08-a89b-0c9604d37bc1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 PUT: /v1/nodes/node-39/states/provision {'target': 'active'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-49730ebe-209f-4c4a-acbd-e8240cfde153 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': ' '} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a181a1ce-ff52-4bfd-97b5-ddcf85dba1aa X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'rescue_password': 'password'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c4e0a326-d714-4a3e-a10c-223a8d0ccb66 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"rescue_password\\\" is only valid when setting target provision state to rescue\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-f8391da6-112e-49c7-ba61-c884b44c39ad X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-88af9db6-620b-4d9f-9f9e-9bc38f9c6f31 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/states/console {'enabled': 'true'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f7013048-a12b-4692-b717-7a3a97ba2dcf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/node-39/traits GOT:Response: 204 No Content Openstack-Request-Id: req-023ea1ff-a1fa-48fa-81d0-7dad257d687a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} GOT:Response: 204 No Content Openstack-Request-Id: req-cb32cabe-97b5-49a4-9768-a19ebd4156d7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/30d2ab18-f4a3-4d30-b8b6-1f8e1f242c8b GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2a8c556b-01f9-4b66-a07a-a2609f2cc7dc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-063b913b-a2e2-44fc-b085-b382de6a3c8c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0bf1ab80-ecaa-4ba9-ab61-3ffeebff77ae X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-961fa1ac-7134-449a-a295-6b55200e355e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.648010+00:00", "updated_at": "2021-12-04T17:53:55.793495+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f8f39e96-7eb7-42bb-8895-1ff706fa8b6c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/ports/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eede174d-4c6f-49af-9975-0c98dfbb56aa X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute port_uuid. Value: '52:54:00:cf:2d:31'. unable to convert to uuid. Error: Expected a UUID but received 52:54:00:cf:2d:31.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-238a6006-7a8e-4ed2-89a1-c16592d7448f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname ... ok POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-43e076a1-dc41-449e-ae9a-dc9678b56f0f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-538a4ae9-10e5-4c24-acac-cb1667cf266b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"abort\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-70127e61-64af-48d1-bde1-d5699e8270a3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-47d041fb-5181-4b13-ac93-12cd165cbc40 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-160ac788-50f1-4658-b0db-08ebba5475e1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} PUT: /v1/nodes/node-39/traits {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8cee9439-170b-4129-a67c-e072c536904b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} GET: /v1/ports?node=test-node {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-02f52f73-8d5c-45e7-879c-7aa02a0a87e0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:57.641514+00:00', 'updated_at': None}]} GET: /v1/ports/detail {} GOT:{'ports': [{'uuid': 'd22ca670-6353-4f0e-9e0c-5bb5b1b5cb59', 'address': '66:44:55:33:11:22', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/d22ca670-6353-4f0e-9e0c-5bb5b1b5cb59', 'rel': 'self'}, {'href': 'http://localhost/ports/d22ca670-6353-4f0e-9e0c-5bb5b1b5cb59', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:57.851636+00:00', 'updated_at': None}]} GET: /v1/ports?address=aa:bb:cc:dd:ee:ff {} GOT:{'ports': []} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 1234, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f33a9ecf-11cd-4ec9-a1d2-db20b5a9892a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '58ed54f9-cdd2-472c-a9e6-a4b75b170da7', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-35f794b3-dba4-45b3-8efd-acc1bc10fc0d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/d977cd70-7ab4-4faa-96de-9eead33569fd [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c5194565-0bf6-4563-8f05-83cd64246d82 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port d977cd70-7ab4-4faa-96de-9eead33569fd could not be found.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-3222cbec-8e83-4231-9269-aec60ac5aa35 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.842393+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-c8758634-fd92-4578-8ca4-1c3280eafcfe X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-da842d65-5a6f-4e2a-afb6-a671fa842f07 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-c9de14da-5e58-47fb-bf39-38d435b52743 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-8fcfc109-77de-4d6a-8894-275e6ec903a0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e0b24124-9c98-4068-aa67-ee93ce4ee22f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"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-7a60c3f1-10bd-4e83-a0e0-120102327fc0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"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-0e1ced72-5c7c-4eab-8166-5d24eb559861 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"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-cea2d759-5015-4522-b1e3-b527f60480d7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3c011123-c4bf-4e32-9715-4aee4bd3d7bb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0c4a4635-05be-450b-800b-6051cbaef370 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/ports/detail?sort_key=pxe_enabled {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f2d7cc6f-29fb-4243-b970-c0acd340513f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5d3b23b8-f8ed-4b93-8674-0737d8dc5cb3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:57.670930+00:00', 'updated_at': None} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d490f47e-76c2-40a7-ba7c-e68a1b20372e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a019d297-ee23-4108-a602-f9585cdc5870 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1a1c297a-aabb-4869-a603-e0833516839d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches ... ok ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_dynamic_drivers ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_dynamic_drivers ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_network_interface ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_network_interface ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_traits ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_traits ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match ... ok ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e57672a-1e93-445b-ba9a-afffdea3373b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "d125a974-0930-48cb-9178-03adc279f4fa", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "original"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/d125a974-0930-48cb-9178-03adc279f4fa", "rel": "self"}, {"href": "http://localhost/ports/d125a974-0930-48cb-9178-03adc279f4fa", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.141437+00:00", "updated_at": "2021-12-04T17:53:55.242327+00:00"} PATCH: /v1/ports/ca36c3fa-e3a2-4f89-b7c3-94dfd5002ce3 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-796ac9c4-0c05-4489-8c74-c6d4dae2dccf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "ca36c3fa-e3a2-4f89-b7c3-94dfd5002ce3", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/ca36c3fa-e3a2-4f89-b7c3-94dfd5002ce3", "rel": "self"}, {"href": "http://localhost/ports/ca36c3fa-e3a2-4f89-b7c3-94dfd5002ce3", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.420086+00:00", "updated_at": "2021-12-04T17:53:55.536153+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-07f87ae0-c007-43f4-87ce-f7a7d2598269 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-98e58d2e-87fd-4dc3-aa46-61158e357388 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8af7771a-2b4d-4100-99ae-15695916f1a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': False, 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a2bbb559-61a3-4798-8f0c-21e41266e8a8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-cddf2c8c-ebfa-492b-91ad-fbfb81e7f351 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-e7d59303-2457-426a-9e37-e4e2b47d7561 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:57.894767+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b9375964-3ef8-4b29-b247-8b0bc5c040fc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-91c34976-d2c3-4dc1-beef-93bc0b4967c7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?sort_key=mode {} GOT:{'portgroups': [{'uuid': 'fd41fa75-b871-4913-8219-74ebaf400a3b', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/fd41fa75-b871-4913-8219-74ebaf400a3b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fd41fa75-b871-4913-8219-74ebaf400a3b', 'rel': 'bookmark'}]}, {'uuid': '3e111cb3-f604-4925-a558-6b9f38e15130', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/3e111cb3-f604-4925-a558-6b9f38e15130', 'rel': 'self'}, {'href': 'http://localhost/portgroups/3e111cb3-f604-4925-a558-6b9f38e15130', 'rel': 'bookmark'}]}, {'uuid': '3a941ea1-4ec8-4880-9065-b88dc76ae4f3', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/3a941ea1-4ec8-4880-9065-b88dc76ae4f3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/3a941ea1-4ec8-4880-9065-b88dc76ae4f3', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPortgroupObject.test_portgroup_init ironic.tests.unit.api.controllers.v1.test_portgroup.TestPortgroupObject.test_portgroup_init ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_name ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_name ... ok ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_uuid ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_uuid ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_conductor_group ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_conductor_group ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_remove_chassis_uuid ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_remove_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': []} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "405 Method Not Allowed\n\nThe method PUT is not allowed for this resource. \n\n "} PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} GOT:Response: 204 No Content Openstack-Request-Id: req-8e06ee93-d04d-45e4-bfec-70376b5fcd1f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 GET: /v1/ports {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'bb60f2e2-f4f5-4dd0-821d-b31e8313e8b8', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-75df75c5-384c-48e8-bd3d-7db21a049584 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "bb60f2e2-f4f5-4dd0-821d-b31e8313e8b8", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.096111+00:00", "updated_at": "2021-12-04T17:53:55.185827+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7050b708-f593-4339-9170-836a6f2a2312 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.363384+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-a50ed069-0cc9-482a-a3f0-fba88acba9c6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.905810+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ff8825ad-0475-4611-97cb-fd35e7fd14fd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:56.196696+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-75800a6a-82b7-4249-81f0-ef80304217c4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:56.696168+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1f7d969d-325e-42a8-a051-775c017f6307 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/portgroups?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-aa562fca-2b6f-42dc-bcd5-fb9024e08c61 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/portgroups?address=aa:bb:cc:dd:ee:f1 {}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values ... ok ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_dict_attr ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_dict_attr ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_none ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_none ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_rescue_interface_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_rescue_interface_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '2000-01-01T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error', 'raid_config': {'foo': 'bar'}, 'target_raid_config': {'foo': 'bar'}} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'node-0'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-85969463-bfe7-4a25-93c7-958cd37d9dad X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e52dd8f-1c36-4b74-8d98-7b01578bd8a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.167803+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14ed734d-61d2-4212-9f86-dd4ce5a300a1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.756849+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/provision_updated_at', 'op': 'replace', 'value': '2000-01-01 00:00:00'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f293bab6-a6a1-4272-9091-3629acb5e158 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/provision_updated_at' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16f1c7f1-96e6-4201-8d77-59c6699f27f6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb4a154-253c-48dd-b4b1-289c7aa9fbaf", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf", "rel": "self"}, {"href": "http://localhost/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/ports", "rel": "self"}, {"href": "http://localhost/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/volume", "rel": "self"}, {"href": "http://localhost/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/states", "rel": "self"}, {"href": "http://localhost/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:57.706651+00:00"} PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8c3a61b5-e143-4278-b8ca-2a78abd03adb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a90e1239-856f-444c-9eeb-3b993ad0b2d9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}]ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-135f120f-f455-4287-a5ff-623c2540f3cd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.093171+00:00", "updated_at": null} POST: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4f102aa-f3af-4a15-876d-33bdb41f9d93 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/portgroups/detail?sort_key=mode {} GOT:{'portgroups': [{'uuid': '39e032b0-08d0-4b8c-8229-c9425a90a090', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/39e032b0-08d0-4b8c-8229-c9425a90a090', 'rel': 'self'}, {'href': 'http://localhost/portgroups/39e032b0-08d0-4b8c-8229-c9425a90a090', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_1', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/39e032b0-08d0-4b8c-8229-c9425a90a090/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/39e032b0-08d0-4b8c-8229-c9425a90a090/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.499658+00:00', 'updated_at': None}, {'uuid': '91167ccd-8ae5-422d-8a39-d201c9ad1da1', 'address': '52:54:00:cf:2d:32', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/91167ccd-8ae5-422d-8a39-d201c9ad1da1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/91167ccd-8ae5-422d-8a39-d201c9ad1da1', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_2', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/91167ccd-8ae5-422d-8a39-d201c9ad1da1/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/91167ccd-8ae5-422d-8a39-d201c9ad1da1/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.497918+00:00', 'updated_at': None}, {'uuid': 'cf5fadda-6ff7-4b72-968e-f2ef51266b0a', 'address': '52:54:00:cf:2d:33', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/cf5fadda-6ff7-4b72-968e-f2ef51266b0a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/cf5fadda-6ff7-4b72-968e-f2ef51266b0a', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_3', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/cf5fadda-6ff7-4b72-968e-f2ef51266b0a/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/cf5fadda-6ff7-4b72-968e-f2ef51266b0a/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.496209+00:00', 'updated_at': None}]} GET: /v1/portgroups/?fields=address,properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-17197f83-b380-42e8-a9fb-ff69c5b5cdc0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"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-4a62c196-eea5-4e74-aa07-75214722cf8e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=uuid {} GOT:{'portgroups': [{'uuid': '5b7a2d6d-4540-446e-8287-f28fc26d0a9a', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/5b7a2d6d-4540-446e-8287-f28fc26d0a9a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5b7a2d6d-4540-446e-8287-f28fc26d0a9a', 'rel': 'bookmark'}]}, {'uuid': 'bbb3ab70-1cf7-40c2-acc9-5ee6e0b3011c', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/bbb3ab70-1cf7-40c2-acc9-5ee6e0b3011c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bbb3ab70-1cf7-40c2-acc9-5ee6e0b3011c', 'rel': 'bookmark'}]}, {'uuid': 'da2ab76e-5d53-45b8-a28a-3308ea083aed', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/da2ab76e-5d53-45b8-a28a-3308ea083aed', 'rel': 'self'}, {'href': 'http://localhost/portgroups/da2ab76e-5d53-45b8-a28a-3308ea083aed', 'rel': 'bookmark'}]}]} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c23bd2a2-a47e-431d-bfeb-3e95b44312b9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82e3d99c-228c-4eeb-a987-3c84785ccc12 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "original"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.463536+00:00", "updated_at": "2021-12-04T17:54:01.579524+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 ... ok ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_links_node_states_and_driver_properties ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_links_node_states_and_driver_properties ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi ... ok GET: /v1/nodes?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f796c7c-6d0a-4042-b21a-639466640715 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=instance_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fc42b45d-987f-46f9-92db-7c1867ff8a51 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-c2f1bb49-b321-44b8-837c-2403269424d5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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-01fa4197-19e5-4ba0-829c-23755fdaf9f8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-f9e6fadc-0b74-44b8-a1f1-41d1185cf6cd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes/validate?node=spam {} GOT:{} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7b062f0e-0ad6-46bb-bd3d-8d2c461e2ee8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\", \"debuginfo\": null}"} PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe6ba3ad-3c05-4f11-a1c6-d6c55ea16926 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ede268f-7306-47ca-9efc-d7cc5840f724 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59ab00ae-2413-4f4a-9973-72edcb5953c2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d015013-9616-47a8-b3e2-58480149f667 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc7ce6f6-920c-4044-ba1e-af8a4830be04 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1fba0d6c-be9b-407d-aba4-0406f004a381 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface ... ok GET: /v1/ports?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c69a64db-5922-4dbd-a318-94c39c1b8a50 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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-7e1037a0-a8da-4ca9-8dad-9ea0ced40bfb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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-0ab11ad7-e6b3-4215-b00d-05c60a43e083 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"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-fc564f59-3af2-401a-bee0-00cf827542c4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/ports/c4190f58-42a1-403f-88bd-aba41c89e5c2 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-163439af-9c0a-4e16-9c62-49a8f061aaa5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "c4190f58-42a1-403f-88bd-aba41c89e5c2", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/c4190f58-42a1-403f-88bd-aba41c89e5c2", "rel": "self"}, {"href": "http://localhost/ports/c4190f58-42a1-403f-88bd-aba41c89e5c2", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.278873+00:00", "updated_at": "2021-12-04T17:53:59.412807+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-edf17f1d-a4a6-43e6-91f0-4e119549069b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.598248+00:00", "updated_at": "2021-12-04T17:53:59.697609+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e208030c-33f3-42bb-8b43-f6d4dcc8da85 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.847793+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-b99b0037-8e27-42b4-9997-4c4c8a2808f0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:00.925080+00:00", "updated_at": null} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'aa:bb:cc:dd:ee:ff', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:00.925080+00:00', 'updated_at': None} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': 'invalid-format', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-937d5388-dfed-431b-bd88-8e3212e40bdb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f63eb189-1522-4b2d-85f2-17ffb57ba031 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_cannot_send_create_port ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_cannot_send_create_port ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ... ok GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8aa682cf-a743-4bc5-ad5d-0632e2720a2b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/34720c99-af37-4d16-bb9f-fcb1de6a90ac [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-50e34d7c-8f53-4fd2-86b8-09c5a680fd81 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 34720c99-af37-4d16-bb9f-fcb1de6a90ac can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} PATCH: /v1/nodes/4510286d-e033-48a7-bc9f-72c5d335bca4 [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7f2c332a-7a60-432a-af8b-27c934fdbbe7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/fault' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f7ea599-b903-4a91-8c01-705cc68740dc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.985054+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e119319a-55bd-49ba-b452-dbbd696706b8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/chassis_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'chassis_id'\", \"debuginfo\": null}"} PATCH: /v1/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-250ec988-6911-48d3-8bbb-f7714ab6f184 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "7b4a06fb-aaa8-4859-8e2b-835d87838f5c", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c", "rel": "self"}, {"href": "http://localhost/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c/states", "rel": "self"}, {"href": "http://localhost/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2021-12-04T17:53:55.428082+00:00"} POST: /v1/nodes {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-aabf04fb-0fea-4e11-98d2-b79b10932a55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-234b8b8c-2eb6-488e-8434-9ca111befc03 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.087422+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_instance_info ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_instance_info ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-0567a77b-e201-4c6c-8a18-ebaf1b07edde X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15", "switch_info": "value3"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:57.798019+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a394f502-ba2f-4588-afef-6e6183701bc6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-3fbdea6c-b5ab-4087-8d69-eda559935d6c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.211326+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'c80690f3-f65e-4ff3-8dc9-101cb70798da'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e18d14d9-0381-445f-94f9-1544797180dd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'b04babf7-12fb-4f32-aa9d-0aed773b7feb'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ea671c9c-8bc4-4c23-bafe-2f20bd7170bf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "b04babf7-12fb-4f32-aa9d-0aed773b7feb"}, "internal_info": {"tenant_vif_port_id": "b04babf7-12fb-4f32-aa9d-0aed773b7feb"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.571237+00:00", "updated_at": null} DELETE: /v1/portgroups/pg.1 GOT:Response: 204 No Content Openstack-Request-Id: req-f30b23f3-0f36-4b0d-922e-eee7c74a5f88 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 GET: /v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9 {} GOT:{'uuid': '4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:58.883713+00:00', 'updated_at': None} GET: /v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9 {} GOT:{'uuid': '4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:58.883713+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path ... ok ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_datapath_id ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_datapath_id ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroup_mode_properties ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroup_mode_properties ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups_subcontrollers ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups_subcontrollers ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state ... ok ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found ... ok ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface ... ok ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces ... ok ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_no_defaults ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_no_defaults ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake ... ok ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed ... ok ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_out_range_auth_strategy ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_out_range_auth_strategy ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux ... ok ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ... ok ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info ... ok ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb ... ok ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ... ok ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_no_enabled_interfaces ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_no_enabled_interfaces ... ok ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled ... ok ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify ... ok ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi ... ok ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits ... ok ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail ... ok ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'ssh_password': '******', 'ssh_key_contents': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:54.399598+00:00'} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c94ea8ad-4a4d-47fe-838b-328e7173daa2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-732d2ce3-74d0-47be-9e41-d3ad4c26f5fb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/name', 'value': 'new name', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-888b769c-6445-4a43-9441-9ff0d51d88fa X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The reset_interfaces parameter can only be used when changing the node's driver.\", \"debuginfo\": null}"} PATCH: /v1/nodes/8456ebb1-ac7c-4f68-a283-239c7bae64e2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3aebce1-f913-4792-9a7c-02831f6b4950 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "8456ebb1-ac7c-4f68-a283-239c7bae64e2", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "deploy failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/8456ebb1-ac7c-4f68-a283-239c7bae64e2", "rel": "self"}, {"href": "http://localhost/nodes/8456ebb1-ac7c-4f68-a283-239c7bae64e2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8456ebb1-ac7c-4f68-a283-239c7bae64e2/ports", "rel": "self"}, {"href": "http://localhost/nodes/8456ebb1-ac7c-4f68-a283-239c7bae64e2/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.393238+00:00"} PATCH: /v1/nodes/939c4d50-4f51-4b37-8857-8e0cbf7b2b22 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6f000f56-e11e-4ac5-89a7-ed14ed8da05e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "939c4d50-4f51-4b37-8857-8e0cbf7b2b22", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/939c4d50-4f51-4b37-8857-8e0cbf7b2b22", "rel": "self"}, {"href": "http://localhost/nodes/939c4d50-4f51-4b37-8857-8e0cbf7b2b22", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/939c4d50-4f51-4b37-8857-8e0cbf7b2b22/ports", "rel": "self"}, {"href": "http://localhost/nodes/939c4d50-4f51-4b37-8857-8e0cbf7b2b22/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.529056+00:00"} PATCH: /v1/nodes/45ba2113-c722-4af5-b7c0-6adb8f345c23 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8bce8ce7-0be3-4e04-95e7-953792e55e58 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "45ba2113-c722-4af5-b7c0-6adb8f345c23", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspect failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/45ba2113-c722-4af5-b7c0-6adb8f345c23", "rel": "self"}, {"href": "http://localhost/nodes/45ba2113-c722-4af5-b7c0-6adb8f345c23", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/45ba2113-c722-4af5-b7c0-6adb8f345c23/ports", "rel": "self"}, {"href": "http://localhost/nodes/45ba2113-c722-4af5-b7c0-6adb8f345c23/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.615690+00:00"} PATCH: /v1/nodes/bb016dcd-27a4-463b-93cc-4c5b20161ac0 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0019361b-27c3-47d2-86e3-48f85f3f1bb5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "bb016dcd-27a4-463b-93cc-4c5b20161ac0", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/bb016dcd-27a4-463b-93cc-4c5b20161ac0", "rel": "self"}, {"href": "http://localhost/nodes/bb016dcd-27a4-463b-93cc-4c5b20161ac0", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/bb016dcd-27a4-463b-93cc-4c5b20161ac0/ports", "rel": "self"}, {"href": "http://localhost/nodes/bb016dcd-27a4-463b-93cc-4c5b20161ac0/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.716551+00:00"} PATCH: /v1/nodes/99489028-93b0-4659-8d87-10fe96d1cbb2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61317353-b507-451a-8a92-f2566e404344 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "99489028-93b0-4659-8d87-10fe96d1cbb2", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "clean failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/99489028-93b0-4659-8d87-10fe96d1cbb2", "rel": "self"}, {"href": "http://localhost/nodes/99489028-93b0-4659-8d87-10fe96d1cbb2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/99489028-93b0-4659-8d87-10fe96d1cbb2/ports", "rel": "self"}, {"href": "http://localhost/nodes/99489028-93b0-4659-8d87-10fe96d1cbb2/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.830171+00:00"} PATCH: /v1/nodes/1d6d7840-af9e-44a5-b21d-20e04c79e4fe [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-001cc23a-5725-4aab-87a1-5d3dc61b1109 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1d6d7840-af9e-44a5-b21d-20e04c79e4fe", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "error", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1d6d7840-af9e-44a5-b21d-20e04c79e4fe", "rel": "self"}, {"href": "http://localhost/nodes/1d6d7840-af9e-44a5-b21d-20e04c79e4fe", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1d6d7840-af9e-44a5-b21d-20e04c79e4fe/ports", "rel": "self"}, {"href": "http://localhost/nodes/1d6d7840-af9e-44a5-b21d-20e04c79e4fe/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.906380+00:00"} PATCH: /v1/nodes/ce863b2d-681a-469f-a30b-220d0071a893 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3d6cdc8f-ee89-4b0b-964e-3bc461741233 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ce863b2d-681a-469f-a30b-220d0071a893", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "verifying", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/ce863b2d-681a-469f-a30b-220d0071a893", "rel": "self"}, {"href": "http://localhost/nodes/ce863b2d-681a-469f-a30b-220d0071a893", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ce863b2d-681a-469f-a30b-220d0071a893/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce863b2d-681a-469f-a30b-220d0071a893/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.981348+00:00"} PATCH: /v1/nodes/b9c17b74-313b-4538-bda3-55e8bb5ab4c1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f2c861e7-e0f9-4466-bec5-d6e0f4ea2e7d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "b9c17b74-313b-4538-bda3-55e8bb5ab4c1", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "adopt failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b9c17b74-313b-4538-bda3-55e8bb5ab4c1", "rel": "self"}, {"href": "http://localhost/nodes/b9c17b74-313b-4538-bda3-55e8bb5ab4c1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b9c17b74-313b-4538-bda3-55e8bb5ab4c1/ports", "rel": "self"}, {"href": "http://localhost/nodes/b9c17b74-313b-4538-bda3-55e8bb5ab4c1/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.058795+00:00"} PATCH: /v1/nodes/a0a94dd2-db65-4ee2-b358-27fc75d8627c [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea3cf528-fb2d-475f-b54c-f5f0e19ecbc4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a0a94dd2-db65-4ee2-b358-27fc75d8627c", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "rescue failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/a0a94dd2-db65-4ee2-b358-27fc75d8627c", "rel": "self"}, {"href": "http://localhost/nodes/a0a94dd2-db65-4ee2-b358-27fc75d8627c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a0a94dd2-db65-4ee2-b358-27fc75d8627c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a0a94dd2-db65-4ee2-b358-27fc75d8627c/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.161223+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback ... ok ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual ... ok ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b276538-9f02-418a-8bb5-2d6a24a935be X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.532068+00:00"} PATCH: /v1/nodes/1d54afc5-e3be-47fa-a381-15de3f8d3845 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5052acfe-7017-4014-9944-e6dbb554c6f0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1d54afc5-e3be-47fa-a381-15de3f8d3845", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "deploy failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "active", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1d54afc5-e3be-47fa-a381-15de3f8d3845", "rel": "self"}, {"href": "http://localhost/nodes/1d54afc5-e3be-47fa-a381-15de3f8d3845", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1d54afc5-e3be-47fa-a381-15de3f8d3845/ports", "rel": "self"}, {"href": "http://localhost/nodes/1d54afc5-e3be-47fa-a381-15de3f8d3845/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.819556+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c1e33388-4886-4521-8841-0ce056fa3fb9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/driver' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/nodes/0131fdc1-0146-4088-bf26-d7b06d3ed4da [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d8ded7cb-871a-468a-b5b5-38e0a22846e7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver_info/this', 'value': 'foo', 'op': 'add'}, {'path': '/driver_info/that', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-88fb50dc-8b29-4082-82cb-5f2d5548b94a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error Message\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0b62c695-7cd5-4336-ae82-ce0879df333b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2021-12-04T17:53:55.733966+00:00"} PATCH: /v1/nodes/0df152f8-0f52-4238-bc56-c63fbbd36a94 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-75e42523-5a83-43cf-a640-4819feef1c4f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-b197cfe2-651a-4266-976c-efd29a6b48ed X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.654674+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 ... ok GET: /v1/nodes?associated=true&maintenance=true {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '17f13efb-4922-484d-8129-852c80163099', 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=true&maintenance=TruE {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '17f13efb-4922-484d-8129-852c80163099', 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.419763+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.419763+00:00'} GET: /v1/nodes/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2c797148-2cef-4d25-ada1-89cacade383f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ports could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes?associated=false {} GOT:{'nodes': [{'uuid': '3b123e95-460d-4dd5-a4c5-b768d578352e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3b123e95-460d-4dd5-a4c5-b768d578352e', 'rel': 'self'}, {'href': 'http://localhost/nodes/3b123e95-460d-4dd5-a4c5-b768d578352e', 'rel': 'bookmark'}]}, {'uuid': '3c56890f-5640-4e0d-afcf-f75242cda987', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3c56890f-5640-4e0d-afcf-f75242cda987', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c56890f-5640-4e0d-afcf-f75242cda987', 'rel': 'bookmark'}]}, {'uuid': '2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'rel': 'self'}, {'href': 'http://localhost/nodes/2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=FALSE {} GOT:{'nodes': [{'uuid': '3b123e95-460d-4dd5-a4c5-b768d578352e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3b123e95-460d-4dd5-a4c5-b768d578352e', 'rel': 'self'}, {'href': 'http://localhost/nodes/3b123e95-460d-4dd5-a4c5-b768d578352e', 'rel': 'bookmark'}]}, {'uuid': '3c56890f-5640-4e0d-afcf-f75242cda987', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3c56890f-5640-4e0d-afcf-f75242cda987', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c56890f-5640-4e0d-afcf-f75242cda987', 'rel': 'bookmark'}]}, {'uuid': '2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'rel': 'self'}, {'href': 'http://localhost/nodes/2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'rel': 'bookmark'}]}]} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c1ff6557-49d0-4f5c-b46b-6ddceadef74e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-26e9f2c7-f793-4a49-b40a-345064933f47 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/chassis_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'chassis_id'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/power_state', 'op': 'replace', 'value': 'fake-state'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6bd1ab0b-ca4c-4567-967f-fdc6ad09188c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/power_state' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f69fe9d9-adff-478f-a66a-36247785e179 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2021-12-04T17:53:56.233553+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e65d0910-7528-40db-807d-7aba964496f8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.831583+00:00", "updated_at": null} PATCH: /v1/portgroups/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 52:54:00:cf:2d:31. "} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-45a373cd-5ace-4bdb-a5f8-2d9083982b7a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/portgroups {'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b Openstack-Request-Id: req-59e09789-74c6-46d1-8e6f-14f80581a770 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "c11eb8bc-f45f-4138-bdae-c88b922f538b", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b", "rel": "self"}, {"href": "http://localhost/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b/ports", "rel": "self"}, {"href": "http://localhost/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.715453+00:00", "updated_at": null} GET: /v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b {} GOT:{'uuid': 'c11eb8bc-f45f-4138-bdae-c88b922f538b', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.715453+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': 'invalid-format'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f1d9b031-c77e-4985-96ff-2fc4b14c448a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8f757d67-3d20-4697-a458-24992432f411 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} GET: /v1/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3 {} GOT:{'uuid': '9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.155686+00:00', 'updated_at': None} GET: /v1/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3 {} GOT:{'uuid': '9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.155686+00:00', 'updated_at': None} GET: /volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3 {} GOT:{'uuid': '9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.155686+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id ... ok GOT:{'portgroups': [{'uuid': '23bf62c8-6f98-4d5a-a033-0f6a2173458a', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/23bf62c8-6f98-4d5a-a033-0f6a2173458a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/23bf62c8-6f98-4d5a-a033-0f6a2173458a', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d480da6f-73b8-4447-8788-4d24d161ae01 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'invalid-mac-format'. unable to convert to macaddress. Error: Expected a MAC address but received invalid-mac-format.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fceb5017-2db5-493a-b220-f34b002ca5c3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cef97f2b-c626-4eea-8084-bf0966835cee X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f609729a-27a8-4252-be46-e7f77095f304 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e76c6b9-b44d-4ada-b210-109290102d41 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.721761+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'invalid-format', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6e13e81e-f5c0-46d3-91d1-99069df8cce9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/heartbeat/73830953-e0a0-420d-ab90-d1da43701b76 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cca61792-a942-45e3-8d9c-f9acccea27b4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/volume/connectors?detail=True {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-152579ea-1950-4091-841c-da065cf26f00 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5e1a5364-2774-44d7-ab39-a3f4baad8437 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute type. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ee349347-879b-438d-9456-e0e220cb6ca5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.344502+00:00", "updated_at": null} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.344502+00:00', 'updated_at': None} GET: /v1/volume/targets?sort_key=uuid {} GOT:{'targets': [{'uuid': '4a7feff1-fbb9-49c8-8a6c-9ca5231388f5', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4a7feff1-fbb9-49c8-8a6c-9ca5231388f5', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4a7feff1-fbb9-49c8-8a6c-9ca5231388f5', 'rel': 'bookmark'}]}, {'uuid': '78453e49-57e5-4595-bc88-4498e20cf98e', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/78453e49-57e5-4595-bc88-4498e20cf98e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/78453e49-57e5-4595-bc88-4498e20cf98e', 'rel': 'bookmark'}]}, {'uuid': 'dcfcb1cb-ccae-4e3e-888e-1e4ddb55814b', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/dcfcb1cb-ccae-4e3e-888e-1e4ddb55814b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/dcfcb1cb-ccae-4e3e-888e-1e4ddb55814b', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid ... ok ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__check_versions_bad ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__check_versions_bad ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached ... ok ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client_deprecated_opts ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client_deprecated_opts ... ok ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ... ok ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ... ok ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface ... ok ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat ... ok ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_refresh ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_refresh ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_mkisofs_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_mkisofs_fails ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service ... ok ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports ... ok ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create ... ok ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to set the BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password ... ok ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes ... ok ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_bios ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_bios ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb ... ok ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha512 ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha512 ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... ok ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting ... ok ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn ... ok ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor ... ok ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ... ok ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail ... ok ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'inspect wait', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2021-12-04T17:53:55.256534+00:00'} GET: /v1/nodes/eggs/states {} GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '1971-03-09T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error'} GET: /v1/nodes/123~123/ports {} GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 123~123. "} GET: /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d336fee9-1dff-4aa5-b42a-c0b3a4fbfdbd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'i am invalid'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6500dd3f-b7e5-46e6-84f8-917fc55c830c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name 'i am invalid'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'foo', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-3b23c8cd-71d6-40f2-8565-50b984936628 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 can not update the driver while the console is enabled. Please stop the console first.\", \"debuginfo\": null}"} PATCH: /v1/nodes/d3f51ce5-6676-4572-97be-4da5d20c3d84 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea37a52e-0298-4153-9491-920f20881d87 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d3f51ce5-6676-4572-97be-4da5d20c3d84", "instance_uuid": null, "power_state": null, "target_power_state": "power off", "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/d3f51ce5-6676-4572-97be-4da5d20c3d84", "rel": "self"}, {"href": "http://localhost/nodes/d3f51ce5-6676-4572-97be-4da5d20c3d84", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d3f51ce5-6676-4572-97be-4da5d20c3d84/ports", "rel": "self"}, {"href": "http://localhost/nodes/d3f51ce5-6676-4572-97be-4da5d20c3d84/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:57.668538+00:00"} PATCH: /v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0240912-cbd1-485b-94e5-afcdc0b3b76c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "5c041042-debf-4293-ab14-e3ef0b4b7549", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549", "rel": "self"}, {"href": "http://localhost/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/ports", "rel": "self"}, {"href": "http://localhost/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/volume", "rel": "self"}, {"href": "http://localhost/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/states", "rel": "self"}, {"href": "http://localhost/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "updated_at": null, "created_at": "2021-12-04T17:53:57.912055+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_skip_step ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_skip_step ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full ... ok ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot ... ok ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device ... ok ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets ... ok ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock ... ok ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_fail ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_fail ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on_timeout ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_missing_parameter ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_missing_parameter ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... skipped u"Backend 'postgresql' is unavailable: Could not connect" ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ced17701-a792-4870-9714-e8bddcc43e5f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.482717+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '7bb69b8f-fac5-47e4-beae-89dd45c4fd0f'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e4731a65-aac1-4c15-b74b-6c801edc68d1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '7b070e66-ed62-4e2f-9fa7-a0cf6822ea58', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/7b070e66-ed62-4e2f-9fa7-a0cf6822ea58', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7b070e66-ed62-4e2f-9fa7-a0cf6822ea58', 'rel': 'bookmark'}]}, {'uuid': '1211755f-1f73-4082-aada-2252181780b2', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/1211755f-1f73-4082-aada-2252181780b2', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1211755f-1f73-4082-aada-2252181780b2', 'rel': 'bookmark'}]}, {'uuid': '934a2cf2-c040-4830-bf3b-6794bf306e17', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/934a2cf2-c040-4830-bf3b-6794bf306e17', 'rel': 'self'}, {'href': 'http://localhost/portgroups/934a2cf2-c040-4830-bf3b-6794bf306e17', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=3&marker=934a2cf2-c040-4830-bf3b-6794bf306e17'} GET: /v1/portgroups/detail {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/portgroups?detail=True {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.203555+00:00', 'updated_at': None}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c59cb7db-83f9-4815-ab17-eaab65369dea X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": 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-f619b88a-49e0-4759-9197-c8472f559eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/portgroups/7d6c05b8-f89f-419b-94b9-4ab58a2a0e45 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7f1bd161-c319-4afe-b8ac-dcbc7c2394e1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 7d6c05b8-f89f-419b-94b9-4ab58a2a0e45 could not be found.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f6764c3-2149-4345-9242-fa57fc383420 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:00.118061+00:00", "updated_at": "2021-12-04T17:54:00.481570+00:00"} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} GOT:Response: 202 Accepted Openstack-Request-Id: req-3557f781-8cf9-4332-a969-a826032c861b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 GET: /v1/volume/ {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a55b3d3f-2432-4b37-8cd5-d2aafada51f6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=connector_id,extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-88801829-83f2-4a8c-be1a-e786d0ad8bd9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi ... ok ironic.tests.unit.api.test_acl.TestACL.test_non_admin ironic.tests.unit.api.test_acl.TestACL.test_non_admin ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__check_versions ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__check_versions ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure ... ok ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf ... ok ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_always_umount ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_always_umount ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image ... ok ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_extra ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_extra ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_extra ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_extra ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 ... ok ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier ... ok ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_md5 ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_md5 ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports ... ok ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled ... ok ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_none ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_none ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_deprecated ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_deprecated ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps_old_rpc ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps_old_rpc ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console ... ok ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist ... ok ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ... ok ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... skipped u"Backend 'postgresql' is unavailable: Could not connect" ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_noglance ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_noglance ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_2_disk_and_raid_level_1 ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_missing_parameter ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_missing_parameter ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_no_cafile ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_no_cafile ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_binding_host_id_raise ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_binding_host_id_raise ... ok ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_fail ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_fail ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_cafile ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_cafile ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_spt ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_spt ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client ... ok /usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to get the BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_node_is_in_use_by_oneview ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_node_is_in_use_by_oneview ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_cpu ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_object ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_object ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_with_timeout ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_with_timeout ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_no_boot_iso ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_no_boot_iso ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2a54c192-6e2c-4dc6-a6f8-98ba928a2da5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1d22e19c-b493-46f5-bb7b-d68e82b60be6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e66795d0-2cc9-4e96-b51b-173cef5339fd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-915546dc-9f34-4a60-9c84-fdbdf55b9424 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e335f2da-5175-46d3-9cb6-d2fd3ef771ff X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2a0d2297-4a2b-483d-b1d3-e26ca46fe3e4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/9c57db0e-b0b1-43c3-9541-771744a1eb31 [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a22a166a-ce4e-4c8b-bc3b-d2e321d70cff X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute resource_class. Value: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'. Value should have a maximum character requirement of 80\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bf99041a-ad05-4a65-b0f4-17e150d94280 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'class2', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-1a7bf847-c4ca-4a50-97c5-8f6cc59badf3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": "class2", "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": "flat", "updated_at": null, "created_at": "2021-12-04T17:53:58.713078+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'class2', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2021-12-04T17:53:58.713078+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_without_boot_iso ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_without_boot_iso ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-de3ebeb6-5217-497b-b5da-41d194d3ffe1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.828719+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f6aa9500-c23a-43e8-a8c5-15162723948a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-eb62a4ed-abb1-4a13-a9e7-0031864d860a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.178899+00:00", "updated_at": null} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 204 No Content Openstack-Request-Id: req-dab079f9-39f6-4e7a-bf92-18f2b74aaa4f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 GET: /v1/portgroups/detail {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.439146+00:00', 'updated_at': None}]} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-03eca53e-2d9c-44db-8e84-337e6b96f28a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update portgroup \\\"6eb02b44-18a3-4659-8c0b-8d2802581ae4\\\" on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8c1ad220-e1b6-45e8-b78b-1b801a792369 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-63701301-8ff5-41c6-b4b9-802031f86ce2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.808099+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.808099+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address ... ok ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high ... ok ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_invalid_key ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_invalid_key ... ok ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_not_mac_or_datapath_id ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_not_mac_or_datapath_id ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_volume ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_volume ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel ... ok 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-89bd6a3c-7eb7-4ce5-8763-cc0fbfae205c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-3f30ef39-e270-4f20-b6d7-32a192fe60e0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": 123}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.536695+00:00", "updated_at": null} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.536695+00:00', 'updated_at': None} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1faeca0b-20cb-4a55-8e1b-2b9b75afb58e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a Openstack-Request-Id: req-991cd3b1-037c-4c23-a9ee-14ffadb0e269 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1956cf69-d494-4996-b8b4-3a511f04b06a", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a", "rel": "self"}, {"href": "http://localhost/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.795868+00:00", "updated_at": null} GET: /v1/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a {} GOT:{'uuid': '1956cf69-d494-4996-b8b4-3a511f04b06a', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.795868+00:00', 'updated_at': None} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-259da277-1440-45b9-943b-1e83bccd9c6f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_id. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3077992-25aa-433b-950c-aa9ffc61fe8e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.108907+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3bcb1758-87f4-492b-b867-ed71d21fe7f4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-46ea3939-53f9-44d4-9823-3506197804ba X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo": 123}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.599261+00:00", "updated_at": null} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.599261+00:00', 'updated_at': None} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version ... ok ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request ... ok ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername ... ok ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise ... ok ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails ... ok ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_extra ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_extra ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk ... ok ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id ... ok ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting ... ok ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled ... ok ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ... ok ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ... ok ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked ... ok ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ... ok ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ... ok ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification ... ok ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify ... ok ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits ... ok ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing ... ok ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id_portgroup ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id_portgroup ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate_not_iwdi_netboot ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate_not_iwdi_netboot ... ok ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_sensors_data ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_sensors_data ... ok ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_validate ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_timeout ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_timeout ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_on ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_with_ilo_error ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_with_ilo_error ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_enclosure_group_invalid ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_enclosure_group_invalid ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_mac_type_virtual ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_mac_type_virtual ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_missing_values_empty_string ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_missing_values_empty_string ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__add_applied_server_profile_uri_field ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__add_applied_server_profile_uri_field ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_sensors_data_not_implemented ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_sensors_data_not_implemented ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail_exception ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail_exception ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_exception ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_exception ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_image ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_image ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network ... ok ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_fails ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-266e55ea-c49a-4823-a83d-359cc0f10f04 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.718428+00:00", "updated_at": "2021-12-04T17:54:01.825470+00:00"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-90288cf4-b51d-47bf-8976-ef1df9077783 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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': {}, '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-5e42bdf2-188b-4acc-828c-a057900ab747 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} GET: /v1/volume/connectors/?limit=3 {} GOT:{'connectors': [{'uuid': 'efc23e5c-a4fd-4f24-9359-dc9f7e87c2a5', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/efc23e5c-a4fd-4f24-9359-dc9f7e87c2a5', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/efc23e5c-a4fd-4f24-9359-dc9f7e87c2a5', 'rel': 'bookmark'}]}, {'uuid': '99ebf512-1a74-491f-aff0-fe25489aa1a0', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/99ebf512-1a74-491f-aff0-fe25489aa1a0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/99ebf512-1a74-491f-aff0-fe25489aa1a0', 'rel': 'bookmark'}]}, {'uuid': '59041eb7-7f0c-406a-8222-c52736cc3dfe', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/59041eb7-7f0c-406a-8222-c52736cc3dfe', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/59041eb7-7f0c-406a-8222-c52736cc3dfe', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=59041eb7-7f0c-406a-8222-c52736cc3dfe'} GET: /v1/volume/connectors?sort_key=uuid {} GOT:{'connectors': [{'uuid': '064c0ebd-6ac8-4109-b165-ce6c17240351', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/064c0ebd-6ac8-4109-b165-ce6c17240351', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/064c0ebd-6ac8-4109-b165-ce6c17240351', 'rel': 'bookmark'}]}, {'uuid': 'b985d3c0-5f54-4035-8ec8-e32e649eb68c', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/b985d3c0-5f54-4035-8ec8-e32e649eb68c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/b985d3c0-5f54-4035-8ec8-e32e649eb68c', 'rel': 'bookmark'}]}, {'uuid': 'e5ef2a65-b722-49ad-99af-2c4e272f18f8', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/e5ef2a65-b722-49ad-99af-2c4e272f18f8', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e5ef2a65-b722-49ad-99af-2c4e272f18f8', 'rel': 'bookmark'}]}]} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7d017cf2-6eff-4010-b027-8d83f53b5f9c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"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-6ec0993e-1330-4191-ab3c-c43cc8ad8cdb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.920765+00:00", "updated_at": "2021-12-04T17:54:02.926276+00:00"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b9bcb3f-a8ad-479b-bebc-335ec20575fe X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.163455+00:00", "updated_at": null}ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_no_firmware_url ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_no_firmware_url ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_prepare_manager_url ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_prepare_manager_url ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sht ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sht ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_get_properties ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail ... ok ironic.tests.unit.api.test_acl.TestACL.test_authenticated ironic.tests.unit.api.test_acl.TestACL.test_authenticated ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_uefi ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_uefi ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_preserve_ephemeral ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_preserve_ephemeral ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_wo_boot_option_and_wo_boot_mode ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_wo_boot_option_and_wo_boot_mode ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises_during_cleanup ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises_during_cleanup ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup ... ok ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header ... ok ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found ... ok ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available ... ok ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context ... ok ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ... ok ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted ... ok ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy ... ok PATCH: /v1/nodes/971de187-6aaa-4833-a5ce-334d395b04a8 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e2c3060-cd79-48f5-86e8-0109a3bc9a11 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "971de187-6aaa-4833-a5ce-334d395b04a8", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "unrescue failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/971de187-6aaa-4833-a5ce-334d395b04a8", "rel": "self"}, {"href": "http://localhost/nodes/971de187-6aaa-4833-a5ce-334d395b04a8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/971de187-6aaa-4833-a5ce-334d395b04a8/ports", "rel": "self"}, {"href": "http://localhost/nodes/971de187-6aaa-4833-a5ce-334d395b04a8/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.252724+00:00"} PATCH: /v1/nodes/69230e85-ad74-4d66-953c-e7976e20d785 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-085c4422-8386-4a2d-ab9a-ae558afe14d1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c2343db0-8b07-4e91-81be-539fb411cee7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'management', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1e0fd717-81de-4c28-855d-32d7a16b187c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'states', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5014e369-63df-4448-935f-62f8c5c48b13 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'vendor_passthru', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-74996127-5b81-4825-89c9-08ae98bde956 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-8475bc1b-7240-485f-9eee-bda67d05f148 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-81af7845-b81c-44a2-844c-f2d0a6d37b5e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter ... ok ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id ... ok ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user ... ok PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-60c8bafd-cf6c-49f8-887f-f4cfad86cb5d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a5a7987b-a77f-4d4f-aae1-3bb93d2dde7d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} PATCH: /v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d6d3c5b-c3cd-456e-a2ff-94c008e1a697 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da", "rel": "self"}, {"href": "http://localhost/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/ports", "rel": "self"}, {"href": "http://localhost/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/volume", "rel": "self"}, {"href": "http://localhost/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/states", "rel": "self"}, {"href": "http://localhost/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:53.780496+00:00"} PATCH: /v1/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}]ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured ... ok ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found ... ok ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_maintenance_when_raise_exception ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_maintenance_when_raise_exception ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic_no_server_profile ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic_no_server_profile ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:56.087422+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-62a81e6a-1f4f-41d6-8827-e5c9fc6cb849 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.918422+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:56.918422+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-b1f6b218-a19b-400d-811d-4c349a6ebb2e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:57.651309+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:57.651309+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_no_server_profile ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_no_server_profile ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure ... ok ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled ... ok ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_invalid_device ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_invalid_device ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail ... ok ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_all ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_all ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2021-12-04T17:53:56.654674+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'traits': ['CUSTOM_4']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e648ccf-260d-418d-ae50-c6e417cc1664 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify node traits on node creation. Traits must be set via the node traits API.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-114e5cfb-9ebb-4a4e-9944-dc0fb62ec2b9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7111b1bc-c3ba-49ad-9cd6-649d821b71c1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-78ab9bbf-c489-4102-9282-12f72697cd33 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 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-6a2e0255-5e8d-45ce-a7f5-9723839e59b9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/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-e55f7606-0b19-425c-8765-3f282d54212f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-2695a2cc-2ea8-4a17-a175-9118df614d41 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-0a737cd3-5653-40a4-8af4-01965fd843f2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'configdrive': 'foo'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-3d0d99fc-3144-4cee-b398-8471d5486b80 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-4b6d67ae-2194-4284-a3ff-3e38856d28b0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 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-bdcbc8eb-2f50-4fc7-8dd1-6b0307794591 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2de03cc7-a8f7-438e-8fd8-b4d7d537f98f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 {} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "405 Method Not Allowed\n\nThe method PUT is not allowed for this resource. \n\n "} DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-76c03dc1-ea29-47cd-9b20-05d3ddadc88e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} GET: /v1/ports/detail?node=test-node {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-108b1453-8240-49b9-a1b1-887d2c017f5c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_no_internal ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_no_internal ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked ... ok POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'bios_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-11f11b87-1bec-4b54-9daf-3303cf08c858 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.bios' entrypoint: foo. Valid interfaces are ['fake', 'no-bios'].\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-9e87354d-f410-47bf-84ce-688ad9bddf34 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:58.501930+00:00"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-3d0c9bbc-ff6b-488c-9535-b99a61e2e52f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": "foo", "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:58.760764+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:58.760764+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ... ok ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded ... ok ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false ... ok ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_invalid_device ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_invalid_device ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ... ok PATCH: /v1/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-99ac5567-a52c-491b-8739-8247cc2c19c3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2021-12-04T17:53:56.937087+00:00"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'neutron', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-1ca95eec-85c8-42a1-b92c-e321bab59fb8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": "neutron", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'neutron', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a83e9792-8312-4318-9a21-1fb55bd53f28 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-97b8a496-6d9f-44b9-a688-96f34e9bc4cb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2fceaec0-934c-4410-ba06-9f1e0b7b166e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is required when setting target provision state to clean\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-718c88a9-0725-482c-b8d5-6b41f0858501 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manageable'}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail ... ok PATCH: /v1/nodes/node-57.1 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-95a4184f-1b0d-4c2e-91a3-f449f78b5edf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.704667+00:00"} PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/boot_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64cf07ce-4b4a-455f-b5dc-e6badf674b3e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/console_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-619bec9c-8f51-4a3f-b4e8-9230121218ff X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/deploy_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-833176c4-f902-4777-af3e-c04329da0854 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/inspect_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-806681cc-6a56-4495-9408-334ba5a33f92 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/management_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e2d4ba3-6760-4fb8-9aca-871b459a416a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/power_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d141425-4a49-436a-837c-007d742537ca X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/raid_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-459bd42e-10f7-4d2a-9e32-d046c35b2ff6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_fail ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port ... ok 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-632ab31a-72a5-410a-8c39-659c920c81ef X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} POST: /v1/nodes/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-182585e2-398d-4e58-b135-e22ab4ece454 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node. Value: 'ports'. unable to convert to Node. Error: __init__() takes 1 positional argument but 2 were given\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-f94630ef-ac6c-42fe-9c68-f07c0e6b3c59 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-e07e1fca-bc6d-4378-8039-6ebcf61ec3a8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b95434b6-4ce2-45ca-900c-ae51656abc0e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-70418dbd-1ea2-4fe9-8753-2cebbb1771bc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-24626056-9144-4b3c-80cd-d50c8cd87ae7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states Openstack-Request-Id: req-d1560cd3-585c-46e3-8656-3397d893d3ec X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 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-12c984bf-550a-4aa4-abc5-1de66083f69f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-61d466b6-c9f5-4124-9b06-6a57677c3b49 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-365c0b91-d16c-4b39-84d7-7482b2eb18fb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"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-5813ed32-e21c-49e1-b733-2ebf8de5fa3d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-9f6137d1-5751-40c9-bf19-b562397bcec1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-20eeafd2-22c2-45d3-b7f2-3c5ac218f62f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-05f6a8f2-0213-46b8-88ed-e3fd9bf2b44a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/nodes/badname/traits {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c54c0f2f-1c6b-43c9-a17c-9520c9d23326 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\", \"debuginfo\": null}"} DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-28c1a355-1973-48d6-92ca-6f088c72dd0e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_extra_vif_port_id ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_disk_label ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_disk_label ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi ... ok GET: /v1/ports?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fa1be383-cf10-4a62-a11d-8961902c35e5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'invalid-mac-format'. unable to convert to macaddress. Error: Expected a MAC address but received invalid-mac-format.\", \"debuginfo\": null}"} PATCH: /v1/ports/50c3c246-6cc3-43c0-929d-bc05beac8046 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-246fd7b4-d5db-4c31-910c-460e44c888f0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "50c3c246-6cc3-43c0-929d-bc05beac8046", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/50c3c246-6cc3-43c0-929d-bc05beac8046", "rel": "self"}, {"href": "http://localhost/ports/50c3c246-6cc3-43c0-929d-bc05beac8046", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.455692+00:00", "updated_at": "2021-12-04T17:54:01.559266+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/ba0a36ad-b823-41c7-9869-1f4e09f95ae0 [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a428b3e5-2673-4cf6-ac6d-d9e19284faf9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3fd71a54-134d-4184-8380-b8b15195c98e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e2d81a62-cf5f-4318-a8ad-1bfbdf396c8d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet2", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.059705+00:00", "updated_at": "2021-12-04T17:54:02.124718+00:00"} POST: /v1/ports {'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef Openstack-Request-Id: req-2ea58004-cf68-4024-96ab-49142f837f55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "275a981d-ea8f-42b1-9d5c-485fd02e56ef", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef", "rel": "self"}, {"href": "http://localhost/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.416197+00:00", "updated_at": null} GET: /v1/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef {} GOT:{'uuid': '275a981d-ea8f-42b1-9d5c-485fd02e56ef', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef', 'rel': 'self'}, {'href': 'http://localhost/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.416197+00:00', 'updated_at': None} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'invalid-format', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b73eeb84-d397-47c1-a93d-b1122e0d155a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-8f9d39b3-402f-4b12-afe1-76767432b282 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} GET: /v1/portgroups/detail?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fe05f942-8e29-475e-a28d-a1223d70db01 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.1', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.807473+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_mandatory_attr ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_mandatory_attr ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op ... ok ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_pin ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_pin ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_ramdisk_endpoints ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_ramdisk_endpoints ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version ... ok ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed ... ok ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session ... ok ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_ioerror ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_ioerror ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_default_v1 ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_default_v1 ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_with_ExecutionError ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_with_ExecutionError ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi ... ok ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port ... ok ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports ... ok ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports ... ok ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid ... ok ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_with_trailing_slash ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_with_trailing_slash ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_throws_for_invalid_or_unsupported_hash ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_throws_for_invalid_or_unsupported_hash ... ok ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file ... ok ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled ... ok ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_unset_clean_step ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_unset_clean_step ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2_old ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2_old ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old ... ok ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort ... ok ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ... ok ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo ... ok ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty ... ok ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties ... ok ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface ... ok ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list ... ok ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach ... ok ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image ... ok 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-917addcb-54d1-4238-9cd4-52568e5185a9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "foo", "updated_at": null, "created_at": "2021-12-04T17:53:57.966529+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': 'foo', 'updated_at': None, 'created_at': '2021-12-04T17:53:57.966529+00:00'} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-06b662e4-d281-4db8-9899-57fc4fa8d257 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 PUT: /v1/nodes/node-39/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5d8ddeb3-c03a-4b53-9177-82e9f07a69e6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'provide', 'clean_steps': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-02974794-2b20-4ce5-82e3-7590cc9db64e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is only valid when setting target provision state to clean\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'invalid-value'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d6ccbeca-3da5-4511-97fc-5b9347287399 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-ebb000d0-6bfd-42c4-a97b-9ab9701acda9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"enabled\\\"\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} GOT:Response: 202 Accepted Openstack-Request-Id: req-5730d274-2e37-4b62-a957-75edcb756739 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-5800c271-14ba-4b16-9a01-8f6bdfdd9a11 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:58.000395+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'class1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2021-12-04T17:53:58.000395+00:00'} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 204 No Content Openstack-Request-Id: req-1fe5038b-e160-4e45-ab27-b7eda61b9210 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-817518b7-2c81-4807-9c5c-7a6759738015 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-89505dd2-3d67-4a37-84cb-6759fb097bbf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2c9d3090-4992-4631-ac58-497793c03499 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-089e8f9f-54c5-4acb-ba2e-d99a21abf99e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-cc53f899-d190-4010-ab9b-9e55a41c4c5f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fa11b073-4f4b-49d6-b9b6-51e62e985c01 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/maintenance {} GOT:Response: 202 Accepted Openstack-Request-Id: req-52f5a61e-491f-4179-ad85-6cb429d3a018 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5c493d1d-09fb-4579-a152-20e5a5d3ac63 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'trait': 'CUSTOM_3'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f2f159ea-43ac-428d-94ec-226b486ac333 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No body should be provided when adding a trait\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e9c043a0-5ca9-47c5-902d-6b7b4e26ccec X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} GET: /v1/ports?detail=True {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': False, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:01.256552+00:00', 'updated_at': None}]}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_internal ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_internal ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:{'foo': 'bar'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:{'foo': 'bar'} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru {'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3d2f4ca0-8400-4a91-af05-18a193c996e2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-bcc5a9fd-2ae2-46e5-8fbf-0e240d6433a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-048e52d4-bb36-4d64-af87-c5c0eaaa7a5a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5fadb51c-4852-43a5-8341-4573f2969d12 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/management/boot_device {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-9a50280b-2df3-43ec-bf7e-305e2c56c394 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 DELETE: /v1/nodes/node-39/traits/CUSTOM_12 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9e724dd6-62bc-46bc-b7a8-d0edd9f0adec X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a trait 'CUSTOM_12'\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'traits': []} GOT:Response: 204 No Content Openstack-Request-Id: req-e6815123-66e4-4f74-a0d5-9460f3c7347d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 GET: /v1/ports {} GOT:{'ports': []} GET: /v1/ports {} GOT:{'ports': [{'uuid': '24e4175e-ba7d-4eb9-aba1-2917cd771c32', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/24e4175e-ba7d-4eb9-aba1-2917cd771c32', 'rel': 'self'}, {'href': 'http://localhost/ports/24e4175e-ba7d-4eb9-aba1-2917cd771c32', 'rel': 'bookmark'}]}, {'uuid': 'a068f27b-a926-4f22-bc70-d3ec1b6db0ca', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/a068f27b-a926-4f22-bc70-d3ec1b6db0ca', 'rel': 'self'}, {'href': 'http://localhost/ports/a068f27b-a926-4f22-bc70-d3ec1b6db0ca', 'rel': 'bookmark'}]}, {'uuid': 'd9c9b211-0596-4ae0-a20d-6f19a9eacfd3', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/d9c9b211-0596-4ae0-a20d-6f19a9eacfd3', 'rel': 'self'}, {'href': 'http://localhost/ports/d9c9b211-0596-4ae0-a20d-6f19a9eacfd3', 'rel': 'bookmark'}]}, {'uuid': '717de3a5-d986-43d1-8e83-697234b4263a', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/717de3a5-d986-43d1-8e83-697234b4263a', 'rel': 'self'}, {'href': 'http://localhost/ports/717de3a5-d986-43d1-8e83-697234b4263a', 'rel': 'bookmark'}]}, {'uuid': '72a00a49-7f30-4027-8e27-1040e0dba09a', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/72a00a49-7f30-4027-8e27-1040e0dba09a', 'rel': 'self'}, {'href': 'http://localhost/ports/72a00a49-7f30-4027-8e27-1040e0dba09a', 'rel': 'bookmark'}]}]} GET: /v1/ports?sort_key=pxe_enabled {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-58fe348d-0a21-47a4-a551-72744aff883d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8fac01bb-cc12-4d11-a9db-fb577317a6cf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bd8f6170-d057-4e64-9a5f-f6f7e7676be7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-727a2815-601b-4417-92c8-5c1324e5ab07 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.452333+00:00", "updated_at": "2021-12-04T17:54:02.504918+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0c05dd4f-f3cb-4f38-b73a-8c60f97da0f2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.574069+00:00", "updated_at": "2021-12-04T17:54:02.653235+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b1b30bd9-7303-4a1b-b879-5fc17d076446 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.740926+00:00", "updated_at": "2021-12-04T17:54:02.811268+00:00"}ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-50de1903-66e8-47a3-a3da-a91c409fcd31 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "e62a08f3-bc69-42cb-9d68-7f637866ce4e", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e", "rel": "self"}, {"href": "http://localhost/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e/ports", "rel": "self"}, {"href": "http://localhost/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e/states", "rel": "self"}, {"href": "http://localhost/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2021-12-04T17:53:54.524099+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'power_state': 'new state'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6b8add91-0d27-49c9-bf38-acb82aba0ece X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument patch: power_state\", \"debuginfo\": null}"} PATCH: /v1/nodes/32199fb2-dd15-414f-a86a-8b302af0b385 [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-064dd8dd-1b7e-4f9b-b6a6-59bc1c872b74 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node traits via node patch. Node traits should be updated via the node traits API.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-e0782310-e5c0-4ad2-b188-3b1e38934606 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-109835f7-1931-489d-8acc-262e7876b854 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 0.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-86bf752f-4d10-4b62-a1a2-a53544ec176f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.991966+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name ... ok GET: /v1/ports/detail?sort_key=pxe_enabled {} GOT:{'ports': [{'uuid': 'a7a2b286-b8af-4d62-b9df-46bca4cdb26b', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': False, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/a7a2b286-b8af-4d62-b9df-46bca4cdb26b', 'rel': 'self'}, {'href': 'http://localhost/ports/a7a2b286-b8af-4d62-b9df-46bca4cdb26b', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.789085+00:00', 'updated_at': None}, {'uuid': '4b4f4cfa-a7c0-4dcf-b409-6f8913e223b5', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/4b4f4cfa-a7c0-4dcf-b409-6f8913e223b5', 'rel': 'self'}, {'href': 'http://localhost/ports/4b4f4cfa-a7c0-4dcf-b409-6f8913e223b5', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.791524+00:00', 'updated_at': None}]} GET: /v1/ports?detail=False&fields=internal_info {} GOT:{'ports': [{'internal_info': {'bar': 'buzz'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/ports/detail?portgroup=fooname {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.140698+00:00', 'updated_at': None}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.356714+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'foo': 'bar'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.356714+00:00', 'updated_at': None} GET: /v1/portgroups/123 123/ports {} GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 123 123. "} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '365cde2c-2b4e-4c05-bd9e-8f49aebd0cdb', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72e58bfe-dd3b-4009-b0e3-b100dfb25d44 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "365cde2c-2b4e-4c05-bd9e-8f49aebd0cdb", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.744015+00:00", "updated_at": "2021-12-04T17:54:03.834911+00:00"} PATCH: /v1/ports/cb12c260-5f17-4da1-8709-e38fa1238906 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9049c98-4650-40ec-a87a-d64a483ebe7a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "cb12c260-5f17-4da1-8709-e38fa1238906", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/cb12c260-5f17-4da1-8709-e38fa1238906", "rel": "self"}, {"href": "http://localhost/ports/cb12c260-5f17-4da1-8709-e38fa1238906", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.981900+00:00", "updated_at": "2021-12-04T17:54:04.073036+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-75ee7c66-9192-46cd-93d0-1ddb422a99a5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-5c8057be-fbcd-421b-b9a4-e84ace722e79 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.371537+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-933001b3-1f59-4336-a1b8-42e4b06a4ef3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.512940+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ... ok GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b3218cd6-34cc-4123-9239-c7cb0109dc81 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console Openstack-Request-Id: req-e1762e8d-064b-429f-9333-0ac06bfea3e1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/node-39/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted Openstack-Request-Id: req-17009872-1349-444a-aaef-bfa0225e6893 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-41f4a710-00da-47ee-8e30-c54904078243 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} GET: /v1/ports?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b2261136-9a29-48c6-a20a-629e94e1ac0d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/ports?fields=uuid,extra {} GOT:{'ports': [{'uuid': '33eeaf6a-b52b-4ce9-8ce8-3d9ec2c1c391', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/33eeaf6a-b52b-4ce9-8ce8-3d9ec2c1c391', 'rel': 'self'}, {'href': 'http://localhost/ports/33eeaf6a-b52b-4ce9-8ce8-3d9ec2c1c391', 'rel': 'bookmark'}]}, {'uuid': '1114dc6b-840a-4c1d-b55a-033cdc597666', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/1114dc6b-840a-4c1d-b55a-033cdc597666', 'rel': 'self'}, {'href': 'http://localhost/ports/1114dc6b-840a-4c1d-b55a-033cdc597666', 'rel': 'bookmark'}]}, {'uuid': '13dc496c-0d87-412d-a930-6df2af7c94b8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/13dc496c-0d87-412d-a930-6df2af7c94b8', 'rel': 'self'}, {'href': 'http://localhost/ports/13dc496c-0d87-412d-a930-6df2af7c94b8', 'rel': 'bookmark'}]}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:00.048367+00:00', 'updated_at': None} GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5129cf68-fb68-4cb1-bf76-dc785e37c689 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:00.894987+00:00", "updated_at": "2021-12-04T17:54:01.084750+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e04e8205-91bb-4cf1-a4ce-d6beed5a28ce X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:00.894987+00:00", "updated_at": "2021-12-04T17:54:01.156854+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-d62f692f-c937-411a-b3f9-0e47100dd874 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'ac73e22a-92cf-4a00-a6c4-f2b8d1dfed0d', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db74fb4a-57cf-4af1-9ece-e07f2627f639 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.620507+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-21e75333-641c-4cda-9411-b24b9c10d79d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_server_hardware_type ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_server_hardware_type ... ok PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/vendor_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99452659-a391-40f6-b58b-d75c24605d0e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} PATCH: /v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214 [{'path': '/storage_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c37d38ca-2c4f-44c5-a125-8dfbd9ec29a8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "b750682f-5f58-40f7-ad75-06a37222d214", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214", "rel": "self"}, {"href": "http://localhost/nodes/b750682f-5f58-40f7-ad75-06a37222d214", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214/ports", "rel": "self"}, {"href": "http://localhost/nodes/b750682f-5f58-40f7-ad75-06a37222d214/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b750682f-5f58-40f7-ad75-06a37222d214/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214/volume", "rel": "self"}, {"href": "http://localhost/nodes/b750682f-5f58-40f7-ad75-06a37222d214/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214/states", "rel": "self"}, {"href": "http://localhost/nodes/b750682f-5f58-40f7-ad75-06a37222d214/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:55.823130+00:00"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-10fc8aac-96d9-4f82-9a76-679c1571e959 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll ... ok POST: /v1/heartbeat/a40aa7a3-bca2-40fb-af77-20843542f793 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0ac5a18a-62f3-45ac-9602-631817bb466b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node a40aa7a3-bca2-40fb-af77-20843542f793 could not be found.\", \"debuginfo\": null}"} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df56e9c5-7915-49da-a51c-7955da693309 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"} GET: /v1/lookup?addresses=not-a-valid-address,80:00:02:48:fe:80:00:00:00:00:00:00:f4:52:14:03:00:54:06:c2,11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:{'node': {'uuid': '89c89f96-e809-4dd6-9285-9b3eda6d9cdd', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/89c89f96-e809-4dd6-9285-9b3eda6d9cdd', 'rel': 'self'}, {'href': 'http://localhost/nodes/89c89f96-e809-4dd6-9285-9b3eda6d9cdd', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-449081ce-48fd-494d-a81c-1b3f546fe02a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 GET: /v1/volume/connectors?detail=True&limit=3 {} GOT:{'connectors': [{'uuid': '1d967c08-588f-4d04-b1a0-5c1658c5112f', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1d967c08-588f-4d04-b1a0-5c1658c5112f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1d967c08-588f-4d04-b1a0-5c1658c5112f', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:04.498035+00:00', 'updated_at': None}, {'uuid': '6769b395-fea4-44d7-afc3-cf825401b6f1', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6769b395-fea4-44d7-afc3-cf825401b6f1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6769b395-fea4-44d7-afc3-cf825401b6f1', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:04.500103+00:00', 'updated_at': None}, {'uuid': 'ef8c9b3a-ba75-45cb-8872-89b8ee188358', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/ef8c9b3a-ba75-45cb-8872-89b8ee188358', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ef8c9b3a-ba75-45cb-8872-89b8ee188358', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:04.501760+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=ef8c9b3a-ba75-45cb-8872-89b8ee188358'} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bae1d33f-8f0c-49c7-83b2-ec1013a54194 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c77f6aae-d66a-4320-bdb8-2010430ad1c8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e16b63d-cc9c-42d6-87ec-040eb2df66f1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} GET: /v1/volume/targets?detail=True&node=test-node {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:05.041426+00:00', 'updated_at': None}]} GET: /v1/ {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-17cc09d3-c9de-4336-9a96-3e1eab1b635a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}]} GET: /v1.json {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff93e41e-aebb-4048-979e-2a5a7bfec119 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}]} GET: /v1.xml {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "}ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions ... ok ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ... ok ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ... ok ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root ... ok ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches ... ok ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default ... ok ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state ... ok ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format ... ok ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ... ok ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects ... ok ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base ... ok ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ... ok ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ... ok ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout ... ok ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_no_skip ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_no_skip ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step ... ok ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail ... ok ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception ... ok ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg ... ok ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data ... ok ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_extra ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_extra ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_soft_poweroff_retry ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_soft_poweroff_retry ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints ... ok ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleTestCase.test_cimc_handle ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleTestCase.test_cimc_handle ... ok ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device ... ok ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device_fail ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device_fail ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_ok ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host_and_drac_address ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host_and_drac_address ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_root_only ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ... ok GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c0855e69-c965-4ae1-bc54-e921144c56c0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/fc12eac0-8c80-423b-acf2-d8abf0745a0b [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-df8cd2e4-191b-43c2-b6d7-1024425f184d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "fc12eac0-8c80-423b-acf2-d8abf0745a0b", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/fc12eac0-8c80-423b-acf2-d8abf0745a0b", "rel": "self"}, {"href": "http://localhost/ports/fc12eac0-8c80-423b-acf2-d8abf0745a0b", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.721101+00:00", "updated_at": "2021-12-04T17:54:01.802472+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8132e4f-0a61-4734-b5e6-475c21ac2675 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.919069+00:00", "updated_at": "2021-12-04T17:54:01.997530+00:00"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 1234, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4118a27e-1179-447c-866f-695f3bc33544 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': 'zz:zz:zz:zz:zz:zz', 'port_id': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33b0e791-9954-4f90-9446-9879f927801c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-68efc627-0b77-4ab1-b2c9-e3fc9b3a0c3c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-61fa98cf-4aa0-4537-912c-b4660f2e2469 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"} DELETE: /v1/portgroups/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-76f222d8-e288-4a98-a706-0c8732667d9e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} DELETE: /v1/portgroups/pg.1.json GOT:Response: 204 No Content Openstack-Request-Id: req-588730d0-5f00-4cf0-b4bc-9400ce6b26a7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-408f1169-bc7d-4a2b-8868-6b818fbf1e15 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": false, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.867845+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'internal_info': 'info'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7c991240-703e-41f5-bd78-168c9d019c35 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute portgroup. Value: '{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'internal_info': 'info'}'. Value not a valid dict: info\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_ok ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr ... ok ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_mandatory_key ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_mandatory_key ... ok ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name ... ok ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_invalid_uuid_or_name ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_invalid_uuid_or_name ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_deploy ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_deploy ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo ... ok ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_bad_id ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_bad_id ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_storage_interface ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_storage_interface ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte ... ok ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port_extra ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port_extra ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_instance_uuid ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_instance_uuid ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_local ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_local ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_server_hardware_type ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_server_hardware_type ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_spt_enclosure_group_invalid ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_spt_enclosure_group_invalid ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sh ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sh ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_cleaning ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_cleaning ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_raise_exception ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_raise_exception ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_false ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_false ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_on ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_on ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_soft_reboot ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_soft_reboot ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-72a75daf-fb79-49d9-8958-2440c92fd210 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.168107+00:00", "updated_at": null} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.168107+00:00', 'updated_at': None} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1ad137a1-47eb-4615-b3a9-120f3dacac8c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/portgroups?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-41fdde74-f7c8-4f2c-a34a-34e0382c7719 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/portgroups {} GOT:{'portgroups': []} GET: /v1/portgroups?address=aa:bb:cc:dd:ee:ff {} GOT:{'portgroups': []} GET: /v1/portgroups/8b0e3f63-3114-4cde-9785-c1aa1a8ff75b/ports {} GOT:{'ports': [{'uuid': '1314d61a-7cf2-4830-b170-fc1492de817d', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'self'}, {'href': 'http://localhost/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'bookmark'}]}, {'uuid': '8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'rel': 'self'}, {'href': 'http://localhost/ports/8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/8b0e3f63-3114-4cde-9785-c1aa1a8ff75b/ports/detail {} GOT:{'ports': [{'uuid': '1314d61a-7cf2-4830-b170-fc1492de817d', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '8b0e3f63-3114-4cde-9785-c1aa1a8ff75b', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'self'}, {'href': 'http://localhost/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.842222+00:00', 'updated_at': None}, {'uuid': '8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '8b0e3f63-3114-4cde-9785-c1aa1a8ff75b', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'rel': 'self'}, {'href': 'http://localhost/ports/8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.846239+00:00', 'updated_at': None}]} GET: /v1/portgroups/8b0e3f63-3114-4cde-9785-c1aa1a8ff75b/ports?limit=1 {} GOT:{'ports': [{'uuid': '1314d61a-7cf2-4830-b170-fc1492de817d', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'self'}, {'href': 'http://localhost/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=1&marker=1314d61a-7cf2-4830-b170-fc1492de817d'} GET: /v1/portgroups/8b0e3f63-3114-4cde-9785-c1aa1a8ff75b/ports/2c92257f-cea4-4b60-a13f-9ac905dd0cb5 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/portgroups/8b0e3f63-3114-4cde-9785-c1aa1a8ff75b/ports/4a88f252-634c-4919-a3a1-86e25dbb8a2a {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-010b7c90-ddad-4f2c-8b97-9975667fbc33 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/pg.1.json [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-08ea5825-3a18-41fb-9de6-b99978e34de5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.176059+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'value': '802.3ad', 'op': 'add'}, {'path': '/properties/bond_param', 'value': '100', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-350e0bba-0fe8-4b93-9f70-bf8694c78712 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "802.3ad", "properties": {"bond_param": "100"}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.478510+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_same ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_same ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found ... ok ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inject_nmi ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inject_nmi ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive_fails ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive_fails ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_no_manage_agent_boot ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_no_manage_agent_boot ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_with_automated_clean_disabled ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_with_automated_clean_disabled ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-cee80e5f-7ca9-46ca-989c-4ae456045c53 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.663058+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'internal_info': {'a': 'b'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9fd26840-48ff-44e9-80ea-107d0e934335 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute internal_info. Value: '{'a': 'b'}'. Cannot set read only field.\", \"debuginfo\": null}"} GET: /v1/portgroups?detail=False&fields=internal_info {} GOT:{'portgroups': [{'internal_info': {'bar': 'buzz'}, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4.json {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:05.059084+00:00', 'updated_at': None} GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-18a78ce0-5170-4e3d-9c8d-b163f8e53e7e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-29014360-fe4d-4aac-9cb4-845792c24cbd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.372081+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2629fed4-bbb8-4700-8c14-1118167503d8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/pg.1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9c21e4c1-0ff9-4c3b-922f-32aebbb4047c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.621617+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'op': 'add', 'value': '802.3ad'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-524b7fd4-aaa7-4000-b70a-c9c6e6312848 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/properties/abc', 'op': 'add', 'value': 123}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-30ad2baa-b34f-437d-8d7d-396aa6ce502c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2c389d3-7109-414e-9525-4b3182bfe505 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.852493+00:00", "updated_at": "2021-12-04T17:54:05.923284+00:00"}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_deprecated ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_deprecated ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id_deprecated ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id_deprecated ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses ... ok ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low ... ok ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_advanced_net_fields ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_advanced_net_fields ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_internal_info ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_internal_info ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_no_pin ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_no_pin ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_rescue_interface ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_rescue_interface ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:55.991966+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'reservation': 'fake'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ff2640ea-03b7-4db9-8b0b-c343b939e69b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute reservation. Value: 'fake'. Cannot set read only field.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a67abf6d-a35b-40ba-9060-9acb2dcf8afe X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"cat": "meow"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b9e93c85-8dc8-4110-8b6c-e07777684e00 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e20da2d2-5979-4a01-bb37-42ac3d9c3e58 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-869a6707-aa94-4e76-848b-9fb7e843537c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 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-11bb739e-dba5-454a-a795-65bb9b7cc847 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0dad669a-208a-4764-b5f1-36a706d9da85 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cd59cf1f-398f-4574-8327-3284039d0c76 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} GET: /v1/ports/?limit=3 {} GOT:{'ports': [{'uuid': '3ad885f1-e50d-49f8-bfbf-8f576b7bec1b', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/3ad885f1-e50d-49f8-bfbf-8f576b7bec1b', 'rel': 'self'}, {'href': 'http://localhost/ports/3ad885f1-e50d-49f8-bfbf-8f576b7bec1b', 'rel': 'bookmark'}]}, {'uuid': '8f107d1c-3b15-490e-b6c4-c21535b3dee8', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/8f107d1c-3b15-490e-b6c4-c21535b3dee8', 'rel': 'self'}, {'href': 'http://localhost/ports/8f107d1c-3b15-490e-b6c4-c21535b3dee8', 'rel': 'bookmark'}]}, {'uuid': 'a5fa4abe-b6bd-4e95-a4a1-13a52422afae', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/a5fa4abe-b6bd-4e95-a4a1-13a52422afae', 'rel': 'self'}, {'href': 'http://localhost/ports/a5fa4abe-b6bd-4e95-a4a1-13a52422afae', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=3&marker=a5fa4abe-b6bd-4e95-a4a1-13a52422afae'} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-45c61adb-f565-413a-9c0f-b7f8dde93313 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/ports/detail?node=test-node {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.064967+00:00', 'updated_at': None}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.253576+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.514878+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ec9ff690-f4c9-420f-a9a3-ef35f50dd355 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.965200+00:00", "updated_at": null} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.965200+00:00', 'updated_at': None} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df0280b2-0f6a-4b12-be40-9b5bd250e197 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-71c51c99-d8c0-436c-812b-2703a60716cb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"{'switch_foo'} are invalid keys\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '5679af03-12a4-453b-a870-e243d7476a1a'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-5df0998b-e35c-43ac-9850-31b942d343f7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "5679af03-12a4-453b-a870-e243d7476a1a"}, "internal_info": {"tenant_vif_port_id": "5679af03-12a4-453b-a870-e243d7476a1a"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.675971+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-122d9222-6ace-45ec-8e82-ef9de17a0ca0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.json', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.968673+00:00', 'updated_at': None} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0f7175a9-fc7a-49d9-bb65-2036e1ccf30f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-133b57c7-0d97-46b9-891b-f64cde99563e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.247820+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05c21608-270b-416c-8763-e272fe236979 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.414350+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_replace_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_replace_extra_vif_port_id ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_no_extra ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_no_extra ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path ... ok ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_without_optional_key ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_without_optional_key ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_node_rebuild_with_configdrive ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_node_rebuild_with_configdrive ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid ... ok PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 204 No Content Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 Openstack-Request-Id: req-bf02b437-d4ac-4e12-9ca5-13058e089812 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 204 No Content Openstack-Request-Id: req-b78861ab-878d-4ecd-a215-b19005f44d04 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:{'traits': ['CUSTOM_1', 'CUSTOM_2']} PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4bc5d26b-089f-4bbf-8cc4-86bf28a2eac1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} GET: /v1/ports/detail {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': False, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:00.861114+00:00', 'updated_at': None}]} GET: /v1/ports/detail?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'ports': [], 'next': {}, 'created_at': {}, 'updated_at': {}} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=address,extra {} GOT:{'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:01.790515+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:01.790515+00:00', 'updated_at': None} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c83bf44-428a-47c2-ae19-9bd70fea3d22 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.003700+00:00", "updated_at": null} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-405df746-483b-45f6-9695-93b8bac1b078 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6fbf6b07-c877-427b-9074-879913db4e80 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.365669+00:00", "updated_at": "2021-12-04T17:54:02.447974+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a71ca3f2-07b9-4f2c-9802-f067079ae98b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "pxe_enabled": true, "local_link_connection": {"switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.502618+00:00", "updated_at": "2021-12-04T17:54:02.543715+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0024ce67-02d0-4cee-bbc6-52b6d3a01372 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'switch_info': 'fooswitch'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id ... ok ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr ... ok ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name ... ok ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_optional_key ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_optional_key ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inspect_abort ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inspect_abort ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_resource_class ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9fcc71ce-85e1-4af7-9cab-4205ffc96f11 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.711265+00:00", "updated_at": "2021-12-04T17:54:03.827143+00:00"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52-54-00-cf-2d-31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4fccc528-0e94-4ea3-80da-7d47a23ce5b7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 52-54-00-cf-2d-31.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-f5b2e80a-8e9d-44ba-b46b-67ec7a97688b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.168872+00:00", "updated_at": null} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=1d11851e-5728-4fe9-a920-2f272f2bda82 {} GOT:{'node': {'uuid': '1d11851e-5728-4fe9-a920-2f272f2bda82', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/1d11851e-5728-4fe9-a920-2f272f2bda82', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d11851e-5728-4fe9-a920-2f272f2bda82', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5fd7abac-a213-445e-833e-cd669dc52670 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/volume/connectors?detail=False {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors?fields=uuid,extra {} GOT:{'connectors': [{'uuid': 'f08bebb9-5310-4fd7-bb32-8ee420bc9d0c', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/f08bebb9-5310-4fd7-bb32-8ee420bc9d0c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f08bebb9-5310-4fd7-bb32-8ee420bc9d0c', 'rel': 'bookmark'}]}, {'uuid': '1fde6ace-f436-4337-8147-301dabb8c060', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/1fde6ace-f436-4337-8147-301dabb8c060', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1fde6ace-f436-4337-8147-301dabb8c060', 'rel': 'bookmark'}]}, {'uuid': 'cb766e96-a8aa-40a3-9335-6f8ec72a98ff', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/cb766e96-a8aa-40a3-9335-6f8ec72a98ff', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/cb766e96-a8aa-40a3-9335-6f8ec72a98ff', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=connector_id,extra {} GOT:{'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '4719d574-ac1c-45af-9c95-4c4f526c85fa', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/4719d574-ac1c-45af-9c95-4c4f526c85fa', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4719d574-ac1c-45af-9c95-4c4f526c85fa', 'rel': 'bookmark'}]}, {'uuid': '7b6d0f16-c2b1-4bca-954f-8032ff4a883b', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/7b6d0f16-c2b1-4bca-954f-8032ff4a883b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7b6d0f16-c2b1-4bca-954f-8032ff4a883b', 'rel': 'bookmark'}]}, {'uuid': '268b2e3c-ce89-4650-8fd7-8462de3e8656', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/268b2e3c-ce89-4650-8fd7-8462de3e8656', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/268b2e3c-ce89-4650-8fd7-8462de3e8656', 'rel': 'bookmark'}]}, {'uuid': '99a9925d-7cc8-4e39-9b93-8cbf864b0378', 'type': 'iqn', 'connector_id': 'test-connector_id-3', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/99a9925d-7cc8-4e39-9b93-8cbf864b0378', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/99a9925d-7cc8-4e39-9b93-8cbf864b0378', 'rel': 'bookmark'}]}, {'uuid': '603ebe60-1d7b-4dd5-a9e3-6332d89a19a6', 'type': 'iqn', 'connector_id': 'test-connector_id-4', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/603ebe60-1d7b-4dd5-a9e3-6332d89a19a6', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/603ebe60-1d7b-4dd5-a9e3-6332d89a19a6', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d343ff7-1fd9-413c-8f52-62cb9a781549 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks ... ok ironic.tests.unit.api.test_root.TestRoot.test_get_root ironic.tests.unit.api.test_root.TestRoot.test_get_root ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone ... ok ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict ... ok ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ... ok ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint ... ok ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported ... ok ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported ... ok ironic.tests.unit.common.test_exception.TestIronicException.test___init__ ironic.tests.unit.common.test_exception.TestIronicException.test___init__ ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb ... ok ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg ... ok ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image ... ok ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fails_no_grub_cfg ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fails_no_grub_cfg ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_extra ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_extra ... ok ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_elilo_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_elilo_config ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_without_trailing_slash ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_without_trailing_slash ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta ... ok ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict ... ok ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_failure ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_failure ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ... ok ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails ... ok ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_async ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_async ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_steps_exception ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_steps_exception ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception_old ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception_old ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors ... ok ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage ... ok ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail ... ok ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor ... ok ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state_old ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state_old ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found ... ok POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'foo', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-3fb35299-2f57-4ac2-8e62-876136cf425c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "foo", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.491397+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': 'aa:aa:aa:11:22:33', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'foo', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.491397+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-4e929acb-d7d8-4664-a35f-ba9dd36fe325 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": null, "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.744590+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': None, 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.744590+00:00', 'updated_at': None} GET: /v1/volume/ {} GOT:{'links': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/volume/targets', 'rel': 'bookmark'}]} GET: /v1/volume/ {} GOT:{'links': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/volume/targets', 'rel': 'bookmark'}]} GET: /volume/ {} GOT:{'links': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/volume/targets', 'rel': 'bookmark'}]} GET: /v1/volume/connectors {} GOT:{'connectors': []} GET: /volume/connectors {} GOT:{'connectors': []} GET: /v1/volume/targets {} GOT:{'targets': []} GET: /volume/targets {} GOT:{'targets': []} GET: /v1/volume/connectors?detail=True&node=test-node {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:04.842577+00:00', 'updated_at': None}]} GET: /v1/volume/connectors?node=test-node {} GOT:{'connectors': [{'uuid': '60349f5c-0c59-4c15-b712-6e011c64503c', 'type': 'iqn', 'connector_id': 'test-value-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/60349f5c-0c59-4c15-b712-6e011c64503c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/60349f5c-0c59-4c15-b712-6e011c64503c', 'rel': 'bookmark'}]}, {'uuid': 'ee88669e-f288-4493-8a65-f0c3ca9066d4', 'type': 'iqn', 'connector_id': 'test-value-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/ee88669e-f288-4493-8a65-f0c3ca9066d4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ee88669e-f288-4493-8a65-f0c3ca9066d4', 'rel': 'bookmark'}]}, {'uuid': '03405acc-77cb-45bc-96ce-4e5944b385d3', 'type': 'iqn', 'connector_id': 'test-value-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/03405acc-77cb-45bc-96ce-4e5944b385d3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/03405acc-77cb-45bc-96ce-4e5944b385d3', 'rel': 'bookmark'}]}]} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d9d04d7e-ec03-4317-9295-24fb8ba15f5d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b6b584a5-a789-47f3-b777-8368f1da4540 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestVolumeTargetObject.test_volume_target_init ironic.tests.unit.api.controllers.v1.test_volume_target.TestVolumeTargetObject.test_volume_target_init ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ... ok ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context ... ok ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_code ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_code ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_for_hrefs ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_for_hrefs ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format ... ok ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment_no_physnet ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment_no_physnet ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_out_range_auth_strategy ironic.tests.unit.common.test_neutron.TestNeutronClient.test_out_range_auth_strategy ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_elilo ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_elilo ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_uefi ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_uefi ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir_ipxe ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir_ipxe ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type ... ok ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ... ok ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST ... ok ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... ok ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_success ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_success ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail ... ok ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2 ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2 ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state ... ok ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty ... ok ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties ... ok ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach ... ok ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ... ok ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ... ok POST: /v1/nodes {'name': None, 'uuid': '9251033f-9e25-476b-aa3a-ee1a06057598', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598 Openstack-Request-Id: req-3f9e9e37-c2c4-4d97-b8a3-dc3ee2a6c8e1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "9251033f-9e25-476b-aa3a-ee1a06057598", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598", "rel": "self"}, {"href": "http://localhost/nodes/9251033f-9e25-476b-aa3a-ee1a06057598", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598/ports", "rel": "self"}, {"href": "http://localhost/nodes/9251033f-9e25-476b-aa3a-ee1a06057598/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598 {} GOT:{'uuid': '9251033f-9e25-476b-aa3a-ee1a06057598', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598', 'rel': 'self'}, {'href': 'http://localhost/nodes/9251033f-9e25-476b-aa3a-ee1a06057598', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9251033f-9e25-476b-aa3a-ee1a06057598/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-544501b8-15e8-477c-851d-85b299613578 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.11 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:57.491955+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:57.491955+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {'foo': 123}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-8dfa2cbe-baaf-43bc-87eb-1fd1b8b48149 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"foo": 123}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:57.891590+00:00"}ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down_cleaning ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down_cleaning ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ... ok ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify ... ok ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting ... ok ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_swift ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_swift ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'pxe_enabled': True, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.514878+00:00', 'updated_at': None} GET: /v1/ports {} GOT:{'ports': []} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a35e337-465c-41ef-baca-2d9b3a6918f4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.980829+00:00", "updated_at": "2021-12-04T17:54:00.079468+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1b360913-5e25-48fe-96d5-6bf1908b9fbe X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/ports/bba11c28-8324-4d6d-90bd-41b88bc1fe88 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79f54572-5a68-468f-820f-d234d0e491a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "bba11c28-8324-4d6d-90bd-41b88bc1fe88", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/bba11c28-8324-4d6d-90bd-41b88bc1fe88", "rel": "self"}, {"href": "http://localhost/ports/bba11c28-8324-4d6d-90bd-41b88bc1fe88", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.073518+00:00", "updated_at": "2021-12-04T17:54:01.231503+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2abfd140-2386-4acf-a112-f8c3d32b79e4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/address' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f8e3c393-2d1b-45ca-a8bb-4e68f7da74c1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-6d169ee4-96a5-4188-b308-e71c8cf66c34 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '20e9ae33-0282-4aa6-bc25-13f38fbf32f4'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-803c9e74-8f54-4a9b-b1fc-5949af9e618e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "20e9ae33-0282-4aa6-bc25-13f38fbf32f4"}, "internal_info": {"tenant_vif_port_id": "20e9ae33-0282-4aa6-bc25-13f38fbf32f4"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.200327+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52-54-00-cf-2d-31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-735185d7-0b74-4e50-9c8b-2521ba278302 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-d8447de9-d199-453f-9ddc-2809eacd42ba X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '47162868-4ca0-48b8-96d6-46dd992e581e', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/47162868-4ca0-48b8-96d6-46dd992e581e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/47162868-4ca0-48b8-96d6-46dd992e581e', 'rel': 'bookmark'}]}, {'uuid': '4870c5d8-e75f-46de-b5e3-074996a13a8a', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/4870c5d8-e75f-46de-b5e3-074996a13a8a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4870c5d8-e75f-46de-b5e3-074996a13a8a', 'rel': 'bookmark'}]}, {'uuid': '6f09aa0b-c397-4dc0-9225-8771499aa87a', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/6f09aa0b-c397-4dc0-9225-8771499aa87a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6f09aa0b-c397-4dc0-9225-8771499aa87a', 'rel': 'bookmark'}]}, {'uuid': '7d13c2b3-8bb0-4742-8ba1-b8667fea2411', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/7d13c2b3-8bb0-4742-8ba1-b8667fea2411', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7d13c2b3-8bb0-4742-8ba1-b8667fea2411', 'rel': 'bookmark'}]}, {'uuid': '49ba6794-855c-443b-a85a-7a69b4a9c07a', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/49ba6794-855c-443b-a85a-7a69b4a9c07a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/49ba6794-855c-443b-a85a-7a69b4a9c07a', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7125e8d6-0c23-4261-a4f6-0a706142eedd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: {'port_id'}\", \"debuginfo\": null}"} DELETE: /v1/portgroups/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 52:54:00:cf:2d:31. "} GET: /v1/portgroups?node=test-node {} GOT:{'portgroups': [{'uuid': 'f7e16bdf-cfbf-4d94-8661-91b743094e2d', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/f7e16bdf-cfbf-4d94-8661-91b743094e2d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f7e16bdf-cfbf-4d94-8661-91b743094e2d', 'rel': 'bookmark'}]}, {'uuid': '41efa9d0-7a76-45cc-9e4c-48c03f69736f', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/41efa9d0-7a76-45cc-9e4c-48c03f69736f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/41efa9d0-7a76-45cc-9e4c-48c03f69736f', 'rel': 'bookmark'}]}, {'uuid': '3f010969-3fa3-4f3c-aa0e-2d12507301d7', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/3f010969-3fa3-4f3c-aa0e-2d12507301d7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/3f010969-3fa3-4f3c-aa0e-2d12507301d7', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.160085+00:00', 'updated_at': None}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.384550+00:00', 'updated_at': None} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1ecda7f2-8374-421d-850a-927cebd7a043 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/pg.1 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ec76e381-d75e-4336-bff5-20a72f4c2ed3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9dfc1fe-1933-4c2e-8fa4-850e4347ece7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.969378+00:00", "updated_at": "2021-12-04T17:54:04.053844+00:00"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e4aa1224-1146-49b1-9a36-88c0dfadc0ec X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"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-f01933e1-65b8-40e9-98bc-584d6e73b0ac X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-c69fba57-c066-4716-bc60-df77a433e437 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.363494+00:00", "updated_at": null} GET: /v1/volume/connectors {}ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_true ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_true ... ok POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-cd7dc1e7-ffa3-43f1-8b98-fb564eb9a989 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.999723+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '8c9821fd-1b4f-41ed-9447-e56868fc8261', 'name': 'c40370c7-3f0a-4e1a-91e7-47929aed4684', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-5f8eddcf-e6da-4ec0-9640-17b41054ba63 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-1b25f79f-4da5-495a-b5f3-6f8c30853f7e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:06.100751+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': 'aa:bb:cc:dd:ee:ff', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.100751+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-1026ef27-0394-4ff0-88aa-62e5ed63e1cd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:06.269508+00:00", "updated_at": null} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:{'node': {'uuid': '877c2f94-399a-4e7e-87de-e1bb96615e41', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/877c2f94-399a-4e7e-87de-e1bb96615e41', 'rel': 'self'}, {'href': 'http://localhost/nodes/877c2f94-399a-4e7e-87de-e1bb96615e41', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}]} DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-31d72636-8369-47bb-a656-e4e2ace07ac8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks ... ok ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_on_missing_default_boot_option ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_on_missing_default_boot_option ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure ... ok ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client ... ok ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface ... ok ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__umount_without_raise ironic.tests.unit.common.test_images.FsImageTestCase.test__umount_without_raise ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance ... ok ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_with_trailing_slash ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_with_trailing_slash ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_deploy_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_deploy_ramdisk ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type ... ok ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha1 ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha1 ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in ... ok ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on ... ok ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean ... ok ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_old ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_old ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ... ok ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root ... ok ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... ok PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f5555818-68b2-4486-9e0f-362914814e1a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.571872+00:00", "updated_at": "2021-12-04T17:54:04.650062+00:00"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-ffa93b7f-50d4-4772-9b4a-db55a36962e2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.804066+00:00", "updated_at": null} POST: /v1/heartbeat/test.1 {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-9c819885-3e38-452a-b79a-494bf7404762 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-4df16c9e-c15f-43f7-8950-bdea19e7029a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 GET: /v1/lookup {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eaa6a434-a928-4ba1-bfe2-6a49e0cdf266 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eab3b9f6-851d-4496-a24d-6727c7cf62a7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-893adecd-9d6f-497d-af31-b1c29dbb6159 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/volume/targets?node=test-node {} GOT:{'targets': [{'uuid': 'f1ccc12e-eedf-4763-b747-59fb5b1fe9b7', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/f1ccc12e-eedf-4763-b747-59fb5b1fe9b7', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f1ccc12e-eedf-4763-b747-59fb5b1fe9b7', 'rel': 'bookmark'}]}, {'uuid': '03b6ffc6-e25c-4f70-8481-5769baf76c19', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/03b6ffc6-e25c-4f70-8481-5769baf76c19', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/03b6ffc6-e25c-4f70-8481-5769baf76c19', 'rel': 'bookmark'}]}, {'uuid': 'a9f6a394-fc68-4f33-9cf7-b19dc8560837', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/a9f6a394-fc68-4f33-9cf7-b19dc8560837', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a9f6a394-fc68-4f33-9cf7-b19dc8560837', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.010661+00:00', 'updated_at': None} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a07c5dcd-d9a7-426c-a77b-21a2fb3b3038 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d68bb34b-278c-415e-a6d9-c11b5950bed5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:06.103102+00:00", "updated_at": null} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': 123}ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format ... ok ironic.tests.unit.api.test_acl.TestACL.test_non_authenticated ironic.tests.unit.api.test_acl.TestACL.test_non_authenticated ... ok ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ... ok ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root ... ok ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing ... ok ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable ... ok ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth ... ok ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace ... ok ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_ipxe_timeout ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_ipxe_timeout ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_efibootimg ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_efibootimg ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion ... ok ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail ... ok ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info ... ok ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet ... ok GET: /v1/portgroups/b325f79d-5d18-4744-8dff-2cfff0ee1d78/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/portgroups?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-658aea19-8bc9-4607-ab91-521018460f7a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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-87680d86-9618-4459-b2a5-3e6b6f21f0ac X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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-087206ad-bcf5-4657-87e7-22a665343bb3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e5f33921-f008-4037-a230-b40970091d3c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8965c2ec-9932-4a53-8192-7cb1ad502b05 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.907696+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb3117d2-722a-4f19-b9eb-4cb2df9cc6ed X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.158690+00:00", "updated_at": "2021-12-04T17:54:03.164329+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-52cf5987-ffbd-41e9-84bb-e3ebfb6cb5d7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.158690+00:00", "updated_at": "2021-12-04T17:54:03.164329+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c817f497-5f41-459a-adc0-7d6139266985 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.484949+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-f3fbac0b-2c76-468c-81f4-3a81c8949a0b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.824376+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'aa:bb_cc', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1bd81541-642d-4899-97f7-294b7bf008f3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure ... ok ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ... ok ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled ... ok ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task ... ok ironic.tests.unit.common.test_fsm.FSMTest.test_process_event ironic.tests.unit.common.test_fsm.FSMTest.test_process_event ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_false ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_false ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_true ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_true ... ok ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_no_refresh ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_no_refresh ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_umount_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_umount_fails ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image ... ok ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session ... ok ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_localboot ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_localboot ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok ... ok ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_deprecated_opts ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_deprecated_opts ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id ... ok ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ... ok ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed ... ok ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception ... ok ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... ok ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_true ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_true ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete ... ok ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities ... ok ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf ... ok ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__deprecated_opts ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__deprecated_opts ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info ... ok ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails ... ok ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full ... ok ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists ... ok ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent ... ok ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port ... ok ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup ... ok ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed ... ok ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding ... ok ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get ... ok ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks ... ok ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id ... ok ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_ipa_debug ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_ipa_debug ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create ... ok ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_no_steps ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_no_steps ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception ... ok ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done ... ok ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test__notify_conductor_resume_operation ironic.tests.unit.conductor.test_utils.MiscTestCase.test__notify_conductor_resume_operation ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_unset_deploy_step ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_unset_deploy_step ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ... ok ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp ... ok ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail ... ok ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_for_node_not_in_use_by_ironic ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_for_node_not_in_use_by_ironic ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {'foo': 123}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:57.891590+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-fae26da8-907e-40ee-b4c3-7c602d99e611 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "storage_interface": "cinder", "vendor_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'storage_interface': 'cinder', 'vendor_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d5813f40-0a91-4625-b2de-202a3966af4e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.storage' entrypoint: foo. Valid interfaces are ['fake', 'noop'].\", \"debuginfo\": null}"} POST: /v1/nodes/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-25d77b76-7e47-42f2-8179-8b40b1107975 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"adopt\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_without_is_whole_disk_image ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_without_is_whole_disk_image ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'bad-driver', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-25fbafb2-27c5-4c95-affb-39a93ca5fc3a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f901544-a258-4862-bbf3-3d8f52eb5097 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2021-12-04T17:53:54.552673+00:00"} POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-38fa5bd6-6e4d-4d20-9e3c-2bee7f2ecfec X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': None, 'uuid': 'ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b Openstack-Request-Id: req-72666b71-41e9-42db-98e4-d5facacb8a5b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b", "rel": "self"}, {"href": "http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/ports", "rel": "self"}, {"href": "http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/volume", "rel": "self"}, {"href": "http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/states", "rel": "self"}, {"href": "http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b {} GOT:{'uuid': 'ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '63edd8dd-1836-49b7-abce-a5300dda3731', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'console_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731 Openstack-Request-Id: req-e80f864c-2f93-41bf-9a47-8360694a034a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "63edd8dd-1836-49b7-abce-a5300dda3731", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731", "rel": "self"}, {"href": "http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/ports", "rel": "self"}, {"href": "http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/volume", "rel": "self"}, {"href": "http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/states", "rel": "self"}, {"href": "http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731 {} GOT:{'uuid': '63edd8dd-1836-49b7-abce-a5300dda3731', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731', 'rel': 'self'}, {'href': 'http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '7802d230-278c-4ad5-a7b5-bfd9808d1aa9', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9 Openstack-Request-Id: req-416f2d4c-4d05-431e-87ec-ec008e91345d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "7802d230-278c-4ad5-a7b5-bfd9808d1aa9", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9", "rel": "self"}, {"href": "http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/ports", "rel": "self"}, {"href": "http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/volume", "rel": "self"}, {"href": "http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/states", "rel": "self"}, {"href": "http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9 {} GOT:{'uuid': '7802d230-278c-4ad5-a7b5-bfd9808d1aa9', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9', 'rel': 'self'}, {'href': 'http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '9771a0e9-9f92-4868-9026-c1aaf225a41c', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c Openstack-Request-Id: req-3d89ef3d-b393-4dc1-955c-44105d451fae X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "9771a0e9-9f92-4868-9026-c1aaf225a41c", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c", "rel": "self"}, {"href": "http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/ports", "rel": "self"}, {"href": "http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/volume", "rel": "self"}, {"href": "http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/states", "rel": "self"}, {"href": "http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c {} GOT:{'uuid': '9771a0e9-9f92-4868-9026-c1aaf225a41c', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c', 'rel': 'self'}, {'href': 'http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': 'ecfd0e34-5cc7-4e87-9d6d-46fc203edee5', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5 Openstack-Request-Id: req-808836eb-916e-40b8-8285-db8a5e01fd93 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ecfd0e34-5cc7-4e87-9d6d-46fc203edee5", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5", "rel": "self"}, {"href": "http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/ports", "rel": "self"}, {"href": "http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/volume", "rel": "self"}, {"href": "http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/states", "rel": "self"}, {"href": "http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5 {} GOT:{'uuid': 'ecfd0e34-5cc7-4e87-9d6d-46fc203edee5', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '793dfcda-92c5-4e6e-b3cc-051b09b89caa', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa Openstack-Request-Id: req-3e7f43c6-7b33-4c46-97ac-3d6416a3398d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "793dfcda-92c5-4e6e-b3cc-051b09b89caa", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa", "rel": "self"}, {"href": "http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/ports", "rel": "self"}, {"href": "http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/volume", "rel": "self"}, {"href": "http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/states", "rel": "self"}, {"href": "http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa {} GOT:{'uuid': '793dfcda-92c5-4e6e-b3cc-051b09b89caa', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa', 'rel': 'self'}, {'href': 'http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': 'ca4ae257-a485-4acb-8cfb-09d3b0be891a', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a Openstack-Request-Id: req-c656d200-2a11-4e10-b4ef-2f353747cdbf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ca4ae257-a485-4acb-8cfb-09d3b0be891a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a", "rel": "self"}, {"href": "http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/states", "rel": "self"}, {"href": "http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a {} GOT:{'uuid': 'ca4ae257-a485-4acb-8cfb-09d3b0be891a', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '99ad8001-d54d-47bd-91dd-eba57b030a87', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87 Openstack-Request-Id: req-0a4b1468-9e4d-40fc-82be-9e975185a1e7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "99ad8001-d54d-47bd-91dd-eba57b030a87", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87", "rel": "self"}, {"href": "http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/ports", "rel": "self"}, {"href": "http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/volume", "rel": "self"}, {"href": "http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/states", "rel": "self"}, {"href": "http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87 {} GOT:{'uuid': '99ad8001-d54d-47bd-91dd-eba57b030a87', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87', 'rel': 'self'}, {'href': 'http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '77cabf10-b872-4cf6-a8cd-f7f4452b8014', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014 Openstack-Request-Id: req-09f4aa65-ffb4-4cf7-a092-4d2a5447b5e6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "77cabf10-b872-4cf6-a8cd-f7f4452b8014", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014", "rel": "self"}, {"href": "http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/ports", "rel": "self"}, {"href": "http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/volume", "rel": "self"}, {"href": "http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/states", "rel": "self"}, {"href": "http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014 {} GOT:{'uuid': '77cabf10-b872-4cf6-a8cd-f7f4452b8014', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014', 'rel': 'self'}, {'href': 'http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '8c20f9ec-c76e-4be7-8be7-3f15306f59b8', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'rescue_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8 Openstack-Request-Id: req-5a4147e9-bb6c-468d-9602-485373a36470 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "8c20f9ec-c76e-4be7-8be7-3f15306f59b8", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8", "rel": "self"}, {"href": "http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/ports", "rel": "self"}, {"href": "http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/volume", "rel": "self"}, {"href": "http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/states", "rel": "self"}, {"href": "http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8 {} GOT:{'uuid': '8c20f9ec-c76e-4be7-8be7-3f15306f59b8', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': '8e139916-f24d-4ee4-8d4e-356e73ed4a8c', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'noop', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c Openstack-Request-Id: req-063ee30c-00e7-4515-be61-f2e77af2f72a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "8e139916-f24d-4ee4-8d4e-356e73ed4a8c", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c", "rel": "self"}, {"href": "http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/ports", "rel": "self"}, {"href": "http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/volume", "rel": "self"}, {"href": "http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/states", "rel": "self"}, {"href": "http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c {} GOT:{'uuid': '8e139916-f24d-4ee4-8d4e-356e73ed4a8c', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'name': None, 'uuid': 'bf531193-e4af-4a65-9e12-0043743e5e8b', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'bios_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b Openstack-Request-Id: req-86e0aca3-f6dc-443e-8acd-ee3dd9a1201c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "bf531193-e4af-4a65-9e12-0043743e5e8b", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b", "rel": "self"}, {"href": "http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/ports", "rel": "self"}, {"href": "http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/volume", "rel": "self"}, {"href": "http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/states", "rel": "self"}, {"href": "http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b {}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false ... ok 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-d50de2f4-fcfd-4b28-ab61-90ea2d282a1e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-7994ecb1-e917-440a-9b1b-59a5f6fbb963 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-13d42417-a183-4683-aac5-e5bb5ee473d9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'provide'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-b5b8481a-ca20-4b82-be04-0fc8c494a156 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ecee1888-90b3-4cba-b160-07febdfbb082 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-755fcb8f-37dc-4f41-9c56-5b4cae505163 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=True {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-f0d105dc-da84-47e4-b44b-96a1f84b969d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/node-39/states/console {'enabled': 'true'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states/console Openstack-Request-Id: req-dcb39792-2c91-4a91-add0-f3da9973bb07 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7943ed35-f5da-4b95-94c0-788f4dbc1815 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports {} GOT:{'ports': [{'uuid': '3b5dddde-5eec-43ea-8110-90c54bd78d67', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/3b5dddde-5eec-43ea-8110-90c54bd78d67', 'rel': 'self'}, {'href': 'http://localhost/ports/3b5dddde-5eec-43ea-8110-90c54bd78d67', 'rel': 'bookmark'}]}, {'uuid': '5a1e377b-8551-42b8-be3b-8edebbd7964b', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/5a1e377b-8551-42b8-be3b-8edebbd7964b', 'rel': 'self'}, {'href': 'http://localhost/ports/5a1e377b-8551-42b8-be3b-8edebbd7964b', 'rel': 'bookmark'}]}, {'uuid': '153ef2d1-c021-4c75-9570-2ff4843fb186', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/153ef2d1-c021-4c75-9570-2ff4843fb186', 'rel': 'self'}, {'href': 'http://localhost/ports/153ef2d1-c021-4c75-9570-2ff4843fb186', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=3&marker=153ef2d1-c021-4c75-9570-2ff4843fb186'} GET: /v1/ports {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/ports?detail=False {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-522400e4-ae93-4322-bac0-dfcb6fb183cb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-041d8ec2-5d77-4859-ba34-854f512875ea X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142 {} GOT:{'uuid': 'cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'self'}, {'href': 'http://localhost/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.231889+00:00', 'updated_at': None} GET: /v1/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142 {} GOT:{'uuid': 'cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'self'}, {'href': 'http://localhost/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.231889+00:00', 'updated_at': None} GET: /ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142 {} GOT:{'uuid': 'cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'self'}, {'href': 'http://localhost/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.231889+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir ... ok GET: /v1/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28 {} GOT:{'uuid': '5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'self'}, {'href': 'http://foo/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:08.634143+00:00', 'updated_at': None} GET: /v1/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28 {} GOT:{'uuid': '5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'self'}, {'href': 'http://foo/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:08.634143+00:00', 'updated_at': None} GET: /ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28 {} GOT:{'uuid': '5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'self'}, {'href': 'http://foo/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:08.634143+00:00', 'updated_at': None} GET: /v1/ports?sort_key=uuid {} GOT:{'ports': [{'uuid': '1ccd0c3d-bc8b-417b-81f5-683e0740e116', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1ccd0c3d-bc8b-417b-81f5-683e0740e116', 'rel': 'self'}, {'href': 'http://localhost/ports/1ccd0c3d-bc8b-417b-81f5-683e0740e116', 'rel': 'bookmark'}]}, {'uuid': '38a65a47-c6c2-4139-8920-6edbf5dab0f8', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/38a65a47-c6c2-4139-8920-6edbf5dab0f8', 'rel': 'self'}, {'href': 'http://localhost/ports/38a65a47-c6c2-4139-8920-6edbf5dab0f8', 'rel': 'bookmark'}]}, {'uuid': '6734236d-bcef-42db-9e5a-b28463107ac6', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/6734236d-bcef-42db-9e5a-b28463107ac6', 'rel': 'self'}, {'href': 'http://localhost/ports/6734236d-bcef-42db-9e5a-b28463107ac6', 'rel': 'bookmark'}]}]} GET: /v1/ports?sort_key=pxe_enabled {} GOT:{'ports': [{'uuid': '2ca7944b-a92d-4826-b549-c05702e6aa9a', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/2ca7944b-a92d-4826-b549-c05702e6aa9a', 'rel': 'self'}, {'href': 'http://localhost/ports/2ca7944b-a92d-4826-b549-c05702e6aa9a', 'rel': 'bookmark'}]}, {'uuid': 'e9f17110-d42b-4353-b8ec-da510dd9b74e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/e9f17110-d42b-4353-b8ec-da510dd9b74e', 'rel': 'self'}, {'href': 'http://localhost/ports/e9f17110-d42b-4353-b8ec-da510dd9b74e', 'rel': 'bookmark'}]}]} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'eecbf5f9-57f8-4481-9be5-ea78c27fb191', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '1c26aa5a-1872-4f46-8cf9-bd513310d8f7', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ee73e77-80e5-4475-9936-e61d26d53642 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "1c26aa5a-1872-4f46-8cf9-bd513310d8f7", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:08.864077+00:00", "updated_at": "2021-12-04T17:54:08.912979+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa89cc74-abeb-4304-a846-8ecbd3161968 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:08.953237+00:00", "updated_at": "2021-12-04T17:54:08.988340+00:00"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '6cdb5b3d-b8c3-4953-8239-ac00e984743b'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-677c2df3-0410-4151-8d5f-d39311218e02 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "6cdb5b3d-b8c3-4953-8239-ac00e984743b"}, "internal_info": {"tenant_vif_port_id": "6cdb5b3d-b8c3-4953-8239-ac00e984743b"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:09.060956+00:00", "updated_at": null} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?detail=False {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,extra {} GOT:{'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-262bdc7e-86f6-4542-b5df-039ec47e9e4c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:09.243711+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_invalid_values ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_invalid_values ... ok ironic.tests.unit.api.controllers.v1.test_types.TestListType.test_list_type ironic.tests.unit.api.controllers.v1.test_types.TestListType.test_list_type ... ok ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type ... ok ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid ... ok ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_false ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_false ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields ... ok GOT:{'uuid': 'bf531193-e4af-4a65-9e12-0043743e5e8b', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b', 'rel': 'self'}, {'href': 'http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes/node-109/vendor_passthru/test {'foo': 'bar'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-266dc333-ea57-415f-827f-7326949aaeb7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 null PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-0ac6e0ff-88bc-4e5b-a0f1-41e750500d85 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power off'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-52596ad5-8095-44a0-9028-3d2f06a6f93b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-abb1eea9-2ce2-45b4-b43c-c672da4f2548 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"clean wait\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6d3138ae-69ac-4064-9ccf-06971e077278 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e8807474-e4bb-4c1e-942f-0590111aa9f9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-11459c43-0831-41ee-8f04-0fedd35726d9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-14ea7235-aa4b-4545-9088-5381501632da X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-88a890d4-a64b-4532-85ab-a1c7a567dd62 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-dda6799c-ff38-4a84-bf4c-41ebec997f52 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-89a2294e-8b19-42df-afa6-03a63f6cffab X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-24aa10e6-cc1b-4d62-92a3-a198b239b5d8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification ... ok ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_deprecated ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_deprecated ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on ... ok GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:09.243711+00:00', 'updated_at': None} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12a0f566-d670-4929-b39c-d593f9d4c5be X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:24.064936+00:00", "updated_at": null} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d457d7f-376c-4996-83c9-8b4e6aba1290 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82e2cc2f-4174-4960-be81-61ce2c583591 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:25.621155+00:00", "updated_at": "2021-12-04T17:54:25.643488+00:00"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24dc4a30-53a9-4a93-be0e-07e37a4d8caa X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:25.621155+00:00", "updated_at": "2021-12-04T17:54:25.643488+00:00"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2bfe6a11-4238-42d3-a4a0-929485edda85 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:26.496439+00:00", "updated_at": null} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-733d72a6-aa92-4754-97d3-460a061ae4ac X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-456", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:27.413660+00:00", "updated_at": null} POST: /v1/volume/connectors {'uuid': 'a57d82ae-8b19-45f0-a43f-ff94989daf37', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-64e5540f-1f3a-4701-959a-65afdcdcb0ae X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"} GET: /v1/volume/targets?detail=False {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets?fields=uuid,extra {} GOT:{'targets': [{'uuid': 'b492473f-85f6-4930-aa88-b6a0b79a2061', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/b492473f-85f6-4930-aa88-b6a0b79a2061', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b492473f-85f6-4930-aa88-b6a0b79a2061', 'rel': 'bookmark'}]}, {'uuid': 'bbf81647-11b8-45b9-8a43-403980f708b9', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/bbf81647-11b8-45b9-8a43-403980f708b9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/bbf81647-11b8-45b9-8a43-403980f708b9', 'rel': 'bookmark'}]}, {'uuid': 'e838bb57-2113-418d-922d-e0c7500586c0', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/e838bb57-2113-418d-922d-e0c7500586c0', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e838bb57-2113-418d-922d-e0c7500586c0', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': '62a19052-a835-470a-9d11-f64013efd949', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/62a19052-a835-470a-9d11-f64013efd949', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/62a19052-a835-470a-9d11-f64013efd949', 'rel': 'bookmark'}]}, {'uuid': '6246c139-c484-4597-a974-d98653b0b6d6', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/6246c139-c484-4597-a974-d98653b0b6d6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6246c139-c484-4597-a974-d98653b0b6d6', 'rel': 'bookmark'}]}, {'uuid': '13c8a3ec-3c39-4fad-bc3a-90ec19c01503', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/13c8a3ec-3c39-4fad-bc3a-90ec19c01503', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/13c8a3ec-3c39-4fad-bc3a-90ec19c01503', 'rel': 'bookmark'}]}, {'uuid': 'f44c49ab-1d4e-46a7-b58b-ae264a5fcd72', 'volume_type': 'iscsi', 'boot_index': 3, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/f44c49ab-1d4e-46a7-b58b-ae264a5fcd72', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f44c49ab-1d4e-46a7-b58b-ae264a5fcd72', 'rel': 'bookmark'}]}, {'uuid': '4157be40-4406-48be-8583-a98d5b7e3dbf', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4157be40-4406-48be-8583-a98d5b7e3dbf', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4157be40-4406-48be-8583-a98d5b7e3dbf', 'rel': 'bookmark'}]}]}ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c19b8e80-2946-42cd-858f-533b9c924f54 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} DELETE: /v1/nodes/node-39/traits GOT:Response: 204 No Content Openstack-Request-Id: req-c1bcba7b-1750-4d71-81da-5365f38133d6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 DELETE: /v1/ports/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bfd0b6e9-0cc3-412f-84b0-12a609591f82 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute port_uuid. Value: '52:54:00:cf:2d:31'. unable to convert to uuid. Error: Expected a UUID but received 52:54:00:cf:2d:31.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:23.599377+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:23.599377+00:00', 'updated_at': None} GET: /v1/ports/detail {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:24.522031+00:00', 'updated_at': None}]} GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} GOT:{'ports': [{'uuid': '32a45472-1aaa-4ff7-8275-3a4dd1d28376', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/32a45472-1aaa-4ff7-8275-3a4dd1d28376', 'rel': 'self'}, {'href': 'http://localhost/ports/32a45472-1aaa-4ff7-8275-3a4dd1d28376', 'rel': 'bookmark'}]}]} PATCH: /v1/ports/10510fd5-9079-45da-833c-f9e5d6d63352 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b12325e5-3b78-4722-9ec1-71b48fccc2ab X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "10510fd5-9079-45da-833c-f9e5d6d63352", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/10510fd5-9079-45da-833c-f9e5d6d63352", "rel": "self"}, {"href": "http://localhost/ports/10510fd5-9079-45da-833c-f9e5d6d63352", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:26.143413+00:00", "updated_at": "2021-12-04T17:54:26.498569+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-040d29c4-494e-447c-b0e7-6a254ae09c1f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-7566024e-d42c-475e-a533-304b737c129b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1939f571-0536-456a-a758-15b7dd426e7e', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4a1aa5ae-95e3-400f-93f9-8a4c768a44aa X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1939f571-0536-456a-a758-15b7dd426e7e could not be found.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3a0fcb05-5b6c-4e9e-bf04-dfd97d75a3d3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/portgroups/?limit=3 {} GOT:{'portgroups': [{'uuid': 'd7d7eeed-cf73-490a-89ae-9eeeac76ab6e', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/d7d7eeed-cf73-490a-89ae-9eeeac76ab6e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d7d7eeed-cf73-490a-89ae-9eeeac76ab6e', 'rel': 'bookmark'}]}, {'uuid': 'c64ebb4d-57cc-4a46-825d-b8af4d064d68', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/c64ebb4d-57cc-4a46-825d-b8af4d064d68', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c64ebb4d-57cc-4a46-825d-b8af4d064d68', 'rel': 'bookmark'}]}, {'uuid': '5f0ef356-7d24-4dc7-af5b-2bc637b9a8c9', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/5f0ef356-7d24-4dc7-af5b-2bc637b9a8c9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5f0ef356-7d24-4dc7-af5b-2bc637b9a8c9', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=3&marker=5f0ef356-7d24-4dc7-af5b-2bc637b9a8c9'}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ... ok ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi ... ok ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields ... ok ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_type ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_type ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail ... ok ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot ... ok ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot ... ok ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop ... ok ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps ... ok ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied ... ok ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled ... ok ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_missing_mandatory_key ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_missing_mandatory_key ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_none ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_none ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ... ok ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test_set_node_deployment_steps ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test_set_node_deployment_steps ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_none ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_none ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_verify_and_update ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_verify_and_update ... ok ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_still_running ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_still_running ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_disabled ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_disabled ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_unknown_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_unknown_verbs ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool ... ok ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date ... ok ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ... ok ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_localboot ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_localboot ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init ironic.tests.unit.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok ... ok ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id ... ok ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake ... ok ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloaderi_with_prep ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloaderi_with_prep ... ok ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_refresh ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_refresh ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure ... ok GET: /v1/portgroups/detail?node=test-node {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:30.437363+00:00', 'updated_at': None}]} GET: /v1/portgroups?fields=uuid,extra {} GOT:{'portgroups': [{'uuid': 'a63fb8e8-b584-4bb8-94ff-8cf164596f73', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/a63fb8e8-b584-4bb8-94ff-8cf164596f73', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a63fb8e8-b584-4bb8-94ff-8cf164596f73', 'rel': 'bookmark'}]}, {'uuid': '5bae6fa1-29ad-4133-a5b6-d3ea108e5ddd', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/5bae6fa1-29ad-4133-a5b6-d3ea108e5ddd', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5bae6fa1-29ad-4133-a5b6-d3ea108e5ddd', 'rel': 'bookmark'}]}, {'uuid': 'f4d4dc6e-c818-4e5e-914e-d6481e5b41a1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/f4d4dc6e-c818-4e5e-914e-d6481e5b41a1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f4d4dc6e-c818-4e5e-914e-d6481e5b41a1', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e2e0f7d-7560-43c5-960b-94e31cfbcf5c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:33.029499+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b7aa0705-8b6a-41e8-8433-0ea1f1395f55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-50e9d624-3204-466a-858c-8001609ade7b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:34.936298+00:00", "updated_at": "2021-12-04T17:54:34.959710+00:00"} GET: /v1/volume/connectors?detail=True {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:40.651553+00:00', 'updated_at': None}]} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:41.812995+00:00', 'updated_at': None} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8e6316bf-b02c-4b72-b1b0-5529793c4d30 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c18f31d9-ef58-4d4e-bd1f-11a0946966f6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:43.887124+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-faa7e5de-e106-4292-bf7d-bde77d0b30e1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'}ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image ... ok ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old ... ok ironic.tests.unit.api.test_acl.TestACL.test_public_api ironic.tests.unit.api.test_acl.TestACL.test_public_api ... ok ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ... ok ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_partition_image ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ... ok ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_clean_up ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_clean_up ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race ... ok ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit ... ok ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding ... ok ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state ... ok ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state ... ok ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached ... ok ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ... ok ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_service_profile ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_service_profile ... ok ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api ... ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ... ok ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning ... ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_error ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_error ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ... ok ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable ... ok ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist ... ok ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server_fail ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server_fail ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_active ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_active ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url ... ok ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception ... ok ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios ... ok ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_no_refresh ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_no_refresh ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups ... ok ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ... ok ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ... ok ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ... ok ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active ... ok ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ... ok ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url ... ok ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials ... ok ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ... ok ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail ... ok ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false ... ok ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ... ok ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_ok ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console ... ok ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ... ok ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_fail ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_fail ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port ... ok ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_deploy ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_deploy ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_ipxe_config_uefi ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_ipxe_config_uefi ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash ... ok ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_imc_exception ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_imc_exception ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_updates ironic.tests.unit.objects.test_objects.TestObject.test_get_updates ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties ... ok ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_md5_not_binary ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_md5_not_binary ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ... ok ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_release ironic.tests.unit.objects.test_node.TestNodeObject.test_release ... ok ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ... ok ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_pass ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_pass ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low ... ok ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_three ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_three ... ok ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing ... ok ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default ... ok ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_timeout ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_timeout ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid ... ok The database is not compatible with this release of ironic (11.1.0). Please run "ironic-dbsync online_data_migrations" using the previous release. ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ... ok PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-1936f0a4-0df3-4fdb-89cd-fb6951b6cdbd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e72c5e77-b256-4fa8-835b-f937569286fb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 100, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.735022+00:00", "updated_at": null} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-c12b2434-57b1-496d-ab58-e9cd5d32afda X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eafc630d-2e27-4e82-9c77-c36a62e656d7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'lookup': [{'href': 'http://localhost/v1/lookup/', 'rel': 'self'}, {'href': 'http://localhost/lookup/', 'rel': 'bookmark'}], 'heartbeat': [{'href': 'http://localhost/v1/heartbeat/', 'rel': 'self'}, {'href': 'http://localhost/heartbeat/', 'rel': 'bookmark'}]} ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full ... ok /usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh ... ok GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f91f8ab6-5ddc-4acc-aca2-ab03abf53c8d {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_whole_disk_image ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_whole_disk_image ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_rescue ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_disabled ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_disabled ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties ... ok ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_true ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_true ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols ... ok ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects ... ok ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm_fail ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm_fail ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ... ok ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_invalid_state ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_invalid_state ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist ... ok ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate_fail ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate_fail ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout ... ok ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict ... ok ironic.tests.unit.conductor.test_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management ironic.tests.unit.conductor.test_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ... ok ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on ... ok ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces ... ok ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all ... ok ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ... ok ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove ... ok ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_list ironic.tests.unit.objects.test_node.TestNodeObject.test_list ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... ok ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist ... ok ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two ... ok ironic.tests.unit.objects.test_objects.TestObject.test_static_result ironic.tests.unit.objects.test_objects.TestObject.test_static_result ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_fail_logout ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_fail_logout ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait ... ok ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device_fail ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device_fail ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old ... ok ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra ... ok ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_fail ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_fail ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node ... ok ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description ... ok ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... ok GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a1209bfd-9ff7-4b29-a59c-a9b4ed9a091d {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'lookup': [{'href': 'http://localhost/v1/lookup/', 'rel': 'self'}, {'href': 'http://localhost/lookup/', 'rel': 'bookmark'}], 'heartbeat': [{'href': 'http://localhost/v1/heartbeat/', 'rel': 'self'}, {'href': 'http://localhost/heartbeat/', 'rel': 'bookmark'}]} func1() migrated 10 of 15 objects. Running batches of 50 until migrations have been completed. Data migrations have completed. ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ... ok GET: /v1/volume/connectors/detail {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ab8b36e4-481a-41fd-abb8-961d5337e9b4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2dc79dba-e9de-4a29-924b-c3b39ea9fc83 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-1495d028-ab38-4503-ae37-40e029f87be6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.001413+00:00", "updated_at": null} GET: /v1/volume/targets/?limit=3 {} GOT:{'targets': [{'uuid': '4b9ba070-0e9d-4c52-86e2-c25c02286e4b', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4b9ba070-0e9d-4c52-86e2-c25c02286e4b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4b9ba070-0e9d-4c52-86e2-c25c02286e4b', 'rel': 'bookmark'}]}, {'uuid': '7954e854-cfee-457a-ad38-f66e4c4d1c65', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/7954e854-cfee-457a-ad38-f66e4c4d1c65', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/7954e854-cfee-457a-ad38-f66e4c4d1c65', 'rel': 'bookmark'}]}, {'uuid': 'afcf2f30-7f88-46f9-8f26-d0761cb2a665', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/afcf2f30-7f88-46f9-8f26-d0761cb2a665', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/afcf2f30-7f88-46f9-8f26-d0761cb2a665', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=afcf2f30-7f88-46f9-8f26-d0761cb2a665'} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=boot_index,extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-61394eae-7641-4679-a07c-22c54baaf27d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} GET: /v1/volume/targets?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5ed733ea-e464-4b84-8bdd-586bd4fd4ecc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"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-6ed00383-8a2f-4fda-9d4b-ec847085701f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/volume/targets?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-79f239a3-1d85-4a82-8496-96ffe5b8db6b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0938d198-b620-426d-a26f-673964be1942 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.859212+00:00", "updated_at": "2021-12-04T17:54:03.863104+00:00"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c5e5b24-d02a-4074-aba5-9d01460cda61 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.859212+00:00", "updated_at": "2021-12-04T17:54:03.863104+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8b33d898-3699-4091-acb1-75f1b6778c82 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get\", \"debuginfo\": null}"} Running batches of 50 until migrations have been completed. Running batches of 50 until migrations have been completed. Data migrations have completed. ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found ... ok ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods ... ok ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ... ok ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification ... ok ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ... ok ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable ... ok ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_driver_info ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_driver_info ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_active_node ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_active_node ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_cleaning ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_cleaning ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup ... ok ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_validate ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_validate ... ok ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_when_in_use_by_oneview ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_when_in_use_by_oneview ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__del_applied_server_profile_uri_field ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__del_applied_server_profile_uri_field ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps ... ok ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic ... ok ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_invalid_parameter ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_invalid_parameter ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_same_server_profile_applied ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_same_server_profile_applied ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_persistent ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_persistent ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver ... ok ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ... ok ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_trait_type ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_trait_type ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ... ok GET: /portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9 {} GOT:{'uuid': '4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:58.883713+00:00', 'updated_at': None} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8d633a8-f8b1-4cdf-9a64-b38bc2955beb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.403673+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dd12ba56-dddd-4de6-8a7a-e976fe585646 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-e5acfdec-5384-4b0d-aa80-be2e7f2d4d9d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '2bdd8591-905f-4e7d-8aa2-6be9a31ed0fd', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/2bdd8591-905f-4e7d-8aa2-6be9a31ed0fd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2bdd8591-905f-4e7d-8aa2-6be9a31ed0fd', 'rel': 'bookmark'}]}, {'uuid': '63b21143-03d3-4b75-83fd-f0246a778cac', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/63b21143-03d3-4b75-83fd-f0246a778cac', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/63b21143-03d3-4b75-83fd-f0246a778cac', 'rel': 'bookmark'}]}, {'uuid': 'bf7848f2-2463-4ef4-b8bf-01f51f7b3339', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/bf7848f2-2463-4ef4-b8bf-01f51f7b3339', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/bf7848f2-2463-4ef4-b8bf-01f51f7b3339', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=bf7848f2-2463-4ef4-b8bf-01f51f7b3339'} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': 123} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1aaa44f3-76b7-4538-a1f0-2757fe3652ae X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"debuginfo\": null}"} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-0563638d-c599-4d60-b9e3-72a5df704501 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-125d35d9-13e9-42c1-a21d-6ee19a4d2a28 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} GET: /v1/volume/targets/detail {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2e4e730e-9fb3-4271-b199-cb9e24e1102f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute target_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 0, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-868d508d-316f-4d94-b29c-f0f49f94d9fc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_properties ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image ... ok ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_manual_clean_version_mismatch ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_manual_clean_version_mismatch ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_invalid ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_invalid ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_checksum_validation_error ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_checksum_validation_error ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image_validation_fail ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image_validation_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ... ok /usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to delete the pending BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config_fail ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_bios ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_sh ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_sh ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_validate ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_in_use_by_oneview ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_in_use_by_oneview ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_oneview_error ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_oneview_error ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off_with_timeout ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off_with_timeout ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_false ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_false ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_on ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_on ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_clean_steps ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_clean_steps ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_partition ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_partition ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_missing_deploy_kernel ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_missing_deploy_kernel ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_additional_volume_type ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_additional_volume_type ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_false ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_false ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_validate_oneview_resources_compatibility ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_validate_oneview_resources_compatibility ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_clean_failed_when_no_oneview_error ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_clean_failed_when_no_oneview_error ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_supported_power_states ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_supported_power_states ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_invalid_state ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_invalid_state ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate ... ok ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail ... ok ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout ... ok ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ... ok ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_interface ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_interface ... ok ironic.tests.unit.drivers.modules.test_pxe.CleanUpPxeEnvTestCase.test__clean_up_pxe_env ironic.tests.unit.drivers.modules.test_pxe.CleanUpPxeEnvTestCase.test__clean_up_pxe_env ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_custom_port ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_custom_port ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url ... ok ironic.tests.unit.objects.test_objects.TestObject.test_contains ironic.tests.unit.objects.test_objects.TestObject.test_contains ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ... ok ironic.tests.unit.objects.test_objects.TestObject.test_updates ironic.tests.unit.objects.test_objects.TestObject.test_updates ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ... ok ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ... ok ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_config ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_config ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability ... ok "max-count" must be a positive value. ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid ... ok GET: /v1/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09 {} GOT:{'uuid': 'ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:10.810140+00:00', 'updated_at': None} GET: /v1/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09 {} GOT:{'uuid': 'ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:10.810140+00:00', 'updated_at': None} GET: /volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09 {} GOT:{'uuid': 'ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:10.810140+00:00', 'updated_at': None} PATCH: /v1/volume/targets/414d7d9c-3395-47a9-b93d-34f73c52c2ad [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-40fa2130-2f0a-4f7f-8f51-96a9234c9c59 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 414d7d9c-3395-47a9-b93d-34f73c52c2ad could not be found.\", \"debuginfo\": null}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b34b171b-f7e3-49d8-a870-55aa33415876 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"} Malformed option m1key1=value1 ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_cpu_arch ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_cpu_arch ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot_from_lists ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot_from_lists ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_ramdisk ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail ... ok ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_image_doesnt_exists ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_image_doesnt_exists ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ... ok ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_sensors_data ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_sensors_data ... ok ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_error ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_error ... ok ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field ... ok ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ... ok ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_address ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_address ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_list ironic.tests.unit.objects.test_port.TestPortObject.test_list ... ok ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id ... ok Error while running foo: bar. /usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure ... ok POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-24233e11-466a-4bff-8c0e-045fa098cfab X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute volume_type. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-3c2a54b7-1478-4617-bf59-166f452d6610 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:31.284346+00:00", "updated_at": null} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4a23b03a-6128-4501-b37d-92e105fd524f {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} func1() migrated 10 of 10 objects. func1() migrated 0 of 0 objects. func2() migrated 0 of 0 objects. Running batches of 50 until migrations have been completed. Data migrations have completed. ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state ... ok ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict ... ok ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config ... ok ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ... ok ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... ok ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old ... ok ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ... ok ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ... ok ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ... ok ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d8389c7f-308e-42b4-996b-75c70657f46d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} GET: / {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68ae03c5-9d5e-4b2e-8373-7f13d855add0 {"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which aims to provision baremetal machines.", "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.46", "min_version": "1.1"}], "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.46", "min_version": "1.1"}} GET: /v1 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc3b21db-5108-4554-828a-259edbdb7f64 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}]} GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... skipped u"Backend 'postgresql' is unavailable: Could not connect" ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... skipped u"Backend 'postgresql' is unavailable: Could not connect" ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... skipped u"Backend 'postgresql' is unavailable: Could not connect" ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override ... ok ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... skipped u"Backend 'postgresql' is unavailable: Could not connect" ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor ... ok ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor ... ok ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate ... ok ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting ... ok ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id ... ok ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_extra ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_extra ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance_deprecated ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance_deprecated ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_unknown_error ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_unknown_error ... ok ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints ... ok ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_ok ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook ... ok ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_MissingParam ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_MissingParam ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_off ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_off ... ok ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_username ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_username ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_fail ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_fail ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_url ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_url ... ok ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login_exception ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login_exception ... ok ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_address ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_address ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_validate ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ... ok ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on_timeout ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on_timeout ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_drac_boot_device ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_invalid_state ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_invalid_state ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state_fail ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state_fail ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_invalid_job_queue ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_invalid_job_queue ... ok ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to commit the pending BIOS changes for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_not_persistent ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_fail ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_uefi_no_glance_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_uefi_no_glance_image ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_on_webserver ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_on_webserver ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_object_name ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_object_name ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_invalid_parameter ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_invalid_parameter ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false_and_existing_cap ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false_and_existing_cap ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_processing_on_any_url_fails ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_processing_on_any_url_fails ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_non_glance_partition_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_non_glance_partition_image ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_ilo_error ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_ilo_error ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_empty_snmp_security ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_empty_snmp_security ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_uuid ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_uuid ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_extra ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_extra ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist_mac_exception ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist_mac_exception ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_not_supported ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_not_supported ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_extra_vif_port_id ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_extra_vif_port_id ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_malformed_capabilities ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_malformed_capabilities ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_invalid_component_type ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_invalid_component_type ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_clean_step_foreach_url ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_clean_step_foreach_url ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_cleaning ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_cleaning ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_if_invalid_update_mode_provided ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_if_invalid_update_mode_provided ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_available_when_not_in_use_by_oneview ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_available_when_not_in_use_by_oneview ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_properties ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_properties ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_ilo_access ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_ilo_access ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_without_component ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_without_component ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_deploy ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_deploy ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_timeout ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_timeout ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_not_in_use_by_oneview ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_not_in_use_by_oneview ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_does_not_have_sp_applied ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_does_not_have_sp_applied ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic_node_has_server_profile ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic_node_has_server_profile ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_in_use_by_oneview ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_in_use_by_oneview ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_false ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_false ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_not_persistent ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_not_persistent ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_node_in_use_by_oneview ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_node_in_use_by_oneview ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot_no_exc ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot_no_exc ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_from_next_boot_device ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_from_next_boot_device ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state_fail ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_other_commands ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_other_commands ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_port_mac_server_hardware_invalid ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_port_mac_server_hardware_invalid ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_manage_boot_false ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_manage_boot_false ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_spt ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_spt ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_with_automated_clean_disabled ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_with_automated_clean_disabled ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_successfuly_allocated_to_ironic ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_successfuly_allocated_to_ironic ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_active_node ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_active_node ... ok ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_validate ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets ... ok ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_inspect_hardware ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_inspect_hardware ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_not_persistent ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_not_persistent ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook ... ok /usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) Traceback (most recent call last): File "/build/ironic-11.1.0/ironic/drivers/modules/inspector.py", line 148, in _start_inspection _get_client(context).introspect(node_uuid) File "/build/ironic-11.1.0/ironic/drivers/modules/inspector.py", line 61, in _get_client inspector_url = adapter.get_endpoint() File "/usr/lib/python3/dist-packages/keystoneauth1/adapter.py", line 247, in get_endpoint return self.session.get_endpoint(auth or self.auth, **kwargs) File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 1111, in get_endpoint auth = self._auth_required(auth, 'determine endpoint URL') File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 1051, in _auth_required raise exceptions.MissingAuthPlugin(msg_fmt % msg) keystoneauth1.exceptions.auth_plugins.MissingAuthPlugin: An auth plugin is required to determine endpoint URL During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/eventlet/hubs/hub.py", line 457, in fire_timers timer() File "/usr/lib/python3/dist-packages/eventlet/hubs/timer.py", line 58, in __call__ cb(*args, **kw) File "/build/ironic-11.1.0/ironic/drivers/modules/inspector.py", line 157, in _start_inspection purpose=lock_purpose) as task: File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 165, in acquire return TaskManager(context, node_id, shared=shared, purpose=purpose) File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 238, in __init__ self.release_resources() File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ self.force_reraise() File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise six.reraise(self.type_, self.value, self.tb) File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise raise value File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 222, in __init__ self._lock() File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 270, in _lock reserve_node() File "/usr/lib/python3/dist-packages/retrying.py", line 49, in wrapped_f return Retrying(*dargs, **dkw).call(f, *args, **kw) File "/usr/lib/python3/dist-packages/retrying.py", line 206, in call return attempt.get(self._wrap_exception) File "/usr/lib/python3/dist-packages/retrying.py", line 247, in get six.reraise(self.value[0], self.value[1], self.value[2]) File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise raise value File "/usr/lib/python3/dist-packages/retrying.py", line 200, in call attempt = Attempt(fn(*args, **kwargs), attempt_number, False) File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 263, in reserve_node self.node_id) File "/build/ironic-11.1.0/ironic/objects/node.py", line 324, in reserve db_node = cls.dbapi.reserve_node(tag, node_id) File "/usr/lib/python3/dist-packages/oslo_db/api.py", line 154, in wrapper ectxt.value = e.inner_exc File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ self.force_reraise() File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise six.reraise(self.type_, self.value, self.tb) File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise raise value File "/usr/lib/python3/dist-packages/oslo_db/api.py", line 142, in wrapper return f(*args, **kwargs) File "/build/ironic-11.1.0/ironic/db/sqlalchemy/api.py", line 307, in reserve_node raise exception.NodeNotFound(node_id) ironic.common.exception.NodeNotFound: 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_fail ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_fail ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_on_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_on_fails ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_cleaning ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_cleaning ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__create_profile_from_template ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__create_profile_from_template ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_unknown_device ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_unknown_device ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_fails ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_off ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_off ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue_fails ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_with_timeout ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_with_timeout ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_steps ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_steps ... ok ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_uefi ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_uefi ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_uefi ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_uefi ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_reboot ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_reboot ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout ... ok ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_url ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_url ... ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_ok ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_false ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_false ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd ... ok ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_fails ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_fails ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_get_properties ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.CleanUpFullFlowTestCase.test_clean_up_with_master ironic.tests.unit.drivers.modules.test_iscsi_deploy.CleanUpFullFlowTestCase.test_clean_up_with_master ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified ... ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ... ok ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_deallocate_server_hardware_from_ironic ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_deallocate_server_hardware_from_ironic ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid ... ok ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_has_sp_applied ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_has_sp_applied ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok ... ok ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_get_properties ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_fail_to_get_server_profile ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_fail_to_get_server_profile ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_fail ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good ... ok ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_missing_parameter ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_missing_parameter ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_is_force_persistent_boot_device_enabled ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_is_force_persistent_boot_device_enabled ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_local_boot ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_local_boot ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel_ipxe ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel_ipxe ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_no_proxy_without_proxies ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_no_proxy_without_proxies ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_volume_type ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_volume_type ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_empty_response ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_empty_response ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities_overwrite ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities_overwrite ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_down ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_down ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_boot_error ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_boot_error ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay ... ok ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure ... ok ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_agent ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_agent ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ... ok ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail ... ok ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_old_command ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_old_command ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_already_target_state ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_already_target_state ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_netboot_specified ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_netboot_specified ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_exceed_iterations ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_exceed_iterations ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_timeout ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception ... ok ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive ... ok ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_wipe_disk_metadata ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_wipe_disk_metadata ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance ... ok ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file ... ok ironic.tests.unit.objects.test_objects.TestObject.test_object_property ironic.tests.unit.objects.test_objects.TestObject.test_object_property ... ok ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch ... ok ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipa_debug_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipa_debug_rescue ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 ... ok GET: /v1/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5b40f2a2-5052-4ce6-9a58-e18adc4e0e0e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3e909ef2-5a25-42f6-a3e1-05fcbaa39df1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": 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-7740f7f1-1c97-4ab5-bf6d-d474721e400a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/internal_info', 'value': False, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d3ca4579-6fe9-49f8-abf5-4ff480a0e565 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/internal_info' is an internal attribute and can not be updated\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-f43d91f1-d4ef-4bf6-86ee-b7aab54b4e44 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "802.3ad", "properties": {"bond_prop": 123}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.808086+00:00", "updated_at": null} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=af3dccf7-a6f8-4ae0-a839-810ef44767e5 {} GOT:{'node': {'uuid': 'af3dccf7-a6f8-4ae0-a839-810ef44767e5', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/af3dccf7-a6f8-4ae0-a839-810ef44767e5', 'rel': 'self'}, {'href': 'http://localhost/nodes/af3dccf7-a6f8-4ae0-a839-810ef44767e5', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ece78597-90d0-4c9b-8c93-cfd919452536 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8a38d19-fead-496e-bed7-c0e2c49d585f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-123", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.938209+00:00", "updated_at": null} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4d3045f7-8313-4298-874e-5e06af5ec2f5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/value', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8e2643ee-f4c6-4014-8ae6-311e8594d851 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/value', 'op': 'remove'}]'. Reason: can't remove non-existent object 'value'\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c1c67aba-6839-4554-9c16-b08a36f0de6d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/b36db9dd-8abd-41f6-9144-69d46079a017 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5ebd3237-a8a5-47e7-9d34-b04209008e2b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector b36db9dd-8abd-41f6-9144-69d46079a017 could not be found.\", \"debuginfo\": null}"} GET: /v1/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} func1() migrated 10 of 10 objects. func2() migrated 0 of 0 objects. ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool ... ok ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_with_inspector_interface_enabled ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_with_inspector_interface_enabled ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent ... ok ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_direct ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_direct ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_wdi ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_wdi ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_tftp_images_master_path ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_tftp_images_master_path ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail ... ok ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_iscsi ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_iscsi ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_without_is_whole_disk_image ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_without_is_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ... ok ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off ... ok ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure ... ok ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space ... ok ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu ... ok ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get ironic.tests.unit.objects.test_objects.TestObject.test_get ... ok ironic.tests.unit.objects.test_objects.TestObject.test_hydration ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet ... ok ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor ... ok ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_username ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_username ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue ... ok ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device ... ok GOT:{'connectors': []} 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 {} 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': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-183a38a4-543f-48b8-ba8e-899ead9ff75c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.227462+00:00", "updated_at": null} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c724fa0d-2c7a-475d-bebf-b43964cd1682 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json {"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/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-f5fa6eb5-09be-44d2-a774-9139f6ebef25 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9fff9942-fa4a-4fe9-9ad5-38a3f0878007 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba00cab9-be70-4b6f-b36c-05142d580311 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.959396+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-54d95eeb-1ebb-4a46-b218-201d8a8aec58 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/boot_index' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9891ffcf-72b9-4e65-b08e-1373ed7c7b37 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-54de4e63-b7ba-4865-9fca-b948a12faa49 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}]} Data migrations have not completed. Please re-run. ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_rescue ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_kernel ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_kernel ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_kernel ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_kernel ... ok ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off ... ok ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased ... ok ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found ... ok ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one ... ok ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad ... ok ironic.tests.unit.objects.test_objects.TestObject.test_load ironic.tests.unit.objects.test_objects.TestObject.test_load ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ... ok GET: /v1/lookup?node_uuid=fb834484-5afd-46ef-a84b-dba52c1b25d2 {} GOT:{'node': {'uuid': 'fb834484-5afd-46ef-a84b-dba52c1b25d2', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/fb834484-5afd-46ef-a84b-dba52c1b25d2', 'rel': 'self'}, {'href': 'http://localhost/nodes/fb834484-5afd-46ef-a84b-dba52c1b25d2', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e2a21233-f691-4059-bd0b-d5d86e617b5b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=ecc1f482-7712-40b0-aac1-9e8c6f730b49 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-38d96949-3beb-43c7-aea9-de6a74371112 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-999', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d97411bf-40cc-422f-801a-5dca12a1a9a3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-999", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:10.560367+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-64ecebb9-3e86-4984-8ecb-68431f4b967b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9193f25f-1db3-4b92-8ef9-0747890b64a9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-66700ae4-0774-45c6-b8b9-8e063ad14c15 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f4b6a13c-85d2-40c7-82bc-ca1bf4e7c658 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_netboot ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_netboot ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_deprecated ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_deprecated ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_disk_label ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_disk_label ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_bios ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_bios ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_partition_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_empty_root_uuid ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_empty_root_uuid ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_no_root_uuid_or_disk_id ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_no_root_uuid_or_disk_id ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_portal_port ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_portal_port ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_invalid_root_device_hints ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_invalid_root_device_hints ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_dir_path ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_dir_path ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_ipa_debug ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_ipa_debug ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_no_kernel_no_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_no_kernel_no_ramdisk ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_ramdisk ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_ok_logout ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_ok_logout ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_up ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_up ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_fail ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_fail ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_and_wait_for_state_change_fail ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_and_wait_for_state_change_fail ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update ... ok ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce ... ok ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ... ok ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... ok ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ... ok ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ... ok GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': '74b8fd88-5622-45d5-b35d-e374b009d22c', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/74b8fd88-5622-45d5-b35d-e374b009d22c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/74b8fd88-5622-45d5-b35d-e374b009d22c', 'rel': 'bookmark'}]}, {'uuid': '5cba6819-ab78-4d3a-8853-59a43708272e', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/5cba6819-ab78-4d3a-8853-59a43708272e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5cba6819-ab78-4d3a-8853-59a43708272e', 'rel': 'bookmark'}]}, {'uuid': 'fa858c69-08e1-45f5-b9af-1964fc91a95a', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/fa858c69-08e1-45f5-b9af-1964fc91a95a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/fa858c69-08e1-45f5-b9af-1964fc91a95a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=fa858c69-08e1-45f5-b9af-1964fc91a95a'} GET: /v1/volume/targets?detail=True {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:07.304528+00:00', 'updated_at': None}]} GET: /v1/volume/targets?detail=True {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=boot_index,extra {} GOT:{'boot_index': 0, 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ecf9f47-7864-4802-b5a9-770e479c0e2d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 100, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:07.449901+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e6efc9c8-b4f5-4088-a12c-64adf4a0fcd1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9c7e2957-2d9c-4f95-b902-b7b83facff2b {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_logout ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_logout ... ok ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... ok ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl ... ok ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_override_with_cimc_interfaces ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_override_with_cimc_interfaces ... ok ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_create ironic.tests.unit.objects.test_node.TestNodeObject.test_create ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found ... ok ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions ... ok ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ... ok ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id ... ok DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-026e1c44-b843-413d-915d-cd84334609ae X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} GET: /v1/volume/targets {} GOT:{'targets': []} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-94dd6aed-d008-462e-a294-36ebf3cf12f5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-199ab1a9-9691-49bf-a151-4828a87aff86 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.020970+00:00", "updated_at": "2021-12-04T17:54:04.025536+00:00"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-435c02a5-ee9c-4b38-b873-ba0cd2ccf74d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute boot_index. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9a61ebe1-5c48-4c9d-a5ab-d20b4a4d9ac7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get\", \"debuginfo\": null}"} func1() migrated 15 of 15 objects. func2() migrated 20 of 20 objects. ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_partition_image ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_partition_image ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_is_done ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_is_done ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_reraise ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_reraise ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_off_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_off_fails ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_custom_interface ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_custom_interface ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_missing_steps ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_missing_steps ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_swap ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_swap ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_destroy_images ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_destroy_images ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_two ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_two ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_calls_boot_validate ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_calls_boot_validate ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_address ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_address ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_timeout ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_timeout ... ok ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args ... ok ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ... ok ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... ok ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces ... ok ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ... ok GET: /v1/volume/connectors?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a14e42f0-d226-470b-93f0-a597d3148fa6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-de97c7ff-747e-4398-b96f-fba48089bc4f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} GET: /v1/volume/targets?detail=True&limit=3 {} GOT:{'targets': [{'uuid': '943c7ba2-ec3d-4761-a901-a3c9b71b7d0d', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/943c7ba2-ec3d-4761-a901-a3c9b71b7d0d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/943c7ba2-ec3d-4761-a901-a3c9b71b7d0d', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.218328+00:00', 'updated_at': None}, {'uuid': '83dab453-2dbb-4678-90d5-914e90ffa507', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 1, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/83dab453-2dbb-4678-90d5-914e90ffa507', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/83dab453-2dbb-4678-90d5-914e90ffa507', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.220813+00:00', 'updated_at': None}, {'uuid': 'da8ac1f3-2a86-46f1-aaa3-48be755b9a7b', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 2, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/da8ac1f3-2a86-46f1-aaa3-48be755b9a7b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/da8ac1f3-2a86-46f1-aaa3-48be755b9a7b', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.223253+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=da8ac1f3-2a86-46f1-aaa3-48be755b9a7b'} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4bd3bf2e-9e31-41b4-b1c1-65ce5d2f1471 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} POST: /v1/volume/targets {'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db Openstack-Request-Id: req-5aeafd39-47a0-48df-afd6-bb2e3c7e5301 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1961822e-23d3-4594-8650-ab4a7d3143db", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db", "rel": "self"}, {"href": "http://localhost/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:06.457872+00:00", "updated_at": null} GET: /v1/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db {} GOT:{'uuid': '1961822e-23d3-4594-8650-ab4a7d3143db', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.457872+00:00', 'updated_at': None} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-f6950f84-bf29-44db-aa79-f122a5ad11f2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:06.554263+00:00", "updated_at": null} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.554263+00:00', 'updated_at': None} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d22772ca-ad40-4a44-a696-ff126d2e08f6 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-60f69f6a-9c8f-4ac8-8cbe-4233508236cc {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"} GET: / {} GOT:{'name': 'OpenStack Ironic API', 'description': 'Ironic is an OpenStack project which aims to provision baremetal machines.', 'versions': [{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.46', 'min_version': '1.1'}], 'default_version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.46', 'min_version': '1.1'}} func1() migrated 10 of 10 objects. ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_image_source_is_url ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_image_source_is_url ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot_fail ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot_fail ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_clean_version_mismatch_fail ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_clean_version_mismatch_fail ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off_failed ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off_failed ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_touch_provisioning_and_url_save ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_touch_provisioning_and_url_save ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_overridden_default_value ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_overridden_default_value ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_bios ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_bios ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_raises ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_raises ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_pxe_config_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_pxe_config_partition_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate_storage_should_write_image_false ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate_storage_should_write_image_false ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_file_path ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_file_path ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_local_boot ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_local_boot ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_one ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_one ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot__wait_state_change_fail ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot__wait_state_change_fail ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_fail ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_fail ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ... ok ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ... ok ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good ... ok ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent ... ok ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema ... ok ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_one ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_one ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_create ironic.tests.unit.objects.test_port.TestPortObject.test_create ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_save ironic.tests.unit.objects.test_port.TestPortObject.test_save ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8d689ebd-744c-4044-91a5-27801f812724 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 401 Unauthorized Content-Type: application/json Www-Authenticate: Keystone uri="https://127.0.0.1:35357" {"error": {"code": 401, "title": "Unauthorized", "message": "The request you have made requires authentication."}} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-57bd559f-5d70-4665-8729-79b1a76b7b55 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'lookup': [{'href': 'http://localhost/v1/lookup/', 'rel': 'self'}, {'href': 'http://localhost/lookup/', 'rel': 'bookmark'}], 'heartbeat': [{'href': 'http://localhost/v1/heartbeat/', 'rel': 'self'}, {'href': 'http://localhost/heartbeat/', 'rel': 'bookmark'}]} foo() migrated 15 of 15 objects. Malformed option m1.key1value1 ---------------------------------------------------------------------- Ran 4919 tests in 325.761s OK (skipped=12) + python3-stestr slowest Test id Runtime (s) -------------------------------------------------------------------------------------------------- ----------- ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version 150.411 ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema 148.297 ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version 144.021 ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync 129.183 ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice 126.023 ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice 119.341 ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version 101.271 ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached 28.332 ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state 24.771 ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces 18.910 + rm -rf .stestr mkdir -p /build/ironic-11.1.0/debian/ironic-common/usr/share/ironic-common PYTHONPATH=/build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages python3-oslo-config-generator \ --output-file /build/ironic-11.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf \ --wrap-width 140 \ --namespace ironic \ --namespace ironic_lib.disk_utils \ --namespace ironic_lib.disk_partitioner \ --namespace ironic_lib.metrics \ --namespace ironic_lib.metrics_statsd \ --namespace ironic_lib.utils \ --namespace oslo.db \ --namespace oslo.messaging \ --namespace oslo.middleware.cors \ --namespace oslo.concurrency \ --namespace oslo.policy \ --namespace oslo.log \ --namespace oslo.service.service \ --namespace oslo.service.periodic_task \ --namespace oslo.service.sslutils \ --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.GRL3tY:[keystone_authtoken]/www_authenticate_uri pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.GRL3tY:[keystone_authtoken]/auth_type pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.GRL3tY:[keystone_authtoken]/region_name # We're using python3, the default isn't good, it's using py2. pkgos-fix-config-default /build/ironic-11.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf DEFAULT pybasedir /usr/lib/python3/site-packages/ironic pkgos_inifile: Setting value in /build/ironic-11.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf:[DEFAULT]/pybasedir # Fix the default httpboot path, some of it is in the postinst # Set some nice defaults PYTHONPATH=/build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages python3-oslopolicy-sample-generator \ --output-file /build/ironic-11.1.0/debian/ironic-common/usr/share/ironic-common/policy.json \ --format json \ --namespace ironic.api sed -i 's|#connection=|connection=sqlite:////var/lib/ironic/ironicdb|' /build/ironic-11.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf dh_install dh_missing --fail-missing make[1]: Leaving directory '/build/ironic-11.1.0' dh_installdocs -O--buildsystem=python_distutils debian/rules override_dh_sphinxdoc make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions if ! PYTHONPATH=/build/ironic-11.1.0 PYTHON=python3 python3 -m sphinx -a -b html doc/source /build/ironic-11.1.0/debian/ironic-doc/usr/share/doc/ironic-doc/html ; then \ cat /tmp/sphinx-err* ; \ exit 1 ; \ fi Running Sphinx v1.8.4 Initializing sphinxcontrib.pecanwsme.rest connecting events for openstackdocstheme making output directory... Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.version.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.app.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.config.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.expose.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.hooks.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.wsgi.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.base.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.link.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.root.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.bios.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.chassis.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.collection.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.driver.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.node.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.notification_utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.port.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.portgroup.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.ramdisk.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.state.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.types.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.versions.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.volume.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.volume_connector.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.volume_target.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.middleware.auth_token.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.middleware.json_ext.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.middleware.parsable_error.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.middleware.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.cmd.api.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.cmd.conductor.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.cmd.dbsync.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.cmd.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.boot_devices.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.boot_modes.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.cinder.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.config.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.context.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.dhcp_factory.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.driver_factory.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.exception.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.faults.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.fsm.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.hash_ring.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.i18n.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.image_service.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.images.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.keystone.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.network.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.neutron.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.policy.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.profiler.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.pxe_utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.raid.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.release_mappings.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.rpc.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.rpc_service.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.service.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.states.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.swift.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.wsgi_service.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.glance_service.base_image_service.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.glance_service.service.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.glance_service.service_utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.glance_service.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.glance_service.v1.image_service.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.glance_service.v1.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.glance_service.v2.image_service.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.common.glance_service.v2.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conductor.base_manager.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conductor.manager.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conductor.notification_utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conductor.rpcapi.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conductor.task_manager.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conductor.utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conductor.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.agent.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.ansible.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.api.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.audit.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.auth.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.cinder.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.cisco.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.conductor.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.console.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.database.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.default.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.deploy.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.dhcp.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.drac.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.glance.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.healthcheck.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.ilo.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.inspector.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.ipmi.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.irmc.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.iscsi.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.metrics.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.metrics_statsd.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.neutron.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.oneview.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.opts.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.pxe.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.redfish.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.service_catalog.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.snmp.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.swift.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.xclarity.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.conf.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.db.api.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.db.migration.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.db.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.db.sqlalchemy.api.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.db.sqlalchemy.migration.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.db.sqlalchemy.models.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.db.sqlalchemy.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.dhcp.base.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.dhcp.neutron.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.dhcp.none.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.dhcp.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.base.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.cisco_ucs.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.drac.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.fake_hardware.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.generic.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.hardware_type.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.ilo.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.ipmi.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.irmc.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.oneview.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.redfish.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.snmp.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.xclarity.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.agent.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.agent_base_vendor.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.agent_client.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.boot_mode_utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.console_utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.deploy_utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.fake.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.image_cache.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.inspector.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ipmitool.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.iscsi_deploy.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.noop.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.noop_mgmt.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.pxe.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.snmp.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ansible.deploy.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ansible.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.cimc.common.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.cimc.management.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.cimc.power.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.cimc.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.bios.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.common.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.inspect.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.job.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.management.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.power.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.raid.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.vendor_passthru.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.bios.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.boot.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.common.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.console.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.firmware_processor.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.inspect.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.management.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.power.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.vendor.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.bios.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.boot.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.common.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.inspect.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.management.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.power.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.raid.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.network.common.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.network.flat.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.network.neutron.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.network.noop.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.network.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.oneview.common.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.oneview.deploy.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.oneview.deploy_utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.oneview.inspect.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.oneview.management.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.oneview.power.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.oneview.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.management.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.power.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.utils.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.storage.cinder.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.storage.external.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.storage.noop.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.storage.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ucs.helper.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ucs.management.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ucs.power.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.ucs.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.xclarity.common.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.xclarity.management.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.xclarity.power.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.xclarity.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.hacking.checks.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.hacking.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.base.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.bios.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.chassis.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.conductor.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.fields.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.indirection.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.node.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.notification.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.port.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.portgroup.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.trait.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.volume_connector.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.volume_target.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/ironic.objects.rst. Creating file /build/ironic-11.1.0/doc/source/contributor/api/modules.rst. [oslo_config.sphinxconfiggen] reading config generator instructions from /build/ironic-11.1.0/doc/source/../../tools/config/ironic-config-generator.conf [oslo_config.sphinxconfiggen] writing sample configuration to /build/ironic-11.1.0/doc/source/_static/ironic.conf.sample [oslo_policy.sphinxpolicygen] reading config generator instructions from /build/ironic-11.1.0/doc/source/../../tools/policy/ironic-policy-generator.conf [oslo_policy.sphinxpolicygen] writing sample policy to /build/ironic-11.1.0/doc/source/_static/ironic.policy.yaml.sample Using openstackdocstheme Sphinx theme from /usr/lib/python3/dist-packages/openstackdocstheme/theme building [mo]: all of 0 po files building [html]: all source files updating environment: 330 added, 0 changed, 0 removed reading sources... [ 0%] admin/adoption reading sources... [ 0%] admin/api-audit-support reading sources... [ 0%] admin/bios reading sources... [ 1%] admin/boot-from-volume reading sources... [ 1%] admin/cleaning reading sources... [ 1%] admin/console reading sources... [ 2%] admin/deploy-steps reading sources... [ 2%] admin/drivers reading sources... [ 2%] admin/drivers/ansible reading sources... [ 3%] admin/drivers/cimc reading sources... [ 3%] admin/drivers/idrac reading sources... [ 3%] admin/drivers/ilo reading sources... [ 3%] admin/drivers/ipa reading sources... [ 4%] admin/drivers/ipmitool reading sources... [ 4%] admin/drivers/irmc reading sources... [ 4%] admin/drivers/oneview reading sources... [ 5%] admin/drivers/pxe reading sources... [ 5%] admin/drivers/redfish reading sources... [ 5%] admin/drivers/snmp reading sources... [ 6%] admin/drivers/ucs reading sources... [ 6%] admin/drivers/xclarity reading sources... [ 6%] admin/gmr reading sources... [ 6%] admin/index reading sources... [ 7%] admin/inspection reading sources... [ 7%] admin/interfaces/boot reading sources... [ 7%] admin/interfaces/deploy reading sources... [ 8%] admin/metrics reading sources... [ 8%] admin/multitenancy reading sources... [ 8%] admin/notifications reading sources... [ 9%] admin/portgroups reading sources... [ 9%] admin/radosgw reading sources... [ 9%] admin/raid reading sources... [ 10%] admin/security reading sources... [ 10%] admin/troubleshooting reading sources... [ 10%] admin/upgrade-guide reading sources... [ 10%] admin/upgrade-to-hardware-types reading sources... [ 11%] cli/index reading sources... [ 11%] cli/ironic-dbsync reading sources... [ 11%] configuration/config loading config file tools/config/ironic-config-generator.conf dumping output to '/tmp/tmp_xe5_6sf.rst' reading sources... [ 12%] configuration/index reading sources... [ 12%] configuration/policy reading sources... [ 12%] configuration/sample-config reading sources... [ 13%] configuration/sample-policy reading sources... [ 13%] contributor/api/ironic reading sources... [ 13%] contributor/api/ironic.api reading sources... [ 13%] contributor/api/ironic.api.app reading sources... [ 14%] contributor/api/ironic.api.config reading sources... [ 14%] contributor/api/ironic.api.controllers reading sources... [ 14%] contributor/api/ironic.api.controllers.base reading sources... [ 15%] contributor/api/ironic.api.controllers.link reading sources... [ 15%] contributor/api/ironic.api.controllers.root reading sources... [ 15%] contributor/api/ironic.api.controllers.v1 reading sources... [ 16%] contributor/api/ironic.api.controllers.v1.bios reading sources... [ 16%] contributor/api/ironic.api.controllers.v1.chassis reading sources... [ 16%] contributor/api/ironic.api.controllers.v1.collection reading sources... [ 16%] contributor/api/ironic.api.controllers.v1.driver reading sources... [ 17%] contributor/api/ironic.api.controllers.v1.node reading sources... [ 17%] contributor/api/ironic.api.controllers.v1.notification_utils reading sources... [ 17%] contributor/api/ironic.api.controllers.v1.port reading sources... [ 18%] contributor/api/ironic.api.controllers.v1.portgroup reading sources... [ 18%] contributor/api/ironic.api.controllers.v1.ramdisk reading sources... [ 18%] contributor/api/ironic.api.controllers.v1.state reading sources... [ 19%] contributor/api/ironic.api.controllers.v1.types reading sources... [ 19%] contributor/api/ironic.api.controllers.v1.utils reading sources... [ 19%] contributor/api/ironic.api.controllers.v1.versions reading sources... [ 20%] contributor/api/ironic.api.controllers.v1.volume reading sources... [ 20%] contributor/api/ironic.api.controllers.v1.volume_connector reading sources... [ 20%] contributor/api/ironic.api.controllers.v1.volume_target reading sources... [ 20%] contributor/api/ironic.api.expose reading sources... [ 21%] contributor/api/ironic.api.hooks reading sources... [ 21%] contributor/api/ironic.api.middleware reading sources... [ 21%] contributor/api/ironic.api.middleware.auth_token reading sources... [ 22%] contributor/api/ironic.api.middleware.json_ext reading sources... [ 22%] contributor/api/ironic.api.middleware.parsable_error reading sources... [ 22%] contributor/api/ironic.api.wsgi reading sources... [ 23%] contributor/api/ironic.cmd reading sources... [ 23%] contributor/api/ironic.cmd.api reading sources... [ 23%] contributor/api/ironic.cmd.conductor reading sources... [ 23%] contributor/api/ironic.cmd.dbsync reading sources... [ 24%] contributor/api/ironic.common reading sources... [ 24%] contributor/api/ironic.common.boot_devices reading sources... [ 24%] contributor/api/ironic.common.boot_modes reading sources... [ 25%] contributor/api/ironic.common.cinder reading sources... [ 25%] contributor/api/ironic.common.config reading sources... [ 25%] contributor/api/ironic.common.context reading sources... [ 26%] contributor/api/ironic.common.dhcp_factory reading sources... [ 26%] contributor/api/ironic.common.driver_factory reading sources... [ 26%] contributor/api/ironic.common.exception reading sources... [ 26%] contributor/api/ironic.common.faults reading sources... [ 27%] contributor/api/ironic.common.fsm reading sources... [ 27%] contributor/api/ironic.common.glance_service reading sources... [ 27%] contributor/api/ironic.common.glance_service.base_image_service reading sources... [ 28%] contributor/api/ironic.common.glance_service.service reading sources... [ 28%] contributor/api/ironic.common.glance_service.service_utils reading sources... [ 28%] contributor/api/ironic.common.glance_service.v1 reading sources... [ 29%] contributor/api/ironic.common.glance_service.v1.image_service reading sources... [ 29%] contributor/api/ironic.common.glance_service.v2 reading sources... [ 29%] contributor/api/ironic.common.glance_service.v2.image_service reading sources... [ 30%] contributor/api/ironic.common.hash_ring reading sources... [ 30%] contributor/api/ironic.common.i18n reading sources... [ 30%] contributor/api/ironic.common.image_service reading sources... [ 30%] contributor/api/ironic.common.images reading sources... [ 31%] contributor/api/ironic.common.keystone reading sources... [ 31%] contributor/api/ironic.common.network reading sources... [ 31%] contributor/api/ironic.common.neutron reading sources... [ 32%] contributor/api/ironic.common.policy reading sources... [ 32%] contributor/api/ironic.common.profiler reading sources... [ 32%] contributor/api/ironic.common.pxe_utils reading sources... [ 33%] contributor/api/ironic.common.raid reading sources... [ 33%] contributor/api/ironic.common.release_mappings reading sources... [ 33%] contributor/api/ironic.common.rpc reading sources... [ 33%] contributor/api/ironic.common.rpc_service reading sources... [ 34%] contributor/api/ironic.common.service reading sources... [ 34%] contributor/api/ironic.common.states reading sources... [ 34%] contributor/api/ironic.common.swift reading sources... [ 35%] contributor/api/ironic.common.utils reading sources... [ 35%] contributor/api/ironic.common.wsgi_service reading sources... [ 35%] contributor/api/ironic.conductor reading sources... [ 36%] contributor/api/ironic.conductor.base_manager reading sources... [ 36%] contributor/api/ironic.conductor.manager reading sources... [ 36%] contributor/api/ironic.conductor.notification_utils reading sources... [ 36%] contributor/api/ironic.conductor.rpcapi reading sources... [ 37%] contributor/api/ironic.conductor.task_manager reading sources... [ 37%] contributor/api/ironic.conductor.utils reading sources... [ 37%] contributor/api/ironic.conf reading sources... [ 38%] contributor/api/ironic.conf.agent reading sources... [ 38%] contributor/api/ironic.conf.ansible reading sources... [ 38%] contributor/api/ironic.conf.api reading sources... [ 39%] contributor/api/ironic.conf.audit reading sources... [ 39%] contributor/api/ironic.conf.auth reading sources... [ 39%] contributor/api/ironic.conf.cinder reading sources... [ 40%] contributor/api/ironic.conf.cisco reading sources... [ 40%] contributor/api/ironic.conf.conductor reading sources... [ 40%] contributor/api/ironic.conf.console reading sources... [ 40%] contributor/api/ironic.conf.database reading sources... [ 41%] contributor/api/ironic.conf.default reading sources... [ 41%] contributor/api/ironic.conf.deploy reading sources... [ 41%] contributor/api/ironic.conf.dhcp reading sources... [ 42%] contributor/api/ironic.conf.drac reading sources... [ 42%] contributor/api/ironic.conf.glance reading sources... [ 42%] contributor/api/ironic.conf.healthcheck reading sources... [ 43%] contributor/api/ironic.conf.ilo reading sources... [ 43%] contributor/api/ironic.conf.inspector reading sources... [ 43%] contributor/api/ironic.conf.ipmi reading sources... [ 43%] contributor/api/ironic.conf.irmc reading sources... [ 44%] contributor/api/ironic.conf.iscsi reading sources... [ 44%] contributor/api/ironic.conf.metrics reading sources... [ 44%] contributor/api/ironic.conf.metrics_statsd reading sources... [ 45%] contributor/api/ironic.conf.neutron reading sources... [ 45%] contributor/api/ironic.conf.oneview reading sources... [ 45%] contributor/api/ironic.conf.opts reading sources... [ 46%] contributor/api/ironic.conf.pxe reading sources... [ 46%] contributor/api/ironic.conf.redfish reading sources... [ 46%] contributor/api/ironic.conf.service_catalog reading sources... [ 46%] contributor/api/ironic.conf.snmp reading sources... [ 47%] contributor/api/ironic.conf.swift reading sources... [ 47%] contributor/api/ironic.conf.xclarity reading sources... [ 47%] contributor/api/ironic.db reading sources... [ 48%] contributor/api/ironic.db.api reading sources... [ 48%] contributor/api/ironic.db.migration reading sources... [ 48%] contributor/api/ironic.db.sqlalchemy reading sources... [ 49%] contributor/api/ironic.db.sqlalchemy.api reading sources... [ 49%] contributor/api/ironic.db.sqlalchemy.migration reading sources... [ 49%] contributor/api/ironic.db.sqlalchemy.models reading sources... [ 50%] contributor/api/ironic.dhcp reading sources... [ 50%] contributor/api/ironic.dhcp.base reading sources... [ 50%] contributor/api/ironic.dhcp.neutron reading sources... [ 50%] contributor/api/ironic.dhcp.none reading sources... [ 51%] contributor/api/ironic.drivers reading sources... [ 51%] contributor/api/ironic.drivers.base reading sources... [ 51%] contributor/api/ironic.drivers.cisco_ucs reading sources... [ 52%] contributor/api/ironic.drivers.drac reading sources... [ 52%] contributor/api/ironic.drivers.fake_hardware reading sources... [ 52%] contributor/api/ironic.drivers.generic reading sources... [ 53%] contributor/api/ironic.drivers.hardware_type reading sources... [ 53%] contributor/api/ironic.drivers.ilo reading sources... [ 53%] contributor/api/ironic.drivers.ipmi reading sources... [ 53%] contributor/api/ironic.drivers.irmc reading sources... [ 54%] contributor/api/ironic.drivers.modules reading sources... [ 54%] contributor/api/ironic.drivers.modules.agent reading sources... [ 54%] contributor/api/ironic.drivers.modules.agent_base_vendor reading sources... [ 55%] contributor/api/ironic.drivers.modules.agent_client reading sources... [ 55%] contributor/api/ironic.drivers.modules.ansible reading sources... [ 55%] contributor/api/ironic.drivers.modules.ansible.deploy reading sources... [ 56%] contributor/api/ironic.drivers.modules.boot_mode_utils reading sources... [ 56%] contributor/api/ironic.drivers.modules.cimc reading sources... [ 56%] contributor/api/ironic.drivers.modules.cimc.common reading sources... [ 56%] contributor/api/ironic.drivers.modules.cimc.management reading sources... [ 57%] contributor/api/ironic.drivers.modules.cimc.power reading sources... [ 57%] contributor/api/ironic.drivers.modules.console_utils reading sources... [ 57%] contributor/api/ironic.drivers.modules.deploy_utils reading sources... [ 58%] contributor/api/ironic.drivers.modules.drac reading sources... [ 58%] contributor/api/ironic.drivers.modules.drac.bios reading sources... [ 58%] contributor/api/ironic.drivers.modules.drac.common reading sources... [ 59%] contributor/api/ironic.drivers.modules.drac.inspect reading sources... [ 59%] contributor/api/ironic.drivers.modules.drac.job reading sources... [ 59%] contributor/api/ironic.drivers.modules.drac.management reading sources... [ 60%] contributor/api/ironic.drivers.modules.drac.power reading sources... [ 60%] contributor/api/ironic.drivers.modules.drac.raid reading sources... [ 60%] contributor/api/ironic.drivers.modules.drac.vendor_passthru reading sources... [ 60%] contributor/api/ironic.drivers.modules.fake reading sources... [ 61%] contributor/api/ironic.drivers.modules.ilo reading sources... [ 61%] contributor/api/ironic.drivers.modules.ilo.bios reading sources... [ 61%] contributor/api/ironic.drivers.modules.ilo.boot reading sources... [ 62%] contributor/api/ironic.drivers.modules.ilo.common reading sources... [ 62%] contributor/api/ironic.drivers.modules.ilo.console reading sources... [ 62%] contributor/api/ironic.drivers.modules.ilo.firmware_processor reading sources... [ 63%] contributor/api/ironic.drivers.modules.ilo.inspect reading sources... [ 63%] contributor/api/ironic.drivers.modules.ilo.management reading sources... [ 63%] contributor/api/ironic.drivers.modules.ilo.power reading sources... [ 63%] contributor/api/ironic.drivers.modules.ilo.vendor reading sources... [ 64%] contributor/api/ironic.drivers.modules.image_cache reading sources... [ 64%] contributor/api/ironic.drivers.modules.inspector reading sources... [ 64%] contributor/api/ironic.drivers.modules.ipmitool reading sources... [ 65%] contributor/api/ironic.drivers.modules.irmc reading sources... [ 65%] contributor/api/ironic.drivers.modules.irmc.bios reading sources... [ 65%] contributor/api/ironic.drivers.modules.irmc.boot reading sources... [ 66%] contributor/api/ironic.drivers.modules.irmc.common reading sources... [ 66%] contributor/api/ironic.drivers.modules.irmc.inspect reading sources... [ 66%] contributor/api/ironic.drivers.modules.irmc.management reading sources... [ 66%] contributor/api/ironic.drivers.modules.irmc.power reading sources... [ 67%] contributor/api/ironic.drivers.modules.irmc.raid reading sources... [ 67%] contributor/api/ironic.drivers.modules.iscsi_deploy reading sources... [ 67%] contributor/api/ironic.drivers.modules.network reading sources... [ 68%] contributor/api/ironic.drivers.modules.network.common reading sources... [ 68%] contributor/api/ironic.drivers.modules.network.flat reading sources... [ 68%] contributor/api/ironic.drivers.modules.network.neutron reading sources... [ 69%] contributor/api/ironic.drivers.modules.network.noop reading sources... [ 69%] contributor/api/ironic.drivers.modules.noop reading sources... [ 69%] contributor/api/ironic.drivers.modules.noop_mgmt reading sources... [ 70%] contributor/api/ironic.drivers.modules.oneview reading sources... [ 70%] contributor/api/ironic.drivers.modules.oneview.common reading sources... [ 70%] contributor/api/ironic.drivers.modules.oneview.deploy reading sources... [ 70%] contributor/api/ironic.drivers.modules.oneview.deploy_utils reading sources... [ 71%] contributor/api/ironic.drivers.modules.oneview.inspect reading sources... [ 71%] contributor/api/ironic.drivers.modules.oneview.management reading sources... [ 71%] contributor/api/ironic.drivers.modules.oneview.power reading sources... [ 72%] contributor/api/ironic.drivers.modules.pxe reading sources... [ 72%] contributor/api/ironic.drivers.modules.redfish reading sources... [ 72%] contributor/api/ironic.drivers.modules.redfish.management reading sources... [ 73%] contributor/api/ironic.drivers.modules.redfish.power reading sources... [ 73%] contributor/api/ironic.drivers.modules.redfish.utils reading sources... [ 73%] contributor/api/ironic.drivers.modules.snmp reading sources... [ 73%] contributor/api/ironic.drivers.modules.storage reading sources... [ 74%] contributor/api/ironic.drivers.modules.storage.cinder reading sources... [ 74%] contributor/api/ironic.drivers.modules.storage.external reading sources... [ 74%] contributor/api/ironic.drivers.modules.storage.noop reading sources... [ 75%] contributor/api/ironic.drivers.modules.ucs reading sources... [ 75%] contributor/api/ironic.drivers.modules.ucs.helper reading sources... [ 75%] contributor/api/ironic.drivers.modules.ucs.management reading sources... [ 76%] contributor/api/ironic.drivers.modules.ucs.power reading sources... [ 76%] contributor/api/ironic.drivers.modules.xclarity reading sources... [ 76%] contributor/api/ironic.drivers.modules.xclarity.common reading sources... [ 76%] contributor/api/ironic.drivers.modules.xclarity.management reading sources... [ 77%] contributor/api/ironic.drivers.modules.xclarity.power reading sources... [ 77%] contributor/api/ironic.drivers.oneview reading sources... [ 77%] contributor/api/ironic.drivers.redfish reading sources... [ 78%] contributor/api/ironic.drivers.snmp reading sources... [ 78%] contributor/api/ironic.drivers.utils reading sources... [ 78%] contributor/api/ironic.drivers.xclarity reading sources... [ 79%] contributor/api/ironic.hacking reading sources... [ 79%] contributor/api/ironic.hacking.checks reading sources... [ 79%] contributor/api/ironic.objects reading sources... [ 80%] contributor/api/ironic.objects.base reading sources... [ 80%] contributor/api/ironic.objects.bios reading sources... [ 80%] contributor/api/ironic.objects.chassis reading sources... [ 80%] contributor/api/ironic.objects.conductor reading sources... [ 81%] contributor/api/ironic.objects.fields reading sources... [ 81%] contributor/api/ironic.objects.indirection reading sources... [ 81%] contributor/api/ironic.objects.node reading sources... [ 82%] contributor/api/ironic.objects.notification reading sources... [ 82%] contributor/api/ironic.objects.port reading sources... [ 82%] contributor/api/ironic.objects.portgroup reading sources... [ 83%] contributor/api/ironic.objects.trait reading sources... [ 83%] contributor/api/ironic.objects.volume_connector reading sources... [ 83%] contributor/api/ironic.objects.volume_target reading sources... [ 83%] contributor/api/ironic.version reading sources... [ 84%] contributor/api/modules reading sources... [ 84%] contributor/architecture reading sources... [ 84%] contributor/bios_develop reading sources... [ 85%] contributor/code-contribution-guide reading sources... [ 85%] contributor/dev-quickstart reading sources... [ 85%] contributor/drivers reading sources... [ 86%] contributor/faq reading sources... [ 86%] contributor/governance reading sources... [ 86%] contributor/index reading sources... [ 86%] contributor/ironic-boot-from-volume reading sources... [ 87%] contributor/ironic-multitenant-networking reading sources... [ 87%] contributor/notifications reading sources... [ 87%] contributor/osprofiler-support reading sources... [ 88%] contributor/releasing reading sources... [ 88%] contributor/rolling-upgrades reading sources... [ 88%] contributor/states reading sources... [ 89%] contributor/third-party-ci reading sources... [ 89%] contributor/vendor-passthru reading sources... [ 89%] contributor/webapi reading sources... [ 90%] contributor/webapi-version-history reading sources... [ 90%] index reading sources... [ 90%] install/advanced reading sources... [ 90%] install/configdrive reading sources... [ 91%] install/configure-cleaning reading sources... [ 91%] install/configure-compute reading sources... [ 91%] install/configure-glance-images reading sources... [ 92%] install/configure-glance-swift reading sources... [ 92%] install/configure-identity reading sources... [ 92%] install/configure-integration reading sources... [ 93%] install/configure-ipmi reading sources... [ 93%] install/configure-iscsi reading sources... [ 93%] install/configure-networking reading sources... [ 93%] install/configure-nova-flavors reading sources... [ 94%] install/configure-pxe reading sources... [ 94%] install/configure-tenant-networks reading sources... [ 94%] install/deploy-ramdisk reading sources... [ 95%] install/enabling-drivers reading sources... [ 95%] install/enabling-https reading sources... [ 95%] install/enrollment reading sources... [ 96%] install/get_started reading sources... [ 96%] install/index reading sources... [ 96%] install/install reading sources... [ 96%] install/install-obs reading sources... [ 97%] install/install-rdo reading sources... [ 97%] install/install-ubuntu reading sources... [ 97%] install/next-steps reading sources... [ 98%] install/refarch/common reading sources... [ 98%] install/refarch/index reading sources... [ 98%] install/refarch/small-cloud-trusted-tenants reading sources... [ 99%] install/setup-drivers reading sources... [ 99%] install/standalone reading sources... [ 99%] install/troubleshooting reading sources... [100%] user/index /usr/lib/python3/dist-packages/sphinxcontrib/pecanwsme/rest.py:244: RemovedInSphinx20Warning: app.info() is now deprecated. Use sphinx.util.logging instead. app.info('Initializing %s' % __name__) /usr/lib/python3/dist-packages/oslo_config/sphinxconfiggen.py:55: RemovedInSphinx20Warning: app.info() is now deprecated. Use sphinx.util.logging instead. app.info('[%s] %s' % (__name__, msg)) /usr/lib/python3/dist-packages/oslo_policy/sphinxpolicygen.py:49: RemovedInSphinx20Warning: app.info() is now deprecated. Use sphinx.util.logging instead. app.info('[%s] %s' % (__name__, msg)) /build/ironic-11.1.0/ironic/drivers/modules/iscsi_deploy.py:docstring of ironic.drivers.modules.iscsi_deploy.AgentDeployMixin.continue_deploy:1: WARNING: duplicate object description of AgentDeployMixin.continue_deploy, other instance in /build/ironic-11.1.0/doc/source/contributor/api/ironic.drivers.modules.agent.rst, use :noindex: for one of them /build/ironic-11.1.0/ironic/objects/base.py:docstring of ironic.objects.base.IronicObjectSerializer.OBJ_BASE_CLASS:1: WARNING: duplicate object description of None, other instance in /build/ironic-11.1.0/doc/source/contributor/api/ironic.api.controllers.v1.types.rst, use :noindex: for one of them looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done writing output... [ 0%] admin/adoption writing output... [ 0%] admin/api-audit-support writing output... [ 0%] admin/bios writing output... [ 1%] admin/boot-from-volume writing output... [ 1%] admin/cleaning writing output... [ 1%] admin/console writing output... [ 2%] admin/deploy-steps writing output... [ 2%] admin/drivers writing output... [ 2%] admin/drivers/ansible writing output... [ 3%] admin/drivers/cimc writing output... [ 3%] admin/drivers/idrac writing output... [ 3%] admin/drivers/ilo writing output... [ 3%] admin/drivers/ipa writing output... [ 4%] admin/drivers/ipmitool writing output... [ 4%] admin/drivers/irmc writing output... [ 4%] admin/drivers/oneview writing output... [ 5%] admin/drivers/pxe writing output... [ 5%] admin/drivers/redfish writing output... [ 5%] admin/drivers/snmp writing output... [ 6%] admin/drivers/ucs writing output... [ 6%] admin/drivers/xclarity writing output... [ 6%] admin/gmr writing output... [ 6%] admin/index writing output... [ 7%] admin/inspection writing output... [ 7%] admin/interfaces/boot writing output... [ 7%] admin/interfaces/deploy writing output... [ 8%] admin/metrics writing output... [ 8%] admin/multitenancy writing output... [ 8%] admin/notifications writing output... [ 9%] admin/portgroups writing output... [ 9%] admin/radosgw writing output... [ 9%] admin/raid writing output... [ 10%] admin/security writing output... [ 10%] admin/troubleshooting writing output... [ 10%] admin/upgrade-guide writing output... [ 10%] admin/upgrade-to-hardware-types writing output... [ 11%] cli/index writing output... [ 11%] cli/ironic-dbsync writing output... [ 11%] configuration/config writing output... [ 12%] configuration/index writing output... [ 12%] configuration/policy writing output... [ 12%] configuration/sample-config writing output... [ 13%] configuration/sample-policy writing output... [ 13%] contributor/api/ironic writing output... [ 13%] contributor/api/ironic.api writing output... [ 13%] contributor/api/ironic.api.app writing output... [ 14%] contributor/api/ironic.api.config writing output... [ 14%] contributor/api/ironic.api.controllers writing output... [ 14%] contributor/api/ironic.api.controllers.base writing output... [ 15%] contributor/api/ironic.api.controllers.link writing output... [ 15%] contributor/api/ironic.api.controllers.root writing output... [ 15%] contributor/api/ironic.api.controllers.v1 writing output... [ 16%] contributor/api/ironic.api.controllers.v1.bios writing output... [ 16%] contributor/api/ironic.api.controllers.v1.chassis writing output... [ 16%] contributor/api/ironic.api.controllers.v1.collection writing output... [ 16%] contributor/api/ironic.api.controllers.v1.driver writing output... [ 17%] contributor/api/ironic.api.controllers.v1.node writing output... [ 17%] contributor/api/ironic.api.controllers.v1.notification_utils writing output... [ 17%] contributor/api/ironic.api.controllers.v1.port writing output... [ 18%] contributor/api/ironic.api.controllers.v1.portgroup writing output... [ 18%] contributor/api/ironic.api.controllers.v1.ramdisk writing output... [ 18%] contributor/api/ironic.api.controllers.v1.state writing output... [ 19%] contributor/api/ironic.api.controllers.v1.types writing output... [ 19%] contributor/api/ironic.api.controllers.v1.utils writing output... [ 19%] contributor/api/ironic.api.controllers.v1.versions writing output... [ 20%] contributor/api/ironic.api.controllers.v1.volume writing output... [ 20%] contributor/api/ironic.api.controllers.v1.volume_connector writing output... [ 20%] contributor/api/ironic.api.controllers.v1.volume_target writing output... [ 20%] contributor/api/ironic.api.expose writing output... [ 21%] contributor/api/ironic.api.hooks writing output... [ 21%] contributor/api/ironic.api.middleware writing output... [ 21%] contributor/api/ironic.api.middleware.auth_token writing output... [ 22%] contributor/api/ironic.api.middleware.json_ext writing output... [ 22%] contributor/api/ironic.api.middleware.parsable_error writing output... [ 22%] contributor/api/ironic.api.wsgi writing output... [ 23%] contributor/api/ironic.cmd writing output... [ 23%] contributor/api/ironic.cmd.api writing output... [ 23%] contributor/api/ironic.cmd.conductor writing output... [ 23%] contributor/api/ironic.cmd.dbsync writing output... [ 24%] contributor/api/ironic.common writing output... [ 24%] contributor/api/ironic.common.boot_devices writing output... [ 24%] contributor/api/ironic.common.boot_modes writing output... [ 25%] contributor/api/ironic.common.cinder writing output... [ 25%] contributor/api/ironic.common.config writing output... [ 25%] contributor/api/ironic.common.context writing output... [ 26%] contributor/api/ironic.common.dhcp_factory writing output... [ 26%] contributor/api/ironic.common.driver_factory writing output... [ 26%] contributor/api/ironic.common.exception writing output... [ 26%] contributor/api/ironic.common.faults writing output... [ 27%] contributor/api/ironic.common.fsm writing output... [ 27%] contributor/api/ironic.common.glance_service writing output... [ 27%] contributor/api/ironic.common.glance_service.base_image_service writing output... [ 28%] contributor/api/ironic.common.glance_service.service writing output... [ 28%] contributor/api/ironic.common.glance_service.service_utils writing output... [ 28%] contributor/api/ironic.common.glance_service.v1 writing output... [ 29%] contributor/api/ironic.common.glance_service.v1.image_service writing output... [ 29%] contributor/api/ironic.common.glance_service.v2 writing output... [ 29%] contributor/api/ironic.common.glance_service.v2.image_service writing output... [ 30%] contributor/api/ironic.common.hash_ring writing output... [ 30%] contributor/api/ironic.common.i18n writing output... [ 30%] contributor/api/ironic.common.image_service writing output... [ 30%] contributor/api/ironic.common.images writing output... [ 31%] contributor/api/ironic.common.keystone writing output... [ 31%] contributor/api/ironic.common.network writing output... [ 31%] contributor/api/ironic.common.neutron writing output... [ 32%] contributor/api/ironic.common.policy writing output... [ 32%] contributor/api/ironic.common.profiler writing output... [ 32%] contributor/api/ironic.common.pxe_utils writing output... [ 33%] contributor/api/ironic.common.raid writing output... [ 33%] contributor/api/ironic.common.release_mappings writing output... [ 33%] contributor/api/ironic.common.rpc writing output... [ 33%] contributor/api/ironic.common.rpc_service writing output... [ 34%] contributor/api/ironic.common.service writing output... [ 34%] contributor/api/ironic.common.states writing output... [ 34%] contributor/api/ironic.common.swift writing output... [ 35%] contributor/api/ironic.common.utils writing output... [ 35%] contributor/api/ironic.common.wsgi_service writing output... [ 35%] contributor/api/ironic.conductor writing output... [ 36%] contributor/api/ironic.conductor.base_manager writing output... [ 36%] contributor/api/ironic.conductor.manager writing output... [ 36%] contributor/api/ironic.conductor.notification_utils writing output... [ 36%] contributor/api/ironic.conductor.rpcapi writing output... [ 37%] contributor/api/ironic.conductor.task_manager writing output... [ 37%] contributor/api/ironic.conductor.utils writing output... [ 37%] contributor/api/ironic.conf writing output... [ 38%] contributor/api/ironic.conf.agent writing output... [ 38%] contributor/api/ironic.conf.ansible writing output... [ 38%] contributor/api/ironic.conf.api writing output... [ 39%] contributor/api/ironic.conf.audit writing output... [ 39%] contributor/api/ironic.conf.auth writing output... [ 39%] contributor/api/ironic.conf.cinder writing output... [ 40%] contributor/api/ironic.conf.cisco writing output... [ 40%] contributor/api/ironic.conf.conductor writing output... [ 40%] contributor/api/ironic.conf.console writing output... [ 40%] contributor/api/ironic.conf.database writing output... [ 41%] contributor/api/ironic.conf.default writing output... [ 41%] contributor/api/ironic.conf.deploy writing output... [ 41%] contributor/api/ironic.conf.dhcp writing output... [ 42%] contributor/api/ironic.conf.drac writing output... [ 42%] contributor/api/ironic.conf.glance writing output... [ 42%] contributor/api/ironic.conf.healthcheck writing output... [ 43%] contributor/api/ironic.conf.ilo writing output... [ 43%] contributor/api/ironic.conf.inspector writing output... [ 43%] contributor/api/ironic.conf.ipmi writing output... [ 43%] contributor/api/ironic.conf.irmc writing output... [ 44%] contributor/api/ironic.conf.iscsi writing output... [ 44%] contributor/api/ironic.conf.metrics writing output... [ 44%] contributor/api/ironic.conf.metrics_statsd writing output... [ 45%] contributor/api/ironic.conf.neutron writing output... [ 45%] contributor/api/ironic.conf.oneview writing output... [ 45%] contributor/api/ironic.conf.opts writing output... [ 46%] contributor/api/ironic.conf.pxe writing output... [ 46%] contributor/api/ironic.conf.redfish writing output... [ 46%] contributor/api/ironic.conf.service_catalog writing output... [ 46%] contributor/api/ironic.conf.snmp writing output... [ 47%] contributor/api/ironic.conf.swift writing output... [ 47%] contributor/api/ironic.conf.xclarity writing output... [ 47%] contributor/api/ironic.db writing output... [ 48%] contributor/api/ironic.db.api writing output... [ 48%] contributor/api/ironic.db.migration writing output... [ 48%] contributor/api/ironic.db.sqlalchemy writing output... [ 49%] contributor/api/ironic.db.sqlalchemy.api writing output... [ 49%] contributor/api/ironic.db.sqlalchemy.migration writing output... [ 49%] contributor/api/ironic.db.sqlalchemy.models writing output... [ 50%] contributor/api/ironic.dhcp writing output... [ 50%] contributor/api/ironic.dhcp.base writing output... [ 50%] contributor/api/ironic.dhcp.neutron writing output... [ 50%] contributor/api/ironic.dhcp.none writing output... [ 51%] contributor/api/ironic.drivers writing output... [ 51%] contributor/api/ironic.drivers.base writing output... [ 51%] contributor/api/ironic.drivers.cisco_ucs writing output... [ 52%] contributor/api/ironic.drivers.drac writing output... [ 52%] contributor/api/ironic.drivers.fake_hardware writing output... [ 52%] contributor/api/ironic.drivers.generic writing output... [ 53%] contributor/api/ironic.drivers.hardware_type writing output... [ 53%] contributor/api/ironic.drivers.ilo writing output... [ 53%] contributor/api/ironic.drivers.ipmi writing output... [ 53%] contributor/api/ironic.drivers.irmc writing output... [ 54%] contributor/api/ironic.drivers.modules writing output... [ 54%] contributor/api/ironic.drivers.modules.agent writing output... [ 54%] contributor/api/ironic.drivers.modules.agent_base_vendor writing output... [ 55%] contributor/api/ironic.drivers.modules.agent_client writing output... [ 55%] contributor/api/ironic.drivers.modules.ansible writing output... [ 55%] contributor/api/ironic.drivers.modules.ansible.deploy writing output... [ 56%] contributor/api/ironic.drivers.modules.boot_mode_utils writing output... [ 56%] contributor/api/ironic.drivers.modules.cimc writing output... [ 56%] contributor/api/ironic.drivers.modules.cimc.common writing output... [ 56%] contributor/api/ironic.drivers.modules.cimc.management writing output... [ 57%] contributor/api/ironic.drivers.modules.cimc.power writing output... [ 57%] contributor/api/ironic.drivers.modules.console_utils writing output... [ 57%] contributor/api/ironic.drivers.modules.deploy_utils writing output... [ 58%] contributor/api/ironic.drivers.modules.drac writing output... [ 58%] contributor/api/ironic.drivers.modules.drac.bios writing output... [ 58%] contributor/api/ironic.drivers.modules.drac.common writing output... [ 59%] contributor/api/ironic.drivers.modules.drac.inspect writing output... [ 59%] contributor/api/ironic.drivers.modules.drac.job writing output... [ 59%] contributor/api/ironic.drivers.modules.drac.management writing output... [ 60%] contributor/api/ironic.drivers.modules.drac.power writing output... [ 60%] contributor/api/ironic.drivers.modules.drac.raid writing output... [ 60%] contributor/api/ironic.drivers.modules.drac.vendor_passthru writing output... [ 60%] contributor/api/ironic.drivers.modules.fake writing output... [ 61%] contributor/api/ironic.drivers.modules.ilo writing output... [ 61%] contributor/api/ironic.drivers.modules.ilo.bios writing output... [ 61%] contributor/api/ironic.drivers.modules.ilo.boot writing output... [ 62%] contributor/api/ironic.drivers.modules.ilo.common writing output... [ 62%] contributor/api/ironic.drivers.modules.ilo.console writing output... [ 62%] contributor/api/ironic.drivers.modules.ilo.firmware_processor writing output... [ 63%] contributor/api/ironic.drivers.modules.ilo.inspect writing output... [ 63%] contributor/api/ironic.drivers.modules.ilo.management writing output... [ 63%] contributor/api/ironic.drivers.modules.ilo.power writing output... [ 63%] contributor/api/ironic.drivers.modules.ilo.vendor writing output... [ 64%] contributor/api/ironic.drivers.modules.image_cache writing output... [ 64%] contributor/api/ironic.drivers.modules.inspector writing output... [ 64%] contributor/api/ironic.drivers.modules.ipmitool writing output... [ 65%] contributor/api/ironic.drivers.modules.irmc writing output... [ 65%] contributor/api/ironic.drivers.modules.irmc.bios writing output... [ 65%] contributor/api/ironic.drivers.modules.irmc.boot writing output... [ 66%] contributor/api/ironic.drivers.modules.irmc.common writing output... [ 66%] contributor/api/ironic.drivers.modules.irmc.inspect writing output... [ 66%] contributor/api/ironic.drivers.modules.irmc.management writing output... [ 66%] contributor/api/ironic.drivers.modules.irmc.power writing output... [ 67%] contributor/api/ironic.drivers.modules.irmc.raid writing output... [ 67%] contributor/api/ironic.drivers.modules.iscsi_deploy writing output... [ 67%] contributor/api/ironic.drivers.modules.network writing output... [ 68%] contributor/api/ironic.drivers.modules.network.common writing output... [ 68%] contributor/api/ironic.drivers.modules.network.flat writing output... [ 68%] contributor/api/ironic.drivers.modules.network.neutron writing output... [ 69%] contributor/api/ironic.drivers.modules.network.noop writing output... [ 69%] contributor/api/ironic.drivers.modules.noop writing output... [ 69%] contributor/api/ironic.drivers.modules.noop_mgmt writing output... [ 70%] contributor/api/ironic.drivers.modules.oneview writing output... [ 70%] contributor/api/ironic.drivers.modules.oneview.common writing output... [ 70%] contributor/api/ironic.drivers.modules.oneview.deploy writing output... [ 70%] contributor/api/ironic.drivers.modules.oneview.deploy_utils writing output... [ 71%] contributor/api/ironic.drivers.modules.oneview.inspect writing output... [ 71%] contributor/api/ironic.drivers.modules.oneview.management writing output... [ 71%] contributor/api/ironic.drivers.modules.oneview.power writing output... [ 72%] contributor/api/ironic.drivers.modules.pxe writing output... [ 72%] contributor/api/ironic.drivers.modules.redfish writing output... [ 72%] contributor/api/ironic.drivers.modules.redfish.management writing output... [ 73%] contributor/api/ironic.drivers.modules.redfish.power writing output... [ 73%] contributor/api/ironic.drivers.modules.redfish.utils writing output... [ 73%] contributor/api/ironic.drivers.modules.snmp writing output... [ 73%] contributor/api/ironic.drivers.modules.storage writing output... [ 74%] contributor/api/ironic.drivers.modules.storage.cinder writing output... [ 74%] contributor/api/ironic.drivers.modules.storage.external writing output... [ 74%] contributor/api/ironic.drivers.modules.storage.noop writing output... [ 75%] contributor/api/ironic.drivers.modules.ucs writing output... [ 75%] contributor/api/ironic.drivers.modules.ucs.helper writing output... [ 75%] contributor/api/ironic.drivers.modules.ucs.management writing output... [ 76%] contributor/api/ironic.drivers.modules.ucs.power writing output... [ 76%] contributor/api/ironic.drivers.modules.xclarity writing output... [ 76%] contributor/api/ironic.drivers.modules.xclarity.common writing output... [ 76%] contributor/api/ironic.drivers.modules.xclarity.management writing output... [ 77%] contributor/api/ironic.drivers.modules.xclarity.power writing output... [ 77%] contributor/api/ironic.drivers.oneview writing output... [ 77%] contributor/api/ironic.drivers.redfish writing output... [ 78%] contributor/api/ironic.drivers.snmp writing output... [ 78%] contributor/api/ironic.drivers.utils writing output... [ 78%] contributor/api/ironic.drivers.xclarity writing output... [ 79%] contributor/api/ironic.hacking writing output... [ 79%] contributor/api/ironic.hacking.checks writing output... [ 79%] contributor/api/ironic.objects writing output... [ 80%] contributor/api/ironic.objects.base writing output... [ 80%] contributor/api/ironic.objects.bios writing output... [ 80%] contributor/api/ironic.objects.chassis writing output... [ 80%] contributor/api/ironic.objects.conductor writing output... [ 81%] contributor/api/ironic.objects.fields writing output... [ 81%] contributor/api/ironic.objects.indirection writing output... [ 81%] contributor/api/ironic.objects.node writing output... [ 82%] contributor/api/ironic.objects.notification writing output... [ 82%] contributor/api/ironic.objects.port writing output... [ 82%] contributor/api/ironic.objects.portgroup writing output... [ 83%] contributor/api/ironic.objects.trait writing output... [ 83%] contributor/api/ironic.objects.volume_connector writing output... [ 83%] contributor/api/ironic.objects.volume_target writing output... [ 83%] contributor/api/ironic.version writing output... [ 84%] contributor/api/modules writing output... [ 84%] contributor/architecture writing output... [ 84%] contributor/bios_develop writing output... [ 85%] contributor/code-contribution-guide writing output... [ 85%] contributor/dev-quickstart writing output... [ 85%] contributor/drivers writing output... [ 86%] contributor/faq writing output... [ 86%] contributor/governance writing output... [ 86%] contributor/index writing output... [ 86%] contributor/ironic-boot-from-volume writing output... [ 87%] contributor/ironic-multitenant-networking writing output... [ 87%] contributor/notifications writing output... [ 87%] contributor/osprofiler-support writing output... [ 88%] contributor/releasing writing output... [ 88%] contributor/rolling-upgrades writing output... [ 88%] contributor/states writing output... [ 89%] contributor/third-party-ci writing output... [ 89%] contributor/vendor-passthru writing output... [ 89%] contributor/webapi writing output... [ 90%] contributor/webapi-version-history writing output... [ 90%] index writing output... [ 90%] install/advanced writing output... [ 90%] install/configdrive writing output... [ 91%] install/configure-cleaning writing output... [ 91%] install/configure-compute writing output... [ 91%] install/configure-glance-images writing output... [ 92%] install/configure-glance-swift writing output... [ 92%] install/configure-identity writing output... [ 92%] install/configure-integration writing output... [ 93%] install/configure-ipmi writing output... [ 93%] install/configure-iscsi writing output... [ 93%] install/configure-networking writing output... [ 93%] install/configure-nova-flavors writing output... [ 94%] install/configure-pxe writing output... [ 94%] install/configure-tenant-networks writing output... [ 94%] install/deploy-ramdisk writing output... [ 95%] install/enabling-drivers writing output... [ 95%] install/enabling-https writing output... [ 95%] install/enrollment writing output... [ 96%] install/get_started writing output... [ 96%] install/index writing output... [ 96%] install/install writing output... [ 96%] install/install-obs writing output... [ 97%] install/install-rdo writing output... [ 97%] install/install-ubuntu writing output... [ 97%] install/next-steps writing output... [ 98%] install/refarch/common writing output... [ 98%] install/refarch/index writing output... [ 98%] install/refarch/small-cloud-trusted-tenants writing output... [ 99%] install/setup-drivers writing output... [ 99%] install/standalone writing output... [ 99%] install/troubleshooting writing output... [100%] user/index WARNING: Cannot get gitsha from git repository. WARNING: dot command 'dot' cannot be run (needed for graphviz output), check the graphviz_dot setting generating indices... genindex py-modindex highlighting module code... [ 1%] automaton.machines highlighting module code... [ 2%] ironic.api.controllers.base highlighting module code... [ 3%] ironic.api.controllers.link highlighting module code... [ 4%] ironic.api.controllers.v1 highlighting module code... [ 5%] ironic.api.controllers.v1.bios highlighting module code... [ 6%] ironic.api.controllers.v1.collection highlighting module code... [ 7%] ironic.api.controllers.v1.driver highlighting module code... [ 8%] ironic.api.controllers.v1.node highlighting module code... [ 9%] ironic.api.controllers.v1.port highlighting module code... [ 10%] ironic.api.controllers.v1.portgroup highlighting module code... [ 11%] ironic.api.controllers.v1.ramdisk highlighting module code... [ 12%] ironic.api.controllers.v1.types highlighting module code... [ 13%] ironic.api.controllers.v1.volume highlighting module code... [ 14%] ironic.api.controllers.v1.volume_connector highlighting module code... [ 15%] ironic.api.controllers.v1.volume_target highlighting module code... [ 16%] ironic.api.hooks highlighting module code... [ 17%] ironic.cmd.dbsync highlighting module code... [ 18%] ironic.common.context highlighting module code... [ 19%] ironic.common.dhcp_factory highlighting module code... [ 20%] ironic.common.exception highlighting module code... [ 21%] ironic.common.fsm highlighting module code... [ 22%] ironic.common.glance_service.base_image_service highlighting module code... [ 23%] ironic.common.glance_service.service highlighting module code... [ 24%] ironic.common.glance_service.v1.image_service highlighting module code... [ 25%] ironic.common.hash_ring highlighting module code... [ 26%] ironic.common.image_service highlighting module code... [ 27%] ironic.common.neutron highlighting module code... [ 28%] ironic.common.rpc highlighting module code... [ 29%] ironic.common.rpc_service highlighting module code... [ 30%] ironic.common.swift highlighting module code... [ 31%] ironic.common.wsgi_service highlighting module code... [ 32%] ironic.conductor.base_manager highlighting module code... [ 33%] ironic.conductor.manager highlighting module code... [ 34%] ironic.conductor.rpcapi highlighting module code... [ 35%] ironic.conductor.task_manager highlighting module code... [ 36%] ironic.db.api highlighting module code... [ 37%] ironic.db.sqlalchemy.api highlighting module code... [ 38%] ironic.dhcp.base highlighting module code... [ 39%] ironic.dhcp.neutron highlighting module code... [ 40%] ironic.dhcp.none highlighting module code... [ 41%] ironic.drivers.hardware_type highlighting module code... [ 42%] ironic.drivers.modules.agent highlighting module code... [ 43%] ironic.drivers.modules.agent_base_vendor highlighting module code... [ 44%] ironic.drivers.modules.agent_client highlighting module code... [ 45%] ironic.drivers.modules.ansible.deploy highlighting module code... [ 46%] ironic.drivers.modules.cimc.management highlighting module code... [ 47%] ironic.drivers.modules.cimc.power highlighting module code... [ 48%] ironic.drivers.modules.drac.inspect highlighting module code... [ 50%] ironic.drivers.modules.drac.management highlighting module code... [ 51%] ironic.drivers.modules.drac.power highlighting module code... [ 52%] ironic.drivers.modules.drac.raid highlighting module code... [ 53%] ironic.drivers.modules.drac.vendor_passthru highlighting module code... [ 54%] ironic.drivers.modules.fake highlighting module code... [ 55%] ironic.drivers.modules.ilo.bios highlighting module code... [ 56%] ironic.drivers.modules.ilo.boot highlighting module code... [ 57%] ironic.drivers.modules.ilo.console highlighting module code... [ 58%] ironic.drivers.modules.ilo.firmware_processor highlighting module code... [ 59%] ironic.drivers.modules.ilo.inspect highlighting module code... [ 60%] ironic.drivers.modules.ilo.management highlighting module code... [ 61%] ironic.drivers.modules.ilo.power highlighting module code... [ 62%] ironic.drivers.modules.ilo.vendor highlighting module code... [ 63%] ironic.drivers.modules.image_cache highlighting module code... [ 64%] ironic.drivers.modules.inspector highlighting module code... [ 65%] ironic.drivers.modules.ipmitool highlighting module code... [ 66%] ironic.drivers.modules.irmc.bios highlighting module code... [ 67%] ironic.drivers.modules.irmc.inspect highlighting module code... [ 68%] ironic.drivers.modules.irmc.management highlighting module code... [ 69%] ironic.drivers.modules.irmc.power highlighting module code... [ 70%] ironic.drivers.modules.irmc.raid highlighting module code... [ 71%] ironic.drivers.modules.network.common highlighting module code... [ 72%] ironic.drivers.modules.network.flat highlighting module code... [ 73%] ironic.drivers.modules.network.neutron highlighting module code... [ 74%] ironic.drivers.modules.network.noop highlighting module code... [ 75%] ironic.drivers.modules.noop highlighting module code... [ 76%] ironic.drivers.modules.noop_mgmt highlighting module code... [ 77%] ironic.drivers.modules.oneview.common highlighting module code... [ 78%] ironic.drivers.modules.oneview.inspect highlighting module code... [ 79%] ironic.drivers.modules.oneview.management highlighting module code... [ 80%] ironic.drivers.modules.oneview.power highlighting module code... [ 81%] ironic.drivers.modules.redfish.management highlighting module code... [ 82%] ironic.drivers.modules.redfish.power highlighting module code... [ 83%] ironic.drivers.modules.snmp highlighting module code... [ 84%] ironic.drivers.modules.storage.cinder highlighting module code... [ 85%] ironic.drivers.modules.storage.external highlighting module code... [ 86%] ironic.drivers.modules.storage.noop highlighting module code... [ 87%] ironic.drivers.modules.ucs.helper highlighting module code... [ 88%] ironic.drivers.modules.ucs.management highlighting module code... [ 89%] ironic.drivers.modules.ucs.power highlighting module code... [ 90%] ironic.drivers.modules.xclarity.management highlighting module code... [ 91%] ironic.drivers.modules.xclarity.power highlighting module code... [ 92%] ironic.drivers.utils highlighting module code... [ 93%] ironic.objects.base highlighting module code... [ 94%] ironic.objects.bios highlighting module code... [ 95%] ironic.objects.conductor highlighting module code... [ 96%] ironic.objects.indirection highlighting module code... [ 97%] ironic.objects.trait highlighting module code... [ 98%] ironic_lib.metrics highlighting module code... [100%] oslo_messaging.rpc.server writing additional pages... search copying images... [ 16%] contributor/../images/sample_trace.svg copying images... [ 33%] contributor/../images/sample_trace_details.svg copying images... [ 50%] contributor/../images/states.svg copying images... [ 66%] install/../images/deployment_architecture_2.png copying images... [ 83%] install/../images/logical_architecture.png copying images... [100%] user/../images/conceptual_architecture.png copying downloadable files... [ 50%] _static/ironic.conf.sample copying downloadable files... [100%] _static/ironic.policy.yaml.sample copying static files... done copying extra files... done dumping search index in English (code: en) ... done dumping object inventory... done build succeeded, 4 warnings. The HTML pages are in debian/ironic-doc/usr/share/doc/ironic-doc/html. mkdir -p /build/ironic-11.1.0/debian/ironic-doc/usr/share/doc/ironic-doc/html/_static touch /build/ironic-11.1.0/debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/toggle.js #rm /build/ironic-11.1.0/debian/ironic-doc/usr/share/doc/ironic-doc/html/search.html dh_sphinxdoc -O--buildsystem=python_distutils dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/docs.js dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/toggle.js dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/webui-popover.js dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/navigation.js dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/bootstrap.min.js make[1]: Leaving directory '/build/ironic-11.1.0' debian/rules override_dh_installchangelogs make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions if [ -e /build/ironic-11.1.0/debian/CHANGELOG ] ; then \ dh_installchangelogs /build/ironic-11.1.0/debian/CHANGELOG ; \ else \ dh_installchangelogs ; \ fi make[1]: Leaving directory '/build/ironic-11.1.0' dh_installdebconf -O--buildsystem=python_distutils debian/rules override_dh_systemd_enable make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions # Create the init scripts and systemd unit files from the template set -e ; set -x ; for i in `ls -1 debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in//` ; \ cp $i $MYINIT.init ; \ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done ++ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in + for i in `ls -1 debian/*.init.in` ++ echo debian/ironic-api.init.in ++ sed s/.init.in// + MYINIT=debian/ironic-api + cp debian/ironic-api.init.in debian/ironic-api.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-api.init.in + for i in `ls -1 debian/*.init.in` ++ echo debian/ironic-conductor.init.in ++ sed s/.init.in// + MYINIT=debian/ironic-conductor + cp debian/ironic-conductor.init.in debian/ironic-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-conductor.init.in # If there's a service.in file, use that one instead of the generated one set -e ; set -x ; for i in `ls -1 debian/*.service.in`; do \ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done ++ ls -1 'debian/*.service.in' ls: cannot access 'debian/*.service.in': No such file or directory # Generate the systemd unit if there's no already existing .service.in set -e ; set -x ; for i in `ls debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in/.service.in/` ; \ if ! [ -e $MYINIT ] ; then \ pkgos-gen-systemd-unit $i ; \ fi \ done ++ ls debian/ironic-api.init.in debian/ironic-conductor.init.in + for i in `ls debian/*.init.in` ++ echo debian/ironic-api.init.in ++ sed s/.init.in/.service.in/ + MYINIT=debian/ironic-api.service.in + '[' -e debian/ironic-api.service.in ']' + pkgos-gen-systemd-unit debian/ironic-api.init.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 ']' + pkgos-gen-systemd-unit debian/ironic-conductor.init.in dh_systemd_enable make[1]: Leaving directory '/build/ironic-11.1.0' debian/rules override_dh_python3 make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions dh_python3 --shebang=/usr/bin/python3 I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-rootwrap I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-dbsync I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-conductor I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-api-wsgi I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-api make[1]: Leaving directory '/build/ironic-11.1.0' debian/rules override_dh_installinit make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions # Create the init scripts and systemd unit files from the template set -e ; set -x ; for i in `ls -1 debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in//` ; \ cp $i $MYINIT.init ; \ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done ++ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in + for i in `ls -1 debian/*.init.in` ++ echo debian/ironic-api.init.in ++ sed s/.init.in// + MYINIT=debian/ironic-api + cp debian/ironic-api.init.in debian/ironic-api.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-api.init.in + for i in `ls -1 debian/*.init.in` ++ echo debian/ironic-conductor.init.in ++ sed s/.init.in// + MYINIT=debian/ironic-conductor + cp debian/ironic-conductor.init.in debian/ironic-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-conductor.init.in # If there's a service.in file, use that one instead of the generated one set -e ; set -x ; for i in `ls -1 debian/*.service.in`; do \ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done ++ ls -1 'debian/*.service.in' ls: cannot access 'debian/*.service.in': No such file or directory # Generate the systemd unit if there's no already existing .service.in set -e ; set -x ; for i in `ls debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in/.service.in/` ; \ if ! [ -e $MYINIT ] ; then \ pkgos-gen-systemd-unit $i ; \ fi \ done ++ ls debian/ironic-api.init.in debian/ironic-conductor.init.in + for i in `ls debian/*.init.in` ++ echo debian/ironic-api.init.in ++ sed s/.init.in/.service.in/ + MYINIT=debian/ironic-api.service.in + '[' -e debian/ironic-api.service.in ']' + pkgos-gen-systemd-unit debian/ironic-api.init.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 ']' + pkgos-gen-systemd-unit debian/ironic-conductor.init.in dh_installinit --error-handler=true make[1]: Leaving directory '/build/ironic-11.1.0' dh_systemd_start -O--buildsystem=python_distutils dh_installlogrotate -O--buildsystem=python_distutils dh_perl -O--buildsystem=python_distutils dh_link -O--buildsystem=python_distutils dh_strip_nondeterminism -O--buildsystem=python_distutils dh_compress -O--buildsystem=python_distutils dh_fixperms -O--buildsystem=python_distutils dh_missing -O--buildsystem=python_distutils dh_installdeb -O--buildsystem=python_distutils debian/rules override_dh_gencontrol make[1]: Entering directory '/build/ironic-11.1.0' pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions py3versions: no X-Python3-Version in control file, using supported versions if dpkg-vendor --derives-from ubuntu ; then \ dh_gencontrol -- -T/build/ironic-11.1.0/debian/ubuntu_control_vars ; \ else \ dh_gencontrol -- -T/build/ironic-11.1.0/debian/debian_control_vars ; \ 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 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-genbuildinfo --build=binary dpkg-genchanges --build=binary >../ironic_11.1.0-6_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . 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) dpkg-genchanges: info: not including original source code in upload I: copying local configuration I: user script /srv/workspace/pbuilder/858869/tmp/hooks/B01_cleanup starting I: user script /srv/workspace/pbuilder/858869/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/858869 and its subdirectories I: Current time: Sun Dec 5 07:58:52 +14 2021 I: pbuilder-time-stamp: 1638640732