https://launchpad.net/~openstack-ubuntu-testing/+archive/ubuntu/stein/+build/18828275 RUN: /usr/share/launchpad-buildd/bin/builder-prep Kernel version: Linux lgw01-amd64-035 4.4.0-174-generic #204-Ubuntu SMP Wed Jan 29 06:41:01 UTC 2020 x86_64 Buildd toolchain package versions: launchpad-buildd_186 python-lpbuildd_186 sbuild_0.67.0-2ubuntu7.1 bzr-builder_0.7.3+bzr174~ppa13~ubuntu14.10.1 bzr_2.7.0-2ubuntu3.1 git-build-recipe_0.3.6~git201906051340.ff11471~ubuntu16.04.1 git_1:2.7.4-0ubuntu1.7 dpkg-dev_1.18.4ubuntu1.6 python-debian_0.1.27ubuntu2. Syncing the system clock with the buildd NTP service... 11 Mar 19:42:49 ntpdate[1911]: adjust time server 10.211.37.1 offset -0.023569 sec RUN: /usr/share/launchpad-buildd/bin/in-target unpack-chroot --backend=chroot --series=disco --arch=amd64 PACKAGEBUILD-18828275 --image-type chroot /home/buildd/filecache-default/020b0022f770b890c357907d03d82568c584d50e Creating target for build PACKAGEBUILD-18828275 RUN: /usr/share/launchpad-buildd/bin/in-target mount-chroot --backend=chroot --series=disco --arch=amd64 PACKAGEBUILD-18828275 Starting target for build PACKAGEBUILD-18828275 RUN: /usr/share/launchpad-buildd/bin/in-target override-sources-list --backend=chroot --series=disco --arch=amd64 PACKAGEBUILD-18828275 'deb http://ppa.launchpad.net/openstack-ubuntu-testing/stein/ubuntu disco main' 'deb http://ftpmaster.internal/ubuntu disco main restricted universe multiverse' 'deb http://ftpmaster.internal/ubuntu disco-security main restricted universe multiverse' 'deb http://ftpmaster.internal/ubuntu disco-updates main restricted universe multiverse' Overriding sources.list in build-PACKAGEBUILD-18828275 RUN: /usr/share/launchpad-buildd/bin/in-target add-trusted-keys --backend=chroot --series=disco --arch=amd64 PACKAGEBUILD-18828275 Adding trusted keys to build-PACKAGEBUILD-18828275 Warning: apt-key output should not be parsed (stdout is not a terminal) OK Warning: apt-key output should not be parsed (stdout is not a terminal) /etc/apt/trusted.gpg -------------------- pub rsa1024 2011-11-30 [SC] 0B91 0003 71B1 27C2 FF62 A627 81DC D842 3B6F 61A6 uid [ unknown] Launchpad PPA for Openstack Ubuntu Testers /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg ------------------------------------------------------ pub rsa4096 2012-05-11 [SC] 790B C727 7767 219C 42C8 6F93 3B4F E6AC C0B2 1F32 uid [ unknown] Ubuntu Archive Automatic Signing Key (2012) /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg ------------------------------------------------------ pub rsa4096 2012-05-11 [SC] 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092 uid [ unknown] Ubuntu CD Image Automatic Signing Key (2012) /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg ------------------------------------------------------ pub rsa4096 2018-09-17 [SC] F6EC B376 2474 EDA9 D21B 7022 8719 20D1 991B C93C uid [ unknown] Ubuntu Archive Automatic Signing Key (2018) RUN: /usr/share/launchpad-buildd/bin/in-target update-debian-chroot --backend=chroot --series=disco --arch=amd64 PACKAGEBUILD-18828275 Updating target for build PACKAGEBUILD-18828275 Get:1 http://ftpmaster.internal/ubuntu disco InRelease [257 kB] Get:2 http://ppa.launchpad.net/openstack-ubuntu-testing/stein/ubuntu disco InRelease [15.4 kB] Get:3 http://ftpmaster.internal/ubuntu disco-security InRelease [97.5 kB] Get:4 http://ftpmaster.internal/ubuntu disco-updates InRelease [97.5 kB] Get:5 http://ftpmaster.internal/ubuntu disco/main amd64 Packages [995 kB] Get:6 http://ftpmaster.internal/ubuntu disco/main Translation-en [509 kB] Get:7 http://ftpmaster.internal/ubuntu disco/restricted amd64 Packages [14.0 kB] Get:8 http://ftpmaster.internal/ubuntu disco/restricted Translation-en [4960 B] Get:9 http://ftpmaster.internal/ubuntu disco/universe amd64 Packages [9065 kB] Get:10 http://ftpmaster.internal/ubuntu disco/universe Translation-en [5251 kB] Get:11 http://ftpmaster.internal/ubuntu disco/multiverse amd64 Packages [157 kB] Get:12 http://ppa.launchpad.net/openstack-ubuntu-testing/stein/ubuntu disco/main amd64 Packages [27.1 kB] Get:13 http://ftpmaster.internal/ubuntu disco/multiverse Translation-en [112 kB] Get:14 http://ftpmaster.internal/ubuntu disco-security/main amd64 Packages [237 kB] Get:15 http://ftpmaster.internal/ubuntu disco-security/main Translation-en [86.1 kB] Get:16 http://ftpmaster.internal/ubuntu disco-security/restricted amd64 Packages [6204 B] Get:17 http://ftpmaster.internal/ubuntu disco-security/restricted Translation-en [1168 B] Get:18 http://ftpmaster.internal/ubuntu disco-security/universe amd64 Packages [290 kB] Get:19 http://ftpmaster.internal/ubuntu disco-security/universe Translation-en [86.9 kB] Get:20 http://ftpmaster.internal/ubuntu disco-security/multiverse amd64 Packages [1460 B] Get:21 http://ftpmaster.internal/ubuntu disco-security/multiverse Translation-en [1000 B] Get:22 http://ftpmaster.internal/ubuntu disco-updates/main amd64 Packages [310 kB] Get:23 http://ftpmaster.internal/ubuntu disco-updates/main Translation-en [120 kB] Get:24 http://ftpmaster.internal/ubuntu disco-updates/restricted amd64 Packages [6584 B] Get:25 http://ftpmaster.internal/ubuntu disco-updates/restricted Translation-en [1200 B] Get:26 http://ftpmaster.internal/ubuntu disco-updates/universe amd64 Packages [341 kB] Get:27 http://ftpmaster.internal/ubuntu disco-updates/universe Translation-en [121 kB] Get:28 http://ftpmaster.internal/ubuntu disco-updates/multiverse amd64 Packages [1736 B] Get:29 http://ftpmaster.internal/ubuntu disco-updates/multiverse Translation-en [1192 B] Get:30 http://ppa.launchpad.net/openstack-ubuntu-testing/stein/ubuntu disco/main Translation-en [12.1 kB] Fetched 18.2 MB in 4s (5077 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Calculating upgrade... The following package was automatically installed and is no longer required: libreadline7 Use 'sudo apt autoremove' to remove it. The following NEW packages will be installed: gcc-9-base libreadline8 The following packages will be upgraded: adduser advancecomp apt base-files base-passwd bash binutils binutils-common binutils-x86-64-linux-gnu bsdutils build-essential bzip2 ca-certificates coreutils cpp cpp-8 dash debconf debianutils diffutils dmsetup dpkg dpkg-dev e2fslibs e2fsprogs fdisk findutils g++ g++-8 gcc gcc-8 gcc-8-base gpg gpg-agent gpgconf gpgv grep gzip init init-system-helpers libacl1 libapparmor1 libapt-pkg5.0 libargon2-1 libasan5 libassuan0 libatomic1 libattr1 libbinutils libblkid1 libbz2-1.0 libc-bin libc-dev-bin libc6 libc6-dev libcap-ng0 libcap2 libcc1-0 libcom-err2 libcomerr2 libcryptsetup12 libdb5.3 libdebconfclient0 libdevmapper1.02.1 libdpkg-perl libext2fs2 libfdisk1 libgcc-8-dev libgcc1 libgcrypt20 libgdbm-compat4 libgdbm6 libgnutls30 libgomp1 libgpg-error0 libhogweed4 libidn11 libidn2-0 libitm1 libjson-c3 libkmod2 liblsan0 liblz4-1 liblzma5 libmount1 libmpfr6 libmpx2 libncurses6 libncursesw6 libnettle6 libp11-kit0 libpam-modules libpam-modules-bin libpam-runtime libpam0g libpcre3 libperl5.28 libpng16-16 libprocps7 libquadmath0 libseccomp2 libsemanage-common libsemanage1 libsmartcols1 libsqlite3-0 libss2 libssl1.1 libstdc++-8-dev libstdc++6 libsystemd0 libtinfo6 libtsan0 libubsan1 libudev1 libunistring2 libuuid1 libzstd1 linux-libc-dev login lsb-base mount multiarch-support ncurses-base ncurses-bin openssl optipng passwd patch perl perl-base perl-modules-5.28 pkgbinarymangler procps readline-common sed systemd systemd-sysv tar tzdata util-linux xz-utils zlib1g 142 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 78.0 MB of archives. After this operation, 7772 kB of additional disk space will be used. Get:1 http://ftpmaster.internal/ubuntu disco/main amd64 libc6-dev amd64 2.29-0ubuntu2 [2541 kB] Get:2 http://ftpmaster.internal/ubuntu disco/main amd64 libc-dev-bin amd64 2.29-0ubuntu2 [71.2 kB] Get:3 http://ftpmaster.internal/ubuntu disco-security/main amd64 linux-libc-dev amd64 5.0.0-38.41 [1123 kB] Get:4 http://ftpmaster.internal/ubuntu disco/main amd64 libc6 amd64 2.29-0ubuntu2 [2707 kB] Get:5 http://ftpmaster.internal/ubuntu disco/main amd64 libc-bin amd64 2.29-0ubuntu2 [626 kB] Get:6 http://ftpmaster.internal/ubuntu disco-security/main amd64 gcc-9-base amd64 9.1.0-2ubuntu2~19.04 [17.7 kB] Get:7 http://ftpmaster.internal/ubuntu disco-security/main amd64 libgcc1 amd64 1:9.1.0-2ubuntu2~19.04 [40.6 kB] Get:8 http://ftpmaster.internal/ubuntu disco-updates/main amd64 base-files amd64 10.1ubuntu9.2 [59.9 kB] Get:9 http://ftpmaster.internal/ubuntu disco/main amd64 debianutils amd64 4.8.6.1 [85.5 kB] Get:10 http://ftpmaster.internal/ubuntu disco-updates/main amd64 bash amd64 5.0-3ubuntu1.1 [636 kB] Get:11 http://ftpmaster.internal/ubuntu disco-updates/main amd64 bsdutils amd64 1:2.33.1-0.1ubuntu3 [63.5 kB] Get:12 http://ftpmaster.internal/ubuntu disco/main amd64 coreutils amd64 8.30-1ubuntu1 [1243 kB] Get:13 http://ftpmaster.internal/ubuntu disco/main amd64 lsb-base all 10.2019031300ubuntu1 [12.5 kB] Get:14 http://ftpmaster.internal/ubuntu disco/main amd64 tar amd64 1.30+dfsg-5 [243 kB] Get:15 http://ftpmaster.internal/ubuntu disco-updates/main amd64 dpkg amd64 1.19.6ubuntu1.1 [1133 kB] Get:16 http://ftpmaster.internal/ubuntu disco/main amd64 libperl5.28 amd64 5.28.1-6 [3827 kB] Get:17 http://ftpmaster.internal/ubuntu disco/main amd64 perl amd64 5.28.1-6 [204 kB] Get:18 http://ftpmaster.internal/ubuntu disco/main amd64 perl-base amd64 5.28.1-6 [1511 kB] Get:19 http://ftpmaster.internal/ubuntu disco/main amd64 perl-modules-5.28 all 5.28.1-6 [2818 kB] Get:20 http://ftpmaster.internal/ubuntu disco-security/main amd64 bzip2 amd64 1.0.6-9ubuntu0.19.04.1 [33.7 kB] Get:21 http://ftpmaster.internal/ubuntu disco-security/main amd64 libbz2-1.0 amd64 1.0.6-9ubuntu0.19.04.1 [32.4 kB] Get:22 http://ftpmaster.internal/ubuntu disco-security/main amd64 libdb5.3 amd64 5.3.28+dfsg1-0.5ubuntu0.1 [672 kB] Get:23 http://ftpmaster.internal/ubuntu disco/main amd64 libgdbm6 amd64 1.18.1-4 [27.4 kB] Get:24 http://ftpmaster.internal/ubuntu disco/main amd64 libgdbm-compat4 amd64 1.18.1-4 [6152 B] Get:25 http://ftpmaster.internal/ubuntu disco/main amd64 zlib1g amd64 1:1.2.11.dfsg-1ubuntu2 [54.0 kB] Get:26 http://ftpmaster.internal/ubuntu disco-updates/main amd64 debconf all 1.5.71ubuntu1 [122 kB] Get:27 http://ftpmaster.internal/ubuntu disco/main amd64 dash amd64 0.5.10.2-4ubuntu1 [85.8 kB] Get:28 http://ftpmaster.internal/ubuntu disco/main amd64 diffutils amd64 1:3.7-2 [200 kB] Get:29 http://ftpmaster.internal/ubuntu disco/main amd64 findutils amd64 4.6.0+git+20190209-2 [329 kB] Get:30 http://ftpmaster.internal/ubuntu disco/main amd64 grep amd64 3.3-1 [149 kB] Get:31 http://ftpmaster.internal/ubuntu disco/main amd64 gzip amd64 1.9-3 [93.8 kB] Get:32 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libsmartcols1 amd64 2.33.1-0.1ubuntu3 [91.8 kB] Get:33 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libuuid1 amd64 2.33.1-0.1ubuntu3 [20.7 kB] Get:34 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libblkid1 amd64 2.33.1-0.1ubuntu3 [134 kB] Get:35 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libfdisk1 amd64 2.33.1-0.1ubuntu3 [173 kB] Get:36 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libmount1 amd64 2.33.1-0.1ubuntu3 [145 kB] Get:37 http://ftpmaster.internal/ubuntu disco/main amd64 libncurses6 amd64 6.1+20181013-2ubuntu2 [101 kB] Get:38 http://ftpmaster.internal/ubuntu disco/main amd64 libtinfo6 amd64 6.1+20181013-2ubuntu2 [83.8 kB] Get:39 http://ftpmaster.internal/ubuntu disco/main amd64 libncursesw6 amd64 6.1+20181013-2ubuntu2 [131 kB] Get:40 http://ftpmaster.internal/ubuntu disco-updates/main amd64 fdisk amd64 2.33.1-0.1ubuntu3 [119 kB] Get:41 http://ftpmaster.internal/ubuntu disco/main amd64 login amd64 1:4.5-1.1ubuntu2 [264 kB] Get:42 http://ftpmaster.internal/ubuntu disco-updates/main amd64 util-linux amd64 2.33.1-0.1ubuntu3 [1002 kB] Get:43 http://ftpmaster.internal/ubuntu disco/main amd64 ncurses-bin amd64 6.1+20181013-2ubuntu2 [164 kB] Get:44 http://ftpmaster.internal/ubuntu disco/main amd64 sed amd64 4.7-1 [190 kB] Get:45 http://ftpmaster.internal/ubuntu disco/main amd64 libdebconfclient0 amd64 0.247ubuntu1 [6424 B] Get:46 http://ftpmaster.internal/ubuntu disco/main amd64 base-passwd amd64 3.5.46 [47.4 kB] Get:47 http://ftpmaster.internal/ubuntu disco/main amd64 init-system-helpers all 1.56+nmu1 [38.2 kB] Get:48 http://ftpmaster.internal/ubuntu disco/main amd64 ncurses-base all 6.1+20181013-2ubuntu2 [17.9 kB] Get:49 http://ftpmaster.internal/ubuntu disco/main amd64 libnettle6 amd64 3.4.1-1 [110 kB] Get:50 http://ftpmaster.internal/ubuntu disco/main amd64 libhogweed4 amd64 3.4.1-1 [140 kB] Get:51 http://ftpmaster.internal/ubuntu disco/main amd64 libunistring2 amd64 0.9.10-1ubuntu2 [369 kB] Get:52 http://ftpmaster.internal/ubuntu disco-security/main amd64 libidn2-0 amd64 2.0.5-1ubuntu0.3 [49.6 kB] Get:53 http://ftpmaster.internal/ubuntu disco/main amd64 libp11-kit0 amd64 0.23.15-2 [184 kB] Get:54 http://ftpmaster.internal/ubuntu disco-security/main amd64 libgnutls30 amd64 3.6.5-2ubuntu1.1 [760 kB] Get:55 http://ftpmaster.internal/ubuntu disco/main amd64 liblz4-1 amd64 1.8.3-1ubuntu1 [71.7 kB] Get:56 http://ftpmaster.internal/ubuntu disco/main amd64 liblzma5 amd64 5.2.4-1 [92.4 kB] Get:57 http://ftpmaster.internal/ubuntu disco-security/main amd64 libstdc++6 amd64 9.1.0-2ubuntu2~19.04 [509 kB] Get:58 http://ftpmaster.internal/ubuntu disco-updates/main amd64 systemd-sysv amd64 240-6ubuntu5.8 [9376 B] Get:59 http://ftpmaster.internal/ubuntu disco/main amd64 libacl1 amd64 2.2.53-4 [18.3 kB] Get:60 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libapparmor1 amd64 2.13.2-9ubuntu6.1 [34.5 kB] Get:61 http://ftpmaster.internal/ubuntu disco/main amd64 libcap2 amd64 1:2.25-2 [13.3 kB] Get:62 http://ftpmaster.internal/ubuntu disco/main amd64 libargon2-1 amd64 0~20171227-0.2 [19.2 kB] Get:63 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libudev1 amd64 240-6ubuntu5.8 [64.1 kB] Get:64 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libdevmapper1.02.1 amd64 2:1.02.145-4.1ubuntu4.2 [126 kB] Get:65 http://ftpmaster.internal/ubuntu disco/main amd64 libjson-c3 amd64 0.12.1+ds-2 [22.2 kB] Get:66 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libssl1.1 amd64 1.1.1b-1ubuntu2.4 [1305 kB] Get:67 http://ftpmaster.internal/ubuntu disco/main amd64 libcryptsetup12 amd64 2:2.1.0-1ubuntu1 [148 kB] Get:68 http://ftpmaster.internal/ubuntu disco/main amd64 libgpg-error0 amd64 1.35-1 [57.7 kB] Get:69 http://ftpmaster.internal/ubuntu disco/main amd64 libidn11 amd64 1.33-2.2ubuntu2 [46.2 kB] Get:70 http://ftpmaster.internal/ubuntu disco/main amd64 libkmod2 amd64 25-1ubuntu4 [41.7 kB] Get:71 http://ftpmaster.internal/ubuntu disco/main amd64 libpam0g amd64 1.3.1-5ubuntu1 [56.2 kB] Get:72 http://ftpmaster.internal/ubuntu disco-security/main amd64 libseccomp2 amd64 2.4.1-0ubuntu0.19.04.3 [39.2 kB] Get:73 http://ftpmaster.internal/ubuntu disco-updates/main amd64 mount amd64 2.33.1-0.1ubuntu3 [113 kB] Get:74 http://ftpmaster.internal/ubuntu disco/main amd64 libsemanage-common all 2.8-2 [7016 B] Get:75 http://ftpmaster.internal/ubuntu disco/main amd64 libsemanage1 amd64 2.8-2 [85.2 kB] Get:76 http://ftpmaster.internal/ubuntu disco/main amd64 libpam-modules-bin amd64 1.3.1-5ubuntu1 [38.1 kB] Get:77 http://ftpmaster.internal/ubuntu disco/main amd64 libpam-modules amd64 1.3.1-5ubuntu1 [248 kB] Get:78 http://ftpmaster.internal/ubuntu disco/main amd64 passwd amd64 1:4.5-1.1ubuntu2 [816 kB] Get:79 http://ftpmaster.internal/ubuntu disco/main amd64 adduser all 3.118ubuntu1 [163 kB] Get:80 http://ftpmaster.internal/ubuntu disco-updates/main amd64 systemd amd64 240-6ubuntu5.8 [3333 kB] Get:81 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libsystemd0 amd64 240-6ubuntu5.8 [243 kB] Get:82 http://ftpmaster.internal/ubuntu disco/main amd64 libzstd1 amd64 1.3.8+dfsg-3 [226 kB] Get:83 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libapt-pkg5.0 amd64 1.8.3 [821 kB] Get:84 http://ftpmaster.internal/ubuntu disco-security/main amd64 libgcrypt20 amd64 1.8.4-3ubuntu1.1 [419 kB] Get:85 http://ftpmaster.internal/ubuntu disco/main amd64 gpgv amd64 2.2.12-1ubuntu3 [197 kB] Get:86 http://ftpmaster.internal/ubuntu disco-updates/main amd64 apt amd64 1.8.3 [1273 kB] Get:87 http://ftpmaster.internal/ubuntu disco-security/main amd64 libext2fs2 amd64 1.44.6-1ubuntu0.2 [160 kB] Get:88 http://ftpmaster.internal/ubuntu disco-security/main amd64 e2fsprogs amd64 1.44.6-1ubuntu0.2 [516 kB] Get:89 http://ftpmaster.internal/ubuntu disco/main amd64 init amd64 1.56+nmu1 [6080 B] Get:90 http://ftpmaster.internal/ubuntu disco/main amd64 libattr1 amd64 1:2.4.48-4 [12.6 kB] Get:91 http://ftpmaster.internal/ubuntu disco/main amd64 libcap-ng0 amd64 0.7.9-2 [11.0 kB] Get:92 http://ftpmaster.internal/ubuntu disco/main amd64 libpam-runtime all 1.3.1-5ubuntu1 [37.3 kB] Get:93 http://ftpmaster.internal/ubuntu disco/main amd64 libpcre3 amd64 2:8.39-12 [231 kB] Get:94 http://ftpmaster.internal/ubuntu disco-security/main amd64 libcom-err2 amd64 1.44.6-1ubuntu0.2 [9612 B] Get:95 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libprocps7 amd64 2:3.3.15-2ubuntu2.1 [32.8 kB] Get:96 http://ftpmaster.internal/ubuntu disco-security/main amd64 libss2 amd64 1.44.6-1ubuntu0.2 [11.1 kB] Get:97 http://ftpmaster.internal/ubuntu disco-updates/main amd64 procps amd64 2:3.3.15-2ubuntu2.1 [231 kB] Get:98 http://ftpmaster.internal/ubuntu disco-updates/main amd64 openssl amd64 1.1.1b-1ubuntu2.4 [624 kB] Get:99 http://ftpmaster.internal/ubuntu disco/main amd64 ca-certificates all 20190110 [146 kB] Get:100 http://ftpmaster.internal/ubuntu disco-updates/main amd64 dmsetup amd64 2:1.02.145-4.1ubuntu4.2 [74.4 kB] Get:101 http://ftpmaster.internal/ubuntu disco/main amd64 readline-common all 8.0-1 [53.4 kB] Get:102 http://ftpmaster.internal/ubuntu disco/main amd64 libreadline8 amd64 8.0-1 [130 kB] Get:103 http://ftpmaster.internal/ubuntu disco-security/main amd64 libsqlite3-0 amd64 3.27.2-2ubuntu0.2 [534 kB] Get:104 http://ftpmaster.internal/ubuntu disco-security/main amd64 tzdata all 2019c-0ubuntu0.19.04 [188 kB] Get:105 http://ftpmaster.internal/ubuntu disco/main amd64 xz-utils amd64 5.2.4-1 [82.5 kB] Get:106 http://ftpmaster.internal/ubuntu disco/main amd64 libpng16-16 amd64 1.6.36-6 [179 kB] Get:107 http://ftpmaster.internal/ubuntu disco/main amd64 multiarch-support amd64 2.29-0ubuntu2 [6916 B] Get:108 http://ftpmaster.internal/ubuntu disco-security/main amd64 advancecomp amd64 2.1-1ubuntu0.19.04.1 [205 kB] Get:109 http://ftpmaster.internal/ubuntu disco/main amd64 binutils-x86-64-linux-gnu amd64 2.32-7ubuntu4 [1852 kB] Get:110 http://ftpmaster.internal/ubuntu disco/main amd64 libbinutils amd64 2.32-7ubuntu4 [468 kB] Get:111 http://ftpmaster.internal/ubuntu disco/main amd64 binutils amd64 2.32-7ubuntu4 [3384 B] Get:112 http://ftpmaster.internal/ubuntu disco/main amd64 binutils-common amd64 2.32-7ubuntu4 [200 kB] Get:113 http://ftpmaster.internal/ubuntu disco-security/main amd64 libubsan1 amd64 9.1.0-2ubuntu2~19.04 [130 kB] Get:114 http://ftpmaster.internal/ubuntu disco-security/main amd64 libtsan0 amd64 9.1.0-2ubuntu2~19.04 [300 kB] Get:115 http://ftpmaster.internal/ubuntu disco-security/main amd64 libgomp1 amd64 9.1.0-2ubuntu2~19.04 [89.0 kB] Get:116 http://ftpmaster.internal/ubuntu disco-security/main amd64 libitm1 amd64 9.1.0-2ubuntu2~19.04 [28.0 kB] Get:117 http://ftpmaster.internal/ubuntu disco-security/main amd64 libatomic1 amd64 9.1.0-2ubuntu2~19.04 [9168 B] Get:118 http://ftpmaster.internal/ubuntu disco-security/main amd64 libasan5 amd64 9.1.0-2ubuntu2~19.04 [393 kB] Get:119 http://ftpmaster.internal/ubuntu disco-security/main amd64 liblsan0 amd64 9.1.0-2ubuntu2~19.04 [139 kB] Get:120 http://ftpmaster.internal/ubuntu disco/main amd64 libmpx2 amd64 8.3.0-6ubuntu1 [11.6 kB] Get:121 http://ftpmaster.internal/ubuntu disco-security/main amd64 libquadmath0 amd64 9.1.0-2ubuntu2~19.04 [145 kB] Get:122 http://ftpmaster.internal/ubuntu disco/main amd64 g++-8 amd64 8.3.0-6ubuntu1 [10.1 MB] Get:123 http://ftpmaster.internal/ubuntu disco/main amd64 gcc-8 amd64 8.3.0-6ubuntu1 [9802 kB] Get:124 http://ftpmaster.internal/ubuntu disco/main amd64 libstdc++-8-dev amd64 8.3.0-6ubuntu1 [1542 kB] Get:125 http://ftpmaster.internal/ubuntu disco/main amd64 libgcc-8-dev amd64 8.3.0-6ubuntu1 [2305 kB] Get:126 http://ftpmaster.internal/ubuntu disco-security/main amd64 libcc1-0 amd64 9.1.0-2ubuntu2~19.04 [48.5 kB] Get:127 http://ftpmaster.internal/ubuntu disco/main amd64 cpp-8 amd64 8.3.0-6ubuntu1 [8935 kB] Get:128 http://ftpmaster.internal/ubuntu disco/main amd64 gcc-8-base amd64 8.3.0-6ubuntu1 [18.6 kB] Get:129 http://ftpmaster.internal/ubuntu disco/main amd64 libmpfr6 amd64 4.0.2-1 [240 kB] Get:130 http://ftpmaster.internal/ubuntu disco/main amd64 g++ amd64 4:8.3.0-1ubuntu3 [1600 B] Get:131 http://ftpmaster.internal/ubuntu disco/main amd64 gcc amd64 4:8.3.0-1ubuntu3 [5212 B] Get:132 http://ftpmaster.internal/ubuntu disco/main amd64 cpp amd64 4:8.3.0-1ubuntu3 [27.6 kB] Get:133 http://ftpmaster.internal/ubuntu disco-updates/main amd64 dpkg-dev all 1.19.6ubuntu1.1 [675 kB] Get:134 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libdpkg-perl all 1.19.6ubuntu1.1 [230 kB] Get:135 http://ftpmaster.internal/ubuntu disco-security/main amd64 patch amd64 2.7.6-3ubuntu0.1 [105 kB] Get:136 http://ftpmaster.internal/ubuntu disco/main amd64 build-essential amd64 12.6ubuntu1 [4664 B] Get:137 http://ftpmaster.internal/ubuntu disco-security/main amd64 e2fslibs amd64 1.44.6-1ubuntu0.2 [2708 B] Get:138 http://ftpmaster.internal/ubuntu disco/main amd64 libassuan0 amd64 2.5.2-1 [35.1 kB] Get:139 http://ftpmaster.internal/ubuntu disco/main amd64 gpg amd64 2.2.12-1ubuntu3 [475 kB] Get:140 http://ftpmaster.internal/ubuntu disco/main amd64 gpgconf amd64 2.2.12-1ubuntu3 [123 kB] Get:141 http://ftpmaster.internal/ubuntu disco/main amd64 gpg-agent amd64 2.2.12-1ubuntu3 [229 kB] Get:142 http://ftpmaster.internal/ubuntu disco-security/main amd64 libcomerr2 amd64 1.44.6-1ubuntu0.2 [2708 B] Get:143 http://ftpmaster.internal/ubuntu disco/main amd64 optipng amd64 0.7.7-1 [83.9 kB] Get:144 http://ftpmaster.internal/ubuntu disco/main amd64 pkgbinarymangler all 144 [55.2 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 78.0 MB in 1s (56.3 MB/s) (Reading database ... 12665 files and directories currently installed.) Preparing to unpack .../libc6-dev_2.29-0ubuntu2_amd64.deb ... Unpacking libc6-dev:amd64 (2.29-0ubuntu2) over (2.28-0ubuntu1) ... Preparing to unpack .../libc-dev-bin_2.29-0ubuntu2_amd64.deb ... Unpacking libc-dev-bin (2.29-0ubuntu2) over (2.28-0ubuntu1) ... Preparing to unpack .../linux-libc-dev_5.0.0-38.41_amd64.deb ... Unpacking linux-libc-dev:amd64 (5.0.0-38.41) over (4.18.0-11.12) ... Preparing to unpack .../libc6_2.29-0ubuntu2_amd64.deb ... Unpacking libc6:amd64 (2.29-0ubuntu2) over (2.28-0ubuntu1) ... Setting up libc6:amd64 (2.29-0ubuntu2) ... (Reading database ... 12693 files and directories currently installed.) Preparing to unpack .../libc-bin_2.29-0ubuntu2_amd64.deb ... Unpacking libc-bin (2.29-0ubuntu2) over (2.28-0ubuntu1) ... Setting up libc-bin (2.29-0ubuntu2) ... Selecting previously unselected package gcc-9-base:amd64. (Reading database ... 12693 files and directories currently installed.) Preparing to unpack .../gcc-9-base_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking gcc-9-base:amd64 (9.1.0-2ubuntu2~19.04) ... Setting up gcc-9-base:amd64 (9.1.0-2ubuntu2~19.04) ... (Reading database ... 12699 files and directories currently installed.) Preparing to unpack .../libgcc1_1%3a9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking libgcc1:amd64 (1:9.1.0-2ubuntu2~19.04) over (1:8.2.0-12ubuntu1) ... Setting up libgcc1:amd64 (1:9.1.0-2ubuntu2~19.04) ... (Reading database ... 12699 files and directories currently installed.) Preparing to unpack .../base-files_10.1ubuntu9.2_amd64.deb ... Unpacking base-files (10.1ubuntu9.2) over (10.1ubuntu8) ... Setting up base-files (10.1ubuntu9.2) ... Installing new version of config file /etc/issue ... Installing new version of config file /etc/issue.net ... Installing new version of config file /etc/lsb-release ... Installing new version of config file /etc/update-motd.d/50-motd-news ... (Reading database ... 12699 files and directories currently installed.) Preparing to unpack .../debianutils_4.8.6.1_amd64.deb ... Unpacking debianutils (4.8.6.1) over (4.8.6) ... Setting up debianutils (4.8.6.1) ... (Reading database ... 12699 files and directories currently installed.) Preparing to unpack .../bash_5.0-3ubuntu1.1_amd64.deb ... Unpacking bash (5.0-3ubuntu1.1) over (4.4.18-2ubuntu3) ... Setting up bash (5.0-3ubuntu1.1) ... update-alternatives: using /usr/share/man/man7/bash-builtins.7.gz to provide /usr/share/man/man7/builtins.7.gz (builtins.7.gz) in auto mode (Reading database ... 12699 files and directories currently installed.) Preparing to unpack .../bsdutils_1%3a2.33.1-0.1ubuntu3_amd64.deb ... Unpacking bsdutils (1:2.33.1-0.1ubuntu3) over (1:2.32-0.1ubuntu2) ... Setting up bsdutils (1:2.33.1-0.1ubuntu3) ... (Reading database ... 12699 files and directories currently installed.) Preparing to unpack .../coreutils_8.30-1ubuntu1_amd64.deb ... Unpacking coreutils (8.30-1ubuntu1) over (8.28-1ubuntu2) ... Setting up coreutils (8.30-1ubuntu1) ... (Reading database ... 12699 files and directories currently installed.) Preparing to unpack .../lsb-base_10.2019031300ubuntu1_all.deb ... Unpacking lsb-base (10.2019031300ubuntu1) over (9.20170808ubuntu1) ... Preparing to unpack .../tar_1.30+dfsg-5_amd64.deb ... Unpacking tar (1.30+dfsg-5) over (1.30+dfsg-3) ... Setting up tar (1.30+dfsg-5) ... (Reading database ... 12698 files and directories currently installed.) Preparing to unpack .../dpkg_1.19.6ubuntu1.1_amd64.deb ... Unpacking dpkg (1.19.6ubuntu1.1) over (1.19.2ubuntu1) ... Setting up dpkg (1.19.6ubuntu1.1) ... Installing new version of config file /etc/cron.daily/dpkg ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../libperl5.28_5.28.1-6_amd64.deb ... Unpacking libperl5.28:amd64 (5.28.1-6) over (5.28.1-3) ... Preparing to unpack .../perl_5.28.1-6_amd64.deb ... Unpacking perl (5.28.1-6) over (5.28.1-3) ... Preparing to unpack .../perl-base_5.28.1-6_amd64.deb ... Unpacking perl-base (5.28.1-6) over (5.28.1-3) ... Setting up perl-base (5.28.1-6) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../perl-modules-5.28_5.28.1-6_all.deb ... Unpacking perl-modules-5.28 (5.28.1-6) over (5.28.1-3) ... Preparing to unpack .../bzip2_1.0.6-9ubuntu0.19.04.1_amd64.deb ... Unpacking bzip2 (1.0.6-9ubuntu0.19.04.1) over (1.0.6-9) ... Preparing to unpack .../libbz2-1.0_1.0.6-9ubuntu0.19.04.1_amd64.deb ... Unpacking libbz2-1.0:amd64 (1.0.6-9ubuntu0.19.04.1) over (1.0.6-9) ... Setting up libbz2-1.0:amd64 (1.0.6-9ubuntu0.19.04.1) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../libdb5.3_5.3.28+dfsg1-0.5ubuntu0.1_amd64.deb ... Unpacking libdb5.3:amd64 (5.3.28+dfsg1-0.5ubuntu0.1) over (5.3.28+dfsg1-0.2) ... Setting up libdb5.3:amd64 (5.3.28+dfsg1-0.5ubuntu0.1) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../libgdbm6_1.18.1-4_amd64.deb ... Unpacking libgdbm6:amd64 (1.18.1-4) over (1.18.1-2) ... Preparing to unpack .../libgdbm-compat4_1.18.1-4_amd64.deb ... Unpacking libgdbm-compat4:amd64 (1.18.1-4) over (1.18.1-2) ... Preparing to unpack .../zlib1g_1%3a1.2.11.dfsg-1ubuntu2_amd64.deb ... Unpacking zlib1g:amd64 (1:1.2.11.dfsg-1ubuntu2) over (1:1.2.11.dfsg-0ubuntu2) ... Setting up zlib1g:amd64 (1:1.2.11.dfsg-1ubuntu2) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../debconf_1.5.71ubuntu1_all.deb ... Unpacking debconf (1.5.71ubuntu1) over (1.5.69) ... Setting up debconf (1.5.71ubuntu1) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../dash_0.5.10.2-4ubuntu1_amd64.deb ... Unpacking dash (0.5.10.2-4ubuntu1) over (0.5.10.2-2) ... Setting up dash (0.5.10.2-4ubuntu1) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../diffutils_1%3a3.7-2_amd64.deb ... Unpacking diffutils (1:3.7-2) over (1:3.6-1) ... Setting up diffutils (1:3.7-2) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../findutils_4.6.0+git+20190209-2_amd64.deb ... Unpacking findutils (4.6.0+git+20190209-2) over (4.6.0+git+20181018-1) ... Setting up findutils (4.6.0+git+20190209-2) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../archives/grep_3.3-1_amd64.deb ... Unpacking grep (3.3-1) over (3.1-3) ... Setting up grep (3.3-1) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../archives/gzip_1.9-3_amd64.deb ... Unpacking gzip (1.9-3) over (1.6-5ubuntu2) ... Setting up gzip (1.9-3) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../libsmartcols1_2.33.1-0.1ubuntu3_amd64.deb ... Unpacking libsmartcols1:amd64 (2.33.1-0.1ubuntu3) over (2.32-0.1ubuntu2) ... Setting up libsmartcols1:amd64 (2.33.1-0.1ubuntu3) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../libuuid1_2.33.1-0.1ubuntu3_amd64.deb ... Unpacking libuuid1:amd64 (2.33.1-0.1ubuntu3) over (2.32-0.1ubuntu2) ... Setting up libuuid1:amd64 (2.33.1-0.1ubuntu3) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../libblkid1_2.33.1-0.1ubuntu3_amd64.deb ... Unpacking libblkid1:amd64 (2.33.1-0.1ubuntu3) over (2.32-0.1ubuntu2) ... Setting up libblkid1:amd64 (2.33.1-0.1ubuntu3) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../libfdisk1_2.33.1-0.1ubuntu3_amd64.deb ... Unpacking libfdisk1:amd64 (2.33.1-0.1ubuntu3) over (2.32-0.1ubuntu2) ... Setting up libfdisk1:amd64 (2.33.1-0.1ubuntu3) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../libmount1_2.33.1-0.1ubuntu3_amd64.deb ... Unpacking libmount1:amd64 (2.33.1-0.1ubuntu3) over (2.32-0.1ubuntu2) ... Setting up libmount1:amd64 (2.33.1-0.1ubuntu3) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../libncurses6_6.1+20181013-2ubuntu2_amd64.deb ... Unpacking libncurses6:amd64 (6.1+20181013-2ubuntu2) over (6.1+20180210-4ubuntu1) ... Preparing to unpack .../libtinfo6_6.1+20181013-2ubuntu2_amd64.deb ... Unpacking libtinfo6:amd64 (6.1+20181013-2ubuntu2) over (6.1+20180210-4ubuntu1) ... Setting up libtinfo6:amd64 (6.1+20181013-2ubuntu2) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../libncursesw6_6.1+20181013-2ubuntu2_amd64.deb ... Unpacking libncursesw6:amd64 (6.1+20181013-2ubuntu2) over (6.1+20180210-4ubuntu1) ... Setting up libncursesw6:amd64 (6.1+20181013-2ubuntu2) ... (Reading database ... 12706 files and directories currently installed.) Preparing to unpack .../fdisk_2.33.1-0.1ubuntu3_amd64.deb ... Unpacking fdisk (2.33.1-0.1ubuntu3) over (2.32-0.1ubuntu2) ... Setting up fdisk (2.33.1-0.1ubuntu3) ... (Reading database ... 12709 files and directories currently installed.) Preparing to unpack .../util-linux_2.33.1-0.1ubuntu3_amd64.deb ... Unpacking util-linux (2.33.1-0.1ubuntu3) over (2.32-0.1ubuntu2) ... Replacing files in old package login (1:4.5-1ubuntu1) ... Preparing to unpack .../login_1%3a4.5-1.1ubuntu2_amd64.deb ... Unpacking login (1:4.5-1.1ubuntu2) over (1:4.5-1ubuntu1) ... Setting up login (1:4.5-1.1ubuntu2) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../ncurses-bin_6.1+20181013-2ubuntu2_amd64.deb ... Unpacking ncurses-bin (6.1+20181013-2ubuntu2) over (6.1+20180210-4ubuntu1) ... Setting up ncurses-bin (6.1+20181013-2ubuntu2) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../archives/sed_4.7-1_amd64.deb ... Unpacking sed (4.7-1) over (4.5-2) ... Setting up sed (4.7-1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libdebconfclient0_0.247ubuntu1_amd64.deb ... Unpacking libdebconfclient0:amd64 (0.247ubuntu1) over (0.244ubuntu1) ... Setting up libdebconfclient0:amd64 (0.247ubuntu1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../base-passwd_3.5.46_amd64.deb ... Unpacking base-passwd (3.5.46) over (3.5.45) ... Setting up base-passwd (3.5.46) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../init-system-helpers_1.56+nmu1_all.deb ... Unpacking init-system-helpers (1.56+nmu1) over (1.56) ... Setting up init-system-helpers (1.56+nmu1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../ncurses-base_6.1+20181013-2ubuntu2_all.deb ... Unpacking ncurses-base (6.1+20181013-2ubuntu2) over (6.1+20180210-4ubuntu1) ... Setting up ncurses-base (6.1+20181013-2ubuntu2) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libnettle6_3.4.1-1_amd64.deb ... Unpacking libnettle6:amd64 (3.4.1-1) over (3.4.1~rc1-1) ... Setting up libnettle6:amd64 (3.4.1-1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libhogweed4_3.4.1-1_amd64.deb ... Unpacking libhogweed4:amd64 (3.4.1-1) over (3.4.1~rc1-1) ... Setting up libhogweed4:amd64 (3.4.1-1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libunistring2_0.9.10-1ubuntu2_amd64.deb ... Unpacking libunistring2:amd64 (0.9.10-1ubuntu2) over (0.9.10-1ubuntu1) ... Setting up libunistring2:amd64 (0.9.10-1ubuntu2) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libidn2-0_2.0.5-1ubuntu0.3_amd64.deb ... Unpacking libidn2-0:amd64 (2.0.5-1ubuntu0.3) over (2.0.5-1) ... Setting up libidn2-0:amd64 (2.0.5-1ubuntu0.3) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libp11-kit0_0.23.15-2_amd64.deb ... Unpacking libp11-kit0:amd64 (0.23.15-2) over (0.23.14-2) ... Setting up libp11-kit0:amd64 (0.23.15-2) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libgnutls30_3.6.5-2ubuntu1.1_amd64.deb ... Unpacking libgnutls30:amd64 (3.6.5-2ubuntu1.1) over (3.6.4-2ubuntu2) ... Setting up libgnutls30:amd64 (3.6.5-2ubuntu1.1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../liblz4-1_1.8.3-1ubuntu1_amd64.deb ... Unpacking liblz4-1:amd64 (1.8.3-1ubuntu1) over (1.8.2-1ubuntu1) ... Setting up liblz4-1:amd64 (1.8.3-1ubuntu1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../liblzma5_5.2.4-1_amd64.deb ... Unpacking liblzma5:amd64 (5.2.4-1) over (5.2.2-1.3) ... Setting up liblzma5:amd64 (5.2.4-1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libstdc++6_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking libstdc++6:amd64 (9.1.0-2ubuntu2~19.04) over (8.2.0-12ubuntu1) ... Setting up libstdc++6:amd64 (9.1.0-2ubuntu2~19.04) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../systemd-sysv_240-6ubuntu5.8_amd64.deb ... Unpacking systemd-sysv (240-6ubuntu5.8) over (239-7ubuntu15) ... Preparing to unpack .../libacl1_2.2.53-4_amd64.deb ... Unpacking libacl1:amd64 (2.2.53-4) over (2.2.52-3build1) ... Setting up libacl1:amd64 (2.2.53-4) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libapparmor1_2.13.2-9ubuntu6.1_amd64.deb ... Unpacking libapparmor1:amd64 (2.13.2-9ubuntu6.1) over (2.12-4ubuntu10) ... Preparing to unpack .../libcap2_1%3a2.25-2_amd64.deb ... Unpacking libcap2:amd64 (1:2.25-2) over (1:2.25-1.2) ... Preparing to unpack .../libargon2-1_0~20171227-0.2_amd64.deb ... Unpacking libargon2-1:amd64 (0~20171227-0.2) over (0~20171227-0.1) ... Preparing to unpack .../libudev1_240-6ubuntu5.8_amd64.deb ... Unpacking libudev1:amd64 (240-6ubuntu5.8) over (239-7ubuntu15) ... Setting up libudev1:amd64 (240-6ubuntu5.8) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libdevmapper1.02.1_2%3a1.02.145-4.1ubuntu4.2_amd64.deb ... Unpacking libdevmapper1.02.1:amd64 (2:1.02.145-4.1ubuntu4.2) over (2:1.02.145-4.1ubuntu4) ... Preparing to unpack .../libjson-c3_0.12.1+ds-2_amd64.deb ... Unpacking libjson-c3:amd64 (0.12.1+ds-2) over (0.12.1-1.3) ... Preparing to unpack .../libssl1.1_1.1.1b-1ubuntu2.4_amd64.deb ... Unpacking libssl1.1:amd64 (1.1.1b-1ubuntu2.4) over (1.1.1a-1ubuntu2) ... Preparing to unpack .../libcryptsetup12_2%3a2.1.0-1ubuntu1_amd64.deb ... Unpacking libcryptsetup12:amd64 (2:2.1.0-1ubuntu1) over (2:2.0.4-2ubuntu2) ... Preparing to unpack .../libgpg-error0_1.35-1_amd64.deb ... Unpacking libgpg-error0:amd64 (1.35-1) over (1.32-3) ... Setting up libgpg-error0:amd64 (1.35-1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libidn11_1.33-2.2ubuntu2_amd64.deb ... Unpacking libidn11:amd64 (1.33-2.2ubuntu2) over (1.33-2.2ubuntu1) ... Preparing to unpack .../libkmod2_25-1ubuntu4_amd64.deb ... Unpacking libkmod2:amd64 (25-1ubuntu4) over (25-1ubuntu2) ... Preparing to unpack .../libpam0g_1.3.1-5ubuntu1_amd64.deb ... Unpacking libpam0g:amd64 (1.3.1-5ubuntu1) over (1.1.8-3.6ubuntu2) ... Setting up libpam0g:amd64 (1.3.1-5ubuntu1) ... Checking for services that may need to be restarted...Checking init scripts... Nothing to restart. (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libseccomp2_2.4.1-0ubuntu0.19.04.3_amd64.deb ... Unpacking libseccomp2:amd64 (2.4.1-0ubuntu0.19.04.3) over (2.3.3-3ubuntu2) ... Setting up libseccomp2:amd64 (2.4.1-0ubuntu0.19.04.3) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../mount_2.33.1-0.1ubuntu3_amd64.deb ... Unpacking mount (2.33.1-0.1ubuntu3) over (2.32-0.1ubuntu2) ... Preparing to unpack .../libsemanage-common_2.8-2_all.deb ... Unpacking libsemanage-common (2.8-2) over (2.8-1build2) ... Setting up libsemanage-common (2.8-2) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libsemanage1_2.8-2_amd64.deb ... Unpacking libsemanage1:amd64 (2.8-2) over (2.8-1build2) ... Setting up libsemanage1:amd64 (2.8-2) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libpam-modules-bin_1.3.1-5ubuntu1_amd64.deb ... Unpacking libpam-modules-bin (1.3.1-5ubuntu1) over (1.1.8-3.6ubuntu2) ... Setting up libpam-modules-bin (1.3.1-5ubuntu1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../libpam-modules_1.3.1-5ubuntu1_amd64.deb ... Unpacking libpam-modules:amd64 (1.3.1-5ubuntu1) over (1.1.8-3.6ubuntu2) ... Setting up libpam-modules:amd64 (1.3.1-5ubuntu1) ... Installing new version of config file /etc/security/access.conf ... Installing new version of config file /etc/security/limits.conf ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../passwd_1%3a4.5-1.1ubuntu2_amd64.deb ... Unpacking passwd (1:4.5-1.1ubuntu2) over (1:4.5-1ubuntu1) ... Setting up passwd (1:4.5-1.1ubuntu2) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../adduser_3.118ubuntu1_all.deb ... Unpacking adduser (3.118ubuntu1) over (3.117ubuntu1) ... Setting up adduser (3.118ubuntu1) ... (Reading database ... 12713 files and directories currently installed.) Preparing to unpack .../systemd_240-6ubuntu5.8_amd64.deb ... Unpacking systemd (240-6ubuntu5.8) over (239-7ubuntu15) ... Preparing to unpack .../libsystemd0_240-6ubuntu5.8_amd64.deb ... Unpacking libsystemd0:amd64 (240-6ubuntu5.8) over (239-7ubuntu15) ... Setting up libsystemd0:amd64 (240-6ubuntu5.8) ... (Reading database ... 12729 files and directories currently installed.) Preparing to unpack .../libzstd1_1.3.8+dfsg-3_amd64.deb ... Unpacking libzstd1:amd64 (1.3.8+dfsg-3) over (1.3.5+dfsg-1ubuntu1) ... Setting up libzstd1:amd64 (1.3.8+dfsg-3) ... (Reading database ... 12729 files and directories currently installed.) Preparing to unpack .../libapt-pkg5.0_1.8.3_amd64.deb ... Unpacking libapt-pkg5.0:amd64 (1.8.3) over (1.8.0~alpha2ubuntu1) ... Setting up libapt-pkg5.0:amd64 (1.8.3) ... (Reading database ... 12729 files and directories currently installed.) Preparing to unpack .../libgcrypt20_1.8.4-3ubuntu1.1_amd64.deb ... Unpacking libgcrypt20:amd64 (1.8.4-3ubuntu1.1) over (1.8.4-3ubuntu1) ... Setting up libgcrypt20:amd64 (1.8.4-3ubuntu1.1) ... (Reading database ... 12729 files and directories currently installed.) Preparing to unpack .../gpgv_2.2.12-1ubuntu3_amd64.deb ... Unpacking gpgv (2.2.12-1ubuntu3) over (2.2.8-3ubuntu1) ... Setting up gpgv (2.2.12-1ubuntu3) ... (Reading database ... 12729 files and directories currently installed.) Preparing to unpack .../archives/apt_1.8.3_amd64.deb ... Unpacking apt (1.8.3) over (1.8.0~alpha2ubuntu1) ... Setting up apt (1.8.3) ... Installing new version of config file /etc/apt/apt.conf.d/01autoremove ... (Reading database ... 12752 files and directories currently installed.) Preparing to unpack .../libext2fs2_1.44.6-1ubuntu0.2_amd64.deb ... Unpacking libext2fs2:amd64 (1.44.6-1ubuntu0.2) over (1.44.4-2ubuntu1) ... Setting up libext2fs2:amd64 (1.44.6-1ubuntu0.2) ... (Reading database ... 12751 files and directories currently installed.) Preparing to unpack .../e2fsprogs_1.44.6-1ubuntu0.2_amd64.deb ... Unpacking e2fsprogs (1.44.6-1ubuntu0.2) over (1.44.4-2ubuntu1) ... Setting up libapparmor1:amd64 (2.13.2-9ubuntu6.1) ... Setting up libcap2:amd64 (1:2.25-2) ... Setting up libargon2-1:amd64 (0~20171227-0.2) ... Setting up libdevmapper1.02.1:amd64 (2:1.02.145-4.1ubuntu4.2) ... Setting up libjson-c3:amd64 (0.12.1+ds-2) ... Setting up libssl1.1:amd64 (1.1.1b-1ubuntu2.4) ... Setting up libcryptsetup12:amd64 (2:2.1.0-1ubuntu1) ... Setting up libidn11:amd64 (1.33-2.2ubuntu2) ... Setting up libkmod2:amd64 (25-1ubuntu4) ... Setting up util-linux (2.33.1-0.1ubuntu3) ... Setting up mount (2.33.1-0.1ubuntu3) ... Setting up systemd (240-6ubuntu5.8) ... Installing new version of config file /etc/dhcp/dhclient-enter-hooks.d/resolved ... Installing new version of config file /etc/systemd/journald.conf ... Installing new version of config file /etc/systemd/resolved.conf ... Installing new version of config file /etc/systemd/system.conf ... Setting up systemd-sysv (240-6ubuntu5.8) ... (Reading database ... 12751 files and directories currently installed.) Preparing to unpack .../init_1.56+nmu1_amd64.deb ... Unpacking init (1.56+nmu1) over (1.56) ... Preparing to unpack .../libattr1_1%3a2.4.48-4_amd64.deb ... Unpacking libattr1:amd64 (1:2.4.48-4) over (1:2.4.47-2build1) ... Setting up libattr1:amd64 (1:2.4.48-4) ... (Reading database ... 12752 files and directories currently installed.) Preparing to unpack .../libcap-ng0_0.7.9-2_amd64.deb ... Unpacking libcap-ng0:amd64 (0.7.9-2) over (0.7.9-1build1) ... Setting up libcap-ng0:amd64 (0.7.9-2) ... (Reading database ... 12752 files and directories currently installed.) Preparing to unpack .../libpam-runtime_1.3.1-5ubuntu1_all.deb ... Unpacking libpam-runtime (1.3.1-5ubuntu1) over (1.1.8-3.6ubuntu2) ... Setting up libpam-runtime (1.3.1-5ubuntu1) ... (Reading database ... 12752 files and directories currently installed.) Preparing to unpack .../libpcre3_2%3a8.39-12_amd64.deb ... Unpacking libpcre3:amd64 (2:8.39-12) over (2:8.39-11) ... Setting up libpcre3:amd64 (2:8.39-12) ... (Reading database ... 12752 files and directories currently installed.) Preparing to unpack .../00-libcom-err2_1.44.6-1ubuntu0.2_amd64.deb ... Unpacking libcom-err2:amd64 (1.44.6-1ubuntu0.2) over (1.44.4-2ubuntu1) ... Preparing to unpack .../01-libprocps7_2%3a3.3.15-2ubuntu2.1_amd64.deb ... Unpacking libprocps7:amd64 (2:3.3.15-2ubuntu2.1) over (2:3.3.15-2ubuntu1) ... Preparing to unpack .../02-libss2_1.44.6-1ubuntu0.2_amd64.deb ... Unpacking libss2:amd64 (1.44.6-1ubuntu0.2) over (1.44.4-2ubuntu1) ... Preparing to unpack .../03-procps_2%3a3.3.15-2ubuntu2.1_amd64.deb ... Unpacking procps (2:3.3.15-2ubuntu2.1) over (2:3.3.15-2ubuntu1) ... Preparing to unpack .../04-openssl_1.1.1b-1ubuntu2.4_amd64.deb ... Unpacking openssl (1.1.1b-1ubuntu2.4) over (1.1.1a-1ubuntu2) ... Preparing to unpack .../05-ca-certificates_20190110_all.deb ... Unpacking ca-certificates (20190110) over (20180409) ... Preparing to unpack .../06-dmsetup_2%3a1.02.145-4.1ubuntu4.2_amd64.deb ... Unpacking dmsetup (2:1.02.145-4.1ubuntu4.2) over (2:1.02.145-4.1ubuntu4) ... Preparing to unpack .../07-readline-common_8.0-1_all.deb ... Unpacking readline-common (8.0-1) over (7.0-5) ... Selecting previously unselected package libreadline8:amd64. Preparing to unpack .../08-libreadline8_8.0-1_amd64.deb ... Unpacking libreadline8:amd64 (8.0-1) ... Preparing to unpack .../09-libsqlite3-0_3.27.2-2ubuntu0.2_amd64.deb ... Unpacking libsqlite3-0:amd64 (3.27.2-2ubuntu0.2) over (3.26.0-2) ... Preparing to unpack .../10-tzdata_2019c-0ubuntu0.19.04_all.deb ... Unpacking tzdata (2019c-0ubuntu0.19.04) over (2018g-1) ... Preparing to unpack .../11-xz-utils_5.2.4-1_amd64.deb ... Unpacking xz-utils (5.2.4-1) over (5.2.2-1.3) ... Preparing to unpack .../12-libpng16-16_1.6.36-6_amd64.deb ... Unpacking libpng16-16:amd64 (1.6.36-6) over (1.6.34-2) ... Preparing to unpack .../13-multiarch-support_2.29-0ubuntu2_amd64.deb ... Unpacking multiarch-support (2.29-0ubuntu2) over (2.28-0ubuntu1) ... Preparing to unpack .../14-advancecomp_2.1-1ubuntu0.19.04.1_amd64.deb ... Unpacking advancecomp (2.1-1ubuntu0.19.04.1) over (2.1-1) ... Preparing to unpack .../15-binutils-x86-64-linux-gnu_2.32-7ubuntu4_amd64.deb ... Unpacking binutils-x86-64-linux-gnu (2.32-7ubuntu4) over (2.31.1-10ubuntu1) ... Preparing to unpack .../16-libbinutils_2.32-7ubuntu4_amd64.deb ... Unpacking libbinutils:amd64 (2.32-7ubuntu4) over (2.31.1-10ubuntu1) ... Preparing to unpack .../17-binutils_2.32-7ubuntu4_amd64.deb ... Unpacking binutils (2.32-7ubuntu4) over (2.31.1-10ubuntu1) ... Preparing to unpack .../18-binutils-common_2.32-7ubuntu4_amd64.deb ... Unpacking binutils-common:amd64 (2.32-7ubuntu4) over (2.31.1-10ubuntu1) ... Preparing to unpack .../19-libubsan1_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking libubsan1:amd64 (9.1.0-2ubuntu2~19.04) over (8.2.0-12ubuntu1) ... Preparing to unpack .../20-libtsan0_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking libtsan0:amd64 (9.1.0-2ubuntu2~19.04) over (8.2.0-12ubuntu1) ... Preparing to unpack .../21-libgomp1_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking libgomp1:amd64 (9.1.0-2ubuntu2~19.04) over (8.2.0-12ubuntu1) ... Preparing to unpack .../22-libitm1_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking libitm1:amd64 (9.1.0-2ubuntu2~19.04) over (8.2.0-12ubuntu1) ... Preparing to unpack .../23-libatomic1_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking libatomic1:amd64 (9.1.0-2ubuntu2~19.04) over (8.2.0-12ubuntu1) ... Preparing to unpack .../24-libasan5_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking libasan5:amd64 (9.1.0-2ubuntu2~19.04) over (8.2.0-12ubuntu1) ... Preparing to unpack .../25-liblsan0_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking liblsan0:amd64 (9.1.0-2ubuntu2~19.04) over (8.2.0-12ubuntu1) ... Preparing to unpack .../26-libmpx2_8.3.0-6ubuntu1_amd64.deb ... Unpacking libmpx2:amd64 (8.3.0-6ubuntu1) over (8.2.0-12ubuntu1) ... Preparing to unpack .../27-libquadmath0_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking libquadmath0:amd64 (9.1.0-2ubuntu2~19.04) over (8.2.0-12ubuntu1) ... Preparing to unpack .../28-g++-8_8.3.0-6ubuntu1_amd64.deb ... Unpacking g++-8 (8.3.0-6ubuntu1) over (8.2.0-12ubuntu1) ... Preparing to unpack .../29-gcc-8_8.3.0-6ubuntu1_amd64.deb ... Unpacking gcc-8 (8.3.0-6ubuntu1) over (8.2.0-12ubuntu1) ... Preparing to unpack .../30-libstdc++-8-dev_8.3.0-6ubuntu1_amd64.deb ... Unpacking libstdc++-8-dev:amd64 (8.3.0-6ubuntu1) over (8.2.0-12ubuntu1) ... Preparing to unpack .../31-libgcc-8-dev_8.3.0-6ubuntu1_amd64.deb ... Unpacking libgcc-8-dev:amd64 (8.3.0-6ubuntu1) over (8.2.0-12ubuntu1) ... Preparing to unpack .../32-libcc1-0_9.1.0-2ubuntu2~19.04_amd64.deb ... Unpacking libcc1-0:amd64 (9.1.0-2ubuntu2~19.04) over (8.2.0-12ubuntu1) ... Preparing to unpack .../33-cpp-8_8.3.0-6ubuntu1_amd64.deb ... Unpacking cpp-8 (8.3.0-6ubuntu1) over (8.2.0-12ubuntu1) ... Preparing to unpack .../34-gcc-8-base_8.3.0-6ubuntu1_amd64.deb ... Unpacking gcc-8-base:amd64 (8.3.0-6ubuntu1) over (8.2.0-12ubuntu1) ... Preparing to unpack .../35-libmpfr6_4.0.2-1_amd64.deb ... Unpacking libmpfr6:amd64 (4.0.2-1) over (4.0.1-2) ... Preparing to unpack .../36-g++_4%3a8.3.0-1ubuntu3_amd64.deb ... Unpacking g++ (4:8.3.0-1ubuntu3) over (4:8.2.0-2ubuntu2) ... Preparing to unpack .../37-gcc_4%3a8.3.0-1ubuntu3_amd64.deb ... Unpacking gcc (4:8.3.0-1ubuntu3) over (4:8.2.0-2ubuntu2) ... Preparing to unpack .../38-cpp_4%3a8.3.0-1ubuntu3_amd64.deb ... Unpacking cpp (4:8.3.0-1ubuntu3) over (4:8.2.0-2ubuntu2) ... Preparing to unpack .../39-dpkg-dev_1.19.6ubuntu1.1_all.deb ... Unpacking dpkg-dev (1.19.6ubuntu1.1) over (1.19.2ubuntu1) ... Preparing to unpack .../40-libdpkg-perl_1.19.6ubuntu1.1_all.deb ... Unpacking libdpkg-perl (1.19.6ubuntu1.1) over (1.19.2ubuntu1) ... Preparing to unpack .../41-patch_2.7.6-3ubuntu0.1_amd64.deb ... Unpacking patch (2.7.6-3ubuntu0.1) over (2.7.6-3) ... Preparing to unpack .../42-build-essential_12.6ubuntu1_amd64.deb ... Unpacking build-essential (12.6ubuntu1) over (12.5ubuntu2) ... Preparing to unpack .../43-e2fslibs_1.44.6-1ubuntu0.2_amd64.deb ... Unpacking e2fslibs:amd64 (1.44.6-1ubuntu0.2) over (1.44.4-2ubuntu1) ... Preparing to unpack .../44-libassuan0_2.5.2-1_amd64.deb ... Unpacking libassuan0:amd64 (2.5.2-1) over (2.5.1-2) ... Preparing to unpack .../45-gpg_2.2.12-1ubuntu3_amd64.deb ... Unpacking gpg (2.2.12-1ubuntu3) over (2.2.8-3ubuntu1) ... Preparing to unpack .../46-gpgconf_2.2.12-1ubuntu3_amd64.deb ... Unpacking gpgconf (2.2.12-1ubuntu3) over (2.2.8-3ubuntu1) ... Preparing to unpack .../47-gpg-agent_2.2.12-1ubuntu3_amd64.deb ... Unpacking gpg-agent (2.2.12-1ubuntu3) over (2.2.8-3ubuntu1) ... Preparing to unpack .../48-libcomerr2_1.44.6-1ubuntu0.2_amd64.deb ... Unpacking libcomerr2:amd64 (1.44.6-1ubuntu0.2) over (1.44.4-2ubuntu1) ... Preparing to unpack .../49-optipng_0.7.7-1_amd64.deb ... Unpacking optipng (0.7.7-1) over (0.7.6-1.1) ... Preparing to unpack .../50-pkgbinarymangler_144_all.deb ... Unpacking pkgbinarymangler (144) over (143) ... Setting up perl-modules-5.28 (5.28.1-6) ... Setting up lsb-base (10.2019031300ubuntu1) ... Setting up e2fslibs:amd64 (1.44.6-1ubuntu0.2) ... Setting up init (1.56+nmu1) ... Setting up libprocps7:amd64 (2:3.3.15-2ubuntu2.1) ... Setting up libsqlite3-0:amd64 (3.27.2-2ubuntu0.2) ... Setting up binutils-common:amd64 (2.32-7ubuntu4) ... Setting up linux-libc-dev:amd64 (5.0.0-38.41) ... Setting up libcom-err2:amd64 (1.44.6-1ubuntu0.2) ... Setting up libassuan0:amd64 (2.5.2-1) ... Setting up libgomp1:amd64 (9.1.0-2ubuntu2~19.04) ... Setting up bzip2 (1.0.6-9ubuntu0.19.04.1) ... Setting up tzdata (2019c-0ubuntu0.19.04) ... Current default time zone: 'Etc/UTC' Local time is now: Wed Mar 11 19:43:26 UTC 2020. Universal Time is now: Wed Mar 11 19:43:26 UTC 2020. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libasan5:amd64 (9.1.0-2ubuntu2~19.04) ... Setting up multiarch-support (2.29-0ubuntu2) ... Setting up libmpfr6:amd64 (4.0.2-1) ... Setting up libncurses6:amd64 (6.1+20181013-2ubuntu2) ... Setting up xz-utils (5.2.4-1) ... Setting up libquadmath0:amd64 (9.1.0-2ubuntu2~19.04) ... Setting up libpng16-16:amd64 (1.6.36-6) ... Setting up libatomic1:amd64 (9.1.0-2ubuntu2~19.04) ... Setting up patch (2.7.6-3ubuntu0.1) ... Setting up libss2:amd64 (1.44.6-1ubuntu0.2) ... Setting up gcc-8-base:amd64 (8.3.0-6ubuntu1) ... Setting up libmpx2:amd64 (8.3.0-6ubuntu1) ... Setting up libubsan1:amd64 (9.1.0-2ubuntu2~19.04) ... Setting up advancecomp (2.1-1ubuntu0.19.04.1) ... Setting up dmsetup (2:1.02.145-4.1ubuntu4.2) ... Setting up libcomerr2:amd64 (1.44.6-1ubuntu0.2) ... Setting up procps (2:3.3.15-2ubuntu2.1) ... Installing new version of config file /etc/sysctl.d/10-network-security.conf ... Setting up libbinutils:amd64 (2.32-7ubuntu4) ... Setting up cpp-8 (8.3.0-6ubuntu1) ... Setting up libc-dev-bin (2.29-0ubuntu2) ... Setting up openssl (1.1.1b-1ubuntu2.4) ... Installing new version of config file /etc/ssl/openssl.cnf ... Setting up readline-common (8.0-1) ... Setting up libcc1-0:amd64 (9.1.0-2ubuntu2~19.04) ... Setting up liblsan0:amd64 (9.1.0-2ubuntu2~19.04) ... Setting up libitm1:amd64 (9.1.0-2ubuntu2~19.04) ... Setting up libgdbm6:amd64 (1.18.1-4) ... Setting up binutils-x86-64-linux-gnu (2.32-7ubuntu4) ... Setting up libtsan0:amd64 (9.1.0-2ubuntu2~19.04) ... Setting up libreadline8:amd64 (8.0-1) ... Setting up e2fsprogs (1.44.6-1ubuntu0.2) ... Setting up binutils (2.32-7ubuntu4) ... Setting up ca-certificates (20190110) ... Updating certificates in /etc/ssl/certs... 2 added, 7 removed; done. Setting up optipng (0.7.7-1) ... Setting up libgdbm-compat4:amd64 (1.18.1-4) ... Setting up libgcc-8-dev:amd64 (8.3.0-6ubuntu1) ... Setting up libperl5.28:amd64 (5.28.1-6) ... Setting up cpp (4:8.3.0-1ubuntu3) ... Setting up gpgconf (2.2.12-1ubuntu3) ... Setting up libc6-dev:amd64 (2.29-0ubuntu2) ... Setting up gpg (2.2.12-1ubuntu3) ... Setting up libstdc++-8-dev:amd64 (8.3.0-6ubuntu1) ... Setting up gcc-8 (8.3.0-6ubuntu1) ... Setting up gpg-agent (2.2.12-1ubuntu3) ... Setting up pkgbinarymangler (144) ... Setting up gcc (4:8.3.0-1ubuntu3) ... Setting up perl (5.28.1-6) ... Setting up libdpkg-perl (1.19.6ubuntu1.1) ... Setting up g++-8 (8.3.0-6ubuntu1) ... Setting up dpkg-dev (1.19.6ubuntu1.1) ... Setting up g++ (4:8.3.0-1ubuntu3) ... Setting up build-essential (12.6ubuntu1) ... Processing triggers for systemd (240-6ubuntu5.8) ... Processing triggers for libc-bin (2.29-0ubuntu2) ... Processing triggers for ca-certificates (20190110) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. RUN: /usr/share/launchpad-buildd/bin/sbuild-package PACKAGEBUILD-18828275 amd64 disco -c chroot:build-PACKAGEBUILD-18828275 --arch=amd64 --dist=disco --nolog -A ironic_12.1.4.dev5.202003111929.disco-0ubuntu1.dsc Initiating build PACKAGEBUILD-18828275 with 4 jobs across 4 processor cores. Kernel reported to sbuild: 4.4.0-174-generic #204-Ubuntu SMP Wed Jan 29 06:41:01 UTC 2020 x86_64 sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on lgw01-amd64-035.buildd +==============================================================================+ | ironic 1:12.1.4.dev5.202003111929.disco-0ubuntu1 (amd64) 11 Mar 2020 19:43 | +==============================================================================+ Package: ironic Version: 1:12.1.4.dev5.202003111929.disco-0ubuntu1 Source Version: 1:12.1.4.dev5.202003111929.disco-0ubuntu1 Distribution: disco Machine Architecture: amd64 Host Architecture: amd64 Build Architecture: amd64 I: NOTICE: Log filtering will replace 'build/ironic-1XTPnP/ironic-12.1.4.dev5.202003111929.disco' with '<>' I: NOTICE: Log filtering will replace 'build/ironic-1XTPnP' with '<>' I: NOTICE: Log filtering will replace 'home/buildd/build-PACKAGEBUILD-18828275/chroot-autobuild' with '<>' +------------------------------------------------------------------------------+ | Fetch source files | +------------------------------------------------------------------------------+ Local sources ------------- ironic_12.1.4.dev5.202003111929.disco-0ubuntu1.dsc exists in .; copying to chroot Check architectures ------------------- Check dependencies ------------------ Merged Build-Depends: build-essential, fakeroot Filtered Build-Depends: build-essential, fakeroot dpkg-deb: building package 'sbuild-build-depends-core-dummy' in '/<>/resolver-Sv7rqU/apt_archive/sbuild-build-depends-core-dummy.deb'. Ign:1 copy:/<>/resolver-Sv7rqU/apt_archive ./ InRelease Get:2 copy:/<>/resolver-Sv7rqU/apt_archive ./ Release [2119 B] Ign:3 copy:/<>/resolver-Sv7rqU/apt_archive ./ Release.gpg Get:4 copy:/<>/resolver-Sv7rqU/apt_archive ./ Sources [214 B] Get:5 copy:/<>/resolver-Sv7rqU/apt_archive ./ Packages [524 B] Fetched 2857 B in 0s (231 kB/s) Reading package lists... Reading package lists... +------------------------------------------------------------------------------+ | Install core build dependencies (apt-based resolver) | +------------------------------------------------------------------------------+ Installing build dependencies Reading package lists... Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: libreadline7 Use 'apt autoremove' to remove it. The following NEW packages will be installed: sbuild-build-depends-core-dummy 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 852 B of archives. After this operation, 0 B of additional disk space will be used. Get:1 copy:/<>/resolver-Sv7rqU/apt_archive ./ sbuild-build-depends-core-dummy 0.invalid.0 [852 B] debconf: delaying package configuration, since apt-utils is not installed Fetched 852 B in 0s (0 B/s) Selecting previously unselected package sbuild-build-depends-core-dummy. (Reading database ... 12800 files and directories currently installed.) Preparing to unpack .../sbuild-build-depends-core-dummy_0.invalid.0_amd64.deb ... Unpacking sbuild-build-depends-core-dummy (0.invalid.0) ... Setting up sbuild-build-depends-core-dummy (0.invalid.0) ... Merged Build-Depends: debhelper (>= 10~), dh-python, openstack-pkg-tools (>= 85ubuntu3~), python-all, python-pbr (>= 2.0.0), python-setuptools, python3-all, python3-pbr (>= 2.0.0), python3-setuptools, python3-sphinx (>= 1.6.2), alembic (>= 0.8.10), crudini, python3-alembic (>= 0.8.10), python3-automaton (>= 1.9.0), python3-babel (>= 2.3.4), python3-bashate (>= 0.5.1), python3-cinderclient (>= 1:3.3.0), python3-coverage (>= 4.0), python3-doc8 (>= 0.6.0), python3-eventlet (>= 0.18.2), python3-fixtures (>= 3.0.0), python3-futurist (>= 1.2.0), python3-glanceclient (>= 1:2.8.0), python3-hacking (>= 1.0.0), python3-ironic-lib (>= 2.15.0), python3-ironicclient (>= 1.14.0), python3-iso8601 (>= 0.1.11), python3-jinja2 (>= 2.10), python3-jsonpatch (>= 1.16), python3-jsonschema (>= 2.6.0), python3-keystoneauth1 (>= 3.4.0), python3-keystonemiddleware (>= 4.17.0), python3-mock (>= 2.0.0), python3-neutronclient (>= 1:6.7.0), python3-openstackdocstheme (>= 1.18.1), python3-openstacksdk (>= 0.25.0), python3-os-api-ref (>= 1.4.0), python3-os-testr (>= 1.0.0), python3-os-traits (>= 0.4.0), python3-oslo.concurrency (>= 3.26.0), python3-oslo.config (>= 1:5.2.0), python3-oslo.context (>= 1: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.upgradecheck (>= 0.1.0), python3-oslo.utils (>= 3.33.0), python3-oslo.versionedobjects (>= 1.31.2), python3-oslosphinx (>= 4.7.0), python3-oslotest (>= 1:3.2.0), python3-osprofiler (>= 1.5.0), python3-paramiko (>= 2.0), python3-pecan (>= 1.0.0), python3-psutil (>= 3.2.2), python3-psycopg2 (>= 2.7.3), python3-pygments (>= 2.2.0), python3-pymysql (>= 0.7.6), python3-reno (>= 2.5.0), python3-requests (>= 2.14.2), python3-retrying (>= 1.2.3), python3-rfc3986 (>= 0.3.1), python3-scciclient (>= 0.8.0), python3-sendfile (>= 2.0.0), python3-six (>= 1.10.0), python3-sphinxcontrib.apidoc (>= 0.2.0), python3-sphinxcontrib-pecanwsme (>= 0.8.0), python3-sphinxcontrib.seqdiag (>= 0.8.4), python3-sqlalchemy (>= 1.0.10), python3-stestr (>= 1.0.0), python3-stevedore (>= 1:1.20.0), python3-swiftclient (>= 1:3.2.0), python3-testresources (>= 2.0.0), python3-testscenarios (>= 0.4), python3-testtools (>= 2.2.0), python3-tooz (>= 1.58.0), python3-tz (>= 2013.6), python3-webob (>= 1:1.7.1), python3-webtest (>= 2.0.27), python3-wsme (>= 0.9.3) Filtered Build-Depends: debhelper (>= 10~), dh-python, openstack-pkg-tools (>= 85ubuntu3~), python-all, python-pbr (>= 2.0.0), python-setuptools, python3-all, python3-pbr (>= 2.0.0), python3-setuptools, python3-sphinx (>= 1.6.2), alembic (>= 0.8.10), crudini, python3-alembic (>= 0.8.10), python3-automaton (>= 1.9.0), python3-babel (>= 2.3.4), python3-bashate (>= 0.5.1), python3-cinderclient (>= 1:3.3.0), python3-coverage (>= 4.0), python3-doc8 (>= 0.6.0), python3-eventlet (>= 0.18.2), python3-fixtures (>= 3.0.0), python3-futurist (>= 1.2.0), python3-glanceclient (>= 1:2.8.0), python3-hacking (>= 1.0.0), python3-ironic-lib (>= 2.15.0), python3-ironicclient (>= 1.14.0), python3-iso8601 (>= 0.1.11), python3-jinja2 (>= 2.10), python3-jsonpatch (>= 1.16), python3-jsonschema (>= 2.6.0), python3-keystoneauth1 (>= 3.4.0), python3-keystonemiddleware (>= 4.17.0), python3-mock (>= 2.0.0), python3-neutronclient (>= 1:6.7.0), python3-openstackdocstheme (>= 1.18.1), python3-openstacksdk (>= 0.25.0), python3-os-api-ref (>= 1.4.0), python3-os-testr (>= 1.0.0), python3-os-traits (>= 0.4.0), python3-oslo.concurrency (>= 3.26.0), python3-oslo.config (>= 1:5.2.0), python3-oslo.context (>= 1: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.upgradecheck (>= 0.1.0), python3-oslo.utils (>= 3.33.0), python3-oslo.versionedobjects (>= 1.31.2), python3-oslosphinx (>= 4.7.0), python3-oslotest (>= 1:3.2.0), python3-osprofiler (>= 1.5.0), python3-paramiko (>= 2.0), python3-pecan (>= 1.0.0), python3-psutil (>= 3.2.2), python3-psycopg2 (>= 2.7.3), python3-pygments (>= 2.2.0), python3-pymysql (>= 0.7.6), python3-reno (>= 2.5.0), python3-requests (>= 2.14.2), python3-retrying (>= 1.2.3), python3-rfc3986 (>= 0.3.1), python3-scciclient (>= 0.8.0), python3-sendfile (>= 2.0.0), python3-six (>= 1.10.0), python3-sphinxcontrib.apidoc (>= 0.2.0), python3-sphinxcontrib-pecanwsme (>= 0.8.0), python3-sphinxcontrib.seqdiag (>= 0.8.4), python3-sqlalchemy (>= 1.0.10), python3-stestr (>= 1.0.0), python3-stevedore (>= 1:1.20.0), python3-swiftclient (>= 1:3.2.0), python3-testresources (>= 2.0.0), python3-testscenarios (>= 0.4), python3-testtools (>= 2.2.0), python3-tooz (>= 1.58.0), python3-tz (>= 2013.6), python3-webob (>= 1:1.7.1), python3-webtest (>= 2.0.27), python3-wsme (>= 0.9.3) dpkg-deb: building package 'sbuild-build-depends-ironic-dummy' in '/<>/resolver-YxiCPe/apt_archive/sbuild-build-depends-ironic-dummy.deb'. Ign:1 copy:/<>/resolver-YxiCPe/apt_archive ./ InRelease Get:2 copy:/<>/resolver-YxiCPe/apt_archive ./ Release [2119 B] Ign:3 copy:/<>/resolver-YxiCPe/apt_archive ./ Release.gpg Get:4 copy:/<>/resolver-YxiCPe/apt_archive ./ Sources [1000 B] Get:5 copy:/<>/resolver-YxiCPe/apt_archive ./ Packages [1324 B] Fetched 4443 B in 0s (381 kB/s) Reading package lists... Reading package lists... +------------------------------------------------------------------------------+ | Install ironic build dependencies (apt-based resolver) | +------------------------------------------------------------------------------+ Installing build dependencies Reading package lists... Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: libreadline7 Use 'apt autoremove' to remove it. The following additional packages will be installed: alembic autoconf automake autopoint autotools-dev bsdmainutils crudini dbus debhelper dh-autoreconf dh-python dh-strip-nondeterminism docutils-common dwz file flake8 fonts-glyphicons-halflings gettext gettext-base git git-man groff-base ieee-data intltool-debian jq libarchive-zip-perl libasn1-8-heimdal libbsd0 libcroco3 libcurl3-gnutls libdbus-1-3 libelf1 liberror-perl libexpat1 libfile-stripnondeterminism-perl libfreetype6 libglib2.0-0 libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libice6 libicu63 libimagequant0 libjbig0 libjpeg-turbo8 libjpeg8 libjq1 libjs-bootstrap libjs-jquery libjs-sphinxdoc libjs-underscore libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 liblcms2-2 libldap-2.4-2 libldap-common libmagic-mgc libmagic1 libmpdec2 libnghttp2-14 libonig5 libpcre2-8-0 libpipeline1 libpq5 libpsl5 libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libpython3-stdlib libpython3.7-minimal libpython3.7-stdlib libroken18-heimdal librtmp1 libsasl2-2 libsasl2-modules-db libsigsegv2 libsm6 libsodium23 libssh-4 libsubunit-perl libtiff5 libtool libuchardet0 libwebp6 libwebpdemux2 libwebpmux3 libwind0-heimdal libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxml2 libxmu6 libxslt1.1 libxt6 libyaml-0-2 m4 man-db mime-support netbase openstack-pkg-tools po-debconf pycadf-common pyflakes3 python python-all python-babel-localedata python-extras python-fixtures python-iniparse python-linecache2 python-mimeparse python-minimal python-os-api-ref-common python-oslosphinx-common python-pastedeploy-tpl python-pbr python-pkg-resources python-setuptools python-six python-subunit python-testrepository python-testtools python-traceback2 python-unittest2 python2 python2-minimal python2.7 python2.7-minimal python3 python3-alabaster python3-alembic python3-all python3-amqp python3-anyjson python3-appdirs python3-asn1crypto python3-automaton python3-babel python3-bashate python3-bcrypt python3-blinker python3-blockdiag python3-bs4 python3-cachetools python3-certifi python3-cffi-backend python3-chardet python3-cinderclient python3-cliff python3-cmd2 python3-contextlib2 python3-coverage python3-crypto python3-cryptography python3-dateutil python3-dbus python3-debtcollector python3-decorator python3-deprecation python3-distutils python3-dnspython python3-doc8 python3-docutils python3-dogpile.cache python3-dulwich python3-entrypoints python3-eventlet python3-extras python3-fasteners python3-fixtures python3-flake8 python3-funcparserlib python3-funcsigs python3-future python3-futurist python3-glanceclient python3-greenlet python3-hacking python3-idna python3-imagesize python3-ironic-lib python3-ironicclient python3-iso8601 python3-jinja2 python3-jmespath python3-json-pointer python3-jsonpatch python3-jsonschema python3-jwt python3-kazoo python3-keyring python3-keystoneauth1 python3-keystoneclient python3-keystonemiddleware python3-kombu python3-lib2to3 python3-linecache2 python3-logutils python3-lxml python3-mako python3-markupsafe python3-mccabe python3-memcache python3-migrate python3-mimeparse python3-minimal python3-mock python3-monotonic python3-mox3 python3-msgpack python3-munch python3-nacl python3-netaddr python3-netifaces python3-neutronclient python3-novaclient python3-oauthlib python3-openssl python3-openstackclient python3-openstackdocstheme python3-openstacksdk python3-os-api-ref python3-os-client-config python3-os-service-types python3-os-testr python3-os-traits python3-osc-lib python3-oslo.cache python3-oslo.concurrency python3-oslo.config python3-oslo.context python3-oslo.db python3-oslo.i18n python3-oslo.log python3-oslo.messaging python3-oslo.middleware python3-oslo.policy python3-oslo.reports python3-oslo.rootwrap python3-oslo.serialization python3-oslo.service python3-oslo.upgradecheck python3-oslo.utils python3-oslo.versionedobjects python3-oslosphinx python3-oslotest python3-osprofiler python3-packaging python3-paramiko python3-paste python3-pastedeploy python3-pbr python3-pecan python3-pep8 python3-pil python3-pkg-resources python3-ply python3-posix-ipc python3-prettytable python3-psutil python3-psycopg2 python3-pyasn1 python3-pycadf python3-pycodestyle python3-pycryptodome python3-pyflakes python3-pyghmi python3-pygments python3-pyinotify python3-pymemcache python3-pymysql python3-pyparsing python3-pyperclip python3-pysmi python3-pysnmp4 python3-redis python3-reno python3-reportlab python3-reportlab-accel python3-repoze.lru python3-requests python3-requestsexceptions python3-restructuredtext-lint python3-retrying python3-rfc3986 python3-roman python3-routes python3-scciclient python3-secretstorage python3-sendfile python3-seqdiag python3-setuptools python3-simplegeneric python3-simplejson python3-singledispatch python3-six python3-soupsieve python3-sphinx python3-sphinxcontrib-pecanwsme python3-sphinxcontrib.apidoc python3-sphinxcontrib.httpdomain python3-sphinxcontrib.seqdiag python3-sqlalchemy python3-sqlparse python3-statsd python3-stestr python3-stevedore python3-subunit python3-swiftclient python3-tempita python3-tenacity python3-testrepository python3-testresources python3-testscenarios python3-testtools python3-tooz python3-traceback2 python3-tz python3-unicodecsv python3-unittest2 python3-urllib3 python3-vine python3-voluptuous python3-waitress python3-warlock python3-webcolors python3-webob python3-webtest python3-wrapt python3-wsme python3-yaml python3-zake python3-zope.interface python3.7 python3.7-minimal sgml-base sphinx-common subunit sudo testrepository wget x11-common xclip xml-core Suggested packages: autoconf-archive gnu-standards autoconf-doc wamerican | wordlist whois vacation default-dbus-session-bus | dbus-session-bus dh-make gettext-doc libasprintf-dev libgettextpo-dev git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn groff krb5-doc krb5-user liblcms2-utils libtool-doc gfortran | fortran95-compiler gcj-jdk m4-doc apparmor less www-browser libmail-box-perl python-doc python-tk python-setuptools-doc python-testtools-doc python-twisted python2-doc python2.7-doc binfmt-support python3-doc python3-tk python3-venv python3-editor python-amqp-doc python-automaton-doc python-blinker-doc python-cliff-doc python-coverage-doc python-crypto-doc python-cryptography-doc python3-cryptography-vectors python-dbus-doc python3-dbus-dbg python-debtcollector-doc python-doc8-doc docutils-doc fonts-linuxlibertine | ttf-linux-libertine texlive-lang-french texlive-latex-base texlive-latex-recommended python3-gpg python-eventlet-doc python-funcsigs-doc python-future-doc python-futurist-doc python-glanceclient-doc python-greenlet-doc python-greenlet-dev python3-greenlet-dbg python-jinja2-doc python-jsonschema-doc python-kazoo-doc gnome-keyring libkf5wallet-bin python3-keyrings.alt python-keystoneauth1-doc python3-requests-kerberos python-kombu-doc python3-boto python3-django python3-pymongo python3-lxml-dbg python-lxml-doc python3-beaker python-mako-doc memcached python-migrate-doc python-mock-doc python-nacl-doc ipython3 python-netaddr-docs python-openssl-doc python3-openssl-dbg python-openstacksdk-doc python-os-client-config-doc python-os-service-types-doc python-os-testr-doc python-os-traits-doc python-osc-lib-doc python-oslo.cache-doc python-oslo.concurrency-doc python-oslo.log-doc python3-confluent-kafka python-oslo.middleware-doc python-oslo.policy-doc python-oslo.reports-doc python-oslo.service-doc python-oslo.versionedobjects-doc python3-gssapi httpd-wsgi libapache2-mod-python libapache2-mod-scgi libjs-mochikit python-pecan-doc python-pil-doc python3-pil-dbg python-ply-doc python-psutil-doc python-psycopg2-doc python-pygments-doc ttf-bitstream-vera python-pyinotify-doc python-pymysql-doc python-pyparsing-doc python3-hiredis python-reno-doc pdf-viewer python3-egenix-mxtexttools python-reportlab-doc python3-socks python-scciclient-doc python-secretstorage-doc dvipng imagemagick-6.q16 latexmk libjs-mathjax python3-sphinx-rtd-theme python3-stemmer sphinx-doc texlive-fonts-recommended texlive-generic-extra texlive-latex-extra python-sqlalchemy-doc python3-mysqldb python3-fdb python-sqlparse-doc python-stestr-doc python-tenacity-doc python3-sysv-ipc python-waitress-doc python-webob-doc python-webtest-doc python3.7-venv python3.7-doc sgml-base-doc Recommended packages: less ssh-client libarchive-cpio-perl libglib2.0-data shared-mime-info xdg-user-dirs javascript-common krb5-locales publicsuffix libsasl2-modules libltdl-dev autopkgtest madison-lite pristine-tar libmail-sendmail-perl pyflakes libjs-jquery-isonscreen libjs-jquery-tablesorter libjs-jquery-throttle-debounce python3-gi libpaper-utils python3-fastimport python3-html5lib python3-pastescript python3-olefile python3-renderpm python3-sqlalchemy-ext python-junitxml xauth The following NEW packages will be installed: alembic autoconf automake autopoint autotools-dev bsdmainutils crudini dbus debhelper dh-autoreconf dh-python dh-strip-nondeterminism docutils-common dwz file flake8 fonts-glyphicons-halflings gettext gettext-base git git-man groff-base ieee-data intltool-debian jq libarchive-zip-perl libasn1-8-heimdal libbsd0 libcroco3 libcurl3-gnutls libdbus-1-3 libelf1 liberror-perl libexpat1 libfile-stripnondeterminism-perl libfreetype6 libglib2.0-0 libgssapi-krb5-2 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libice6 libicu63 libimagequant0 libjbig0 libjpeg-turbo8 libjpeg8 libjq1 libjs-bootstrap libjs-jquery libjs-sphinxdoc libjs-underscore libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 liblcms2-2 libldap-2.4-2 libldap-common libmagic-mgc libmagic1 libmpdec2 libnghttp2-14 libonig5 libpcre2-8-0 libpipeline1 libpq5 libpsl5 libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libpython3-stdlib libpython3.7-minimal libpython3.7-stdlib libroken18-heimdal librtmp1 libsasl2-2 libsasl2-modules-db libsigsegv2 libsm6 libsodium23 libssh-4 libsubunit-perl libtiff5 libtool libuchardet0 libwebp6 libwebpdemux2 libwebpmux3 libwind0-heimdal libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxml2 libxmu6 libxslt1.1 libxt6 libyaml-0-2 m4 man-db mime-support netbase openstack-pkg-tools po-debconf pycadf-common pyflakes3 python python-all python-babel-localedata python-extras python-fixtures python-iniparse python-linecache2 python-mimeparse python-minimal python-os-api-ref-common python-oslosphinx-common python-pastedeploy-tpl python-pbr python-pkg-resources python-setuptools python-six python-subunit python-testrepository python-testtools python-traceback2 python-unittest2 python2 python2-minimal python2.7 python2.7-minimal python3 python3-alabaster python3-alembic python3-all python3-amqp python3-anyjson python3-appdirs python3-asn1crypto python3-automaton python3-babel python3-bashate python3-bcrypt python3-blinker python3-blockdiag python3-bs4 python3-cachetools python3-certifi python3-cffi-backend python3-chardet python3-cinderclient python3-cliff python3-cmd2 python3-contextlib2 python3-coverage python3-crypto python3-cryptography python3-dateutil python3-dbus python3-debtcollector python3-decorator python3-deprecation python3-distutils python3-dnspython python3-doc8 python3-docutils python3-dogpile.cache python3-dulwich python3-entrypoints python3-eventlet python3-extras python3-fasteners python3-fixtures python3-flake8 python3-funcparserlib python3-funcsigs python3-future python3-futurist python3-glanceclient python3-greenlet python3-hacking python3-idna python3-imagesize python3-ironic-lib python3-ironicclient python3-iso8601 python3-jinja2 python3-jmespath python3-json-pointer python3-jsonpatch python3-jsonschema python3-jwt python3-kazoo python3-keyring python3-keystoneauth1 python3-keystoneclient python3-keystonemiddleware python3-kombu python3-lib2to3 python3-linecache2 python3-logutils python3-lxml python3-mako python3-markupsafe python3-mccabe python3-memcache python3-migrate python3-mimeparse python3-minimal python3-mock python3-monotonic python3-mox3 python3-msgpack python3-munch python3-nacl python3-netaddr python3-netifaces python3-neutronclient python3-novaclient python3-oauthlib python3-openssl python3-openstackclient python3-openstackdocstheme python3-openstacksdk python3-os-api-ref python3-os-client-config python3-os-service-types python3-os-testr python3-os-traits python3-osc-lib python3-oslo.cache python3-oslo.concurrency python3-oslo.config python3-oslo.context python3-oslo.db python3-oslo.i18n python3-oslo.log python3-oslo.messaging python3-oslo.middleware python3-oslo.policy python3-oslo.reports python3-oslo.rootwrap python3-oslo.serialization python3-oslo.service python3-oslo.upgradecheck python3-oslo.utils python3-oslo.versionedobjects python3-oslosphinx python3-oslotest python3-osprofiler python3-packaging python3-paramiko python3-paste python3-pastedeploy python3-pbr python3-pecan python3-pep8 python3-pil python3-pkg-resources python3-ply python3-posix-ipc python3-prettytable python3-psutil python3-psycopg2 python3-pyasn1 python3-pycadf python3-pycodestyle python3-pycryptodome python3-pyflakes python3-pyghmi python3-pygments python3-pyinotify python3-pymemcache python3-pymysql python3-pyparsing python3-pyperclip python3-pysmi python3-pysnmp4 python3-redis python3-reno python3-reportlab python3-reportlab-accel python3-repoze.lru python3-requests python3-requestsexceptions python3-restructuredtext-lint python3-retrying python3-rfc3986 python3-roman python3-routes python3-scciclient python3-secretstorage python3-sendfile python3-seqdiag python3-setuptools python3-simplegeneric python3-simplejson python3-singledispatch python3-six python3-soupsieve python3-sphinx python3-sphinxcontrib-pecanwsme python3-sphinxcontrib.apidoc python3-sphinxcontrib.httpdomain python3-sphinxcontrib.seqdiag python3-sqlalchemy python3-sqlparse python3-statsd python3-stestr python3-stevedore python3-subunit python3-swiftclient python3-tempita python3-tenacity python3-testrepository python3-testresources python3-testscenarios python3-testtools python3-tooz python3-traceback2 python3-tz python3-unicodecsv python3-unittest2 python3-urllib3 python3-vine python3-voluptuous python3-waitress python3-warlock python3-webcolors python3-webob python3-webtest python3-wrapt python3-wsme python3-yaml python3-zake python3-zope.interface python3.7 python3.7-minimal sbuild-build-depends-ironic-dummy sgml-base sphinx-common subunit sudo testrepository wget x11-common xclip xml-core 0 upgraded, 355 newly installed, 0 to remove and 0 not upgraded. Need to get 66.5 MB of archives. After this operation, 325 MB of additional disk space will be used. Get:1 copy:/<>/resolver-YxiCPe/apt_archive ./ sbuild-build-depends-ironic-dummy 0.invalid.0 [1612 B] Get:2 http://ftpmaster.internal/ubuntu disco-security/main amd64 libpython3.7-minimal amd64 3.7.3-2ubuntu0.2 [544 kB] Get:3 http://ftpmaster.internal/ubuntu disco-security/main amd64 libexpat1 amd64 2.2.6-1ubuntu0.19.5 [88.5 kB] Get:4 http://ftpmaster.internal/ubuntu disco-security/main amd64 python3.7-minimal amd64 3.7.3-2ubuntu0.2 [1691 kB] Get:5 http://ftpmaster.internal/ubuntu disco/main amd64 python3-minimal amd64 3.7.3-1 [23.4 kB] Get:6 http://ftpmaster.internal/ubuntu disco/main amd64 mime-support all 3.60ubuntu1 [30.1 kB] Get:7 http://ftpmaster.internal/ubuntu disco/main amd64 libmpdec2 amd64 2.4.2-2 [84.1 kB] Get:8 http://ftpmaster.internal/ubuntu disco-security/main amd64 libpython3.7-stdlib amd64 3.7.3-2ubuntu0.2 [1732 kB] Get:9 http://ftpmaster.internal/ubuntu disco-security/main amd64 python3.7 amd64 3.7.3-2ubuntu0.2 [284 kB] Get:10 http://ftpmaster.internal/ubuntu disco/main amd64 libpython3-stdlib amd64 3.7.3-1 [6976 B] Get:11 http://ftpmaster.internal/ubuntu disco/main amd64 python3 amd64 3.7.3-1 [47.2 kB] Get:12 http://ftpmaster.internal/ubuntu disco/main amd64 libxau6 amd64 1:1.0.8-1 [8376 B] Get:13 http://ftpmaster.internal/ubuntu disco-security/main amd64 libbsd0 amd64 0.9.1-2ubuntu0.1 [44.4 kB] Get:14 http://ftpmaster.internal/ubuntu disco/main amd64 libxdmcp6 amd64 1:1.1.2-3 [10.7 kB] Get:15 http://ftpmaster.internal/ubuntu disco/main amd64 libxcb1 amd64 1.13.1-2 [45.2 kB] Get:16 http://ftpmaster.internal/ubuntu disco/main amd64 libx11-data all 2:1.6.7-1 [113 kB] Get:17 http://ftpmaster.internal/ubuntu disco/main amd64 libx11-6 amd64 2:1.6.7-1 [572 kB] Get:18 http://ftpmaster.internal/ubuntu disco/main amd64 libxext6 amd64 2:1.3.3-1 [29.4 kB] Get:19 http://ftpmaster.internal/ubuntu disco/main amd64 bsdmainutils amd64 11.1.2ubuntu2 [181 kB] Get:20 http://ftpmaster.internal/ubuntu disco/main amd64 libuchardet0 amd64 0.0.6-3 [64.9 kB] Get:21 http://ftpmaster.internal/ubuntu disco/main amd64 groff-base amd64 1.22.4-3 [862 kB] Get:22 http://ftpmaster.internal/ubuntu disco/main amd64 libpipeline1 amd64 1.5.1-2 [25.9 kB] Get:23 http://ftpmaster.internal/ubuntu disco/main amd64 man-db amd64 2.8.5-2 [1102 kB] Get:24 http://ftpmaster.internal/ubuntu disco-security/main amd64 libpython2.7-minimal amd64 2.7.16-2ubuntu0.2 [336 kB] Get:25 http://ftpmaster.internal/ubuntu disco-security/main amd64 python2.7-minimal amd64 2.7.16-2ubuntu0.2 [1309 kB] Get:26 http://ftpmaster.internal/ubuntu disco/main amd64 python2-minimal amd64 2.7.16-1 [27.8 kB] Get:27 http://ftpmaster.internal/ubuntu disco/main amd64 python-minimal amd64 2.7.16-1 [5996 B] Get:28 http://ftpmaster.internal/ubuntu disco-security/main amd64 libpython2.7-stdlib amd64 2.7.16-2ubuntu0.2 [1913 kB] Get:29 http://ftpmaster.internal/ubuntu disco-security/main amd64 python2.7 amd64 2.7.16-2ubuntu0.2 [244 kB] Get:30 http://ftpmaster.internal/ubuntu disco/main amd64 libpython2-stdlib amd64 2.7.16-1 [7432 B] Get:31 http://ftpmaster.internal/ubuntu disco/main amd64 libpython-stdlib amd64 2.7.16-1 [5828 B] Get:32 http://ftpmaster.internal/ubuntu disco/main amd64 python2 amd64 2.7.16-1 [26.5 kB] Get:33 http://ftpmaster.internal/ubuntu disco/main amd64 python amd64 2.7.16-1 [7836 B] Get:34 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pyparsing all 2.2.0+dfsg1-2 [52.2 kB] Get:35 http://ftpmaster.internal/ubuntu disco/main amd64 x11-common all 1:7.7+19ubuntu12 [22.4 kB] Get:36 http://ftpmaster.internal/ubuntu disco/main amd64 libice6 amd64 2:1.0.9-2 [40.2 kB] Get:37 http://ftpmaster.internal/ubuntu disco/main amd64 libsm6 amd64 2:1.2.3-1 [16.1 kB] Get:38 http://ftpmaster.internal/ubuntu disco/main amd64 libxt6 amd64 1:1.1.5-1 [160 kB] Get:39 http://ftpmaster.internal/ubuntu disco/main amd64 libxmu6 amd64 2:1.1.2-2 [46.0 kB] Get:40 http://ftpmaster.internal/ubuntu disco/universe amd64 xclip amd64 0.13-1 [18.4 kB] Get:41 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pyperclip all 1.6.4-1 [9932 B] Get:42 http://ftpmaster.internal/ubuntu disco/main amd64 python3-six all 1.12.0-1 [11.7 kB] Get:43 http://ftpmaster.internal/ubuntu disco/main amd64 python3-cmd2 all 0.7.9-0ubuntu1 [34.2 kB] Get:44 http://ftpmaster.internal/ubuntu disco/main amd64 sgml-base all 1.29 [12.3 kB] Get:45 http://ftpmaster.internal/ubuntu disco-security/main amd64 libdbus-1-3 amd64 1.12.12-1ubuntu1.1 [178 kB] Get:46 http://ftpmaster.internal/ubuntu disco-security/main amd64 dbus amd64 1.12.12-1ubuntu1.1 [151 kB] Get:47 http://ftpmaster.internal/ubuntu disco-security/main amd64 libmagic-mgc amd64 1:5.35-4ubuntu0.1 [200 kB] Get:48 http://ftpmaster.internal/ubuntu disco-security/main amd64 libmagic1 amd64 1:5.35-4ubuntu0.1 [73.9 kB] Get:49 http://ftpmaster.internal/ubuntu disco-security/main amd64 file amd64 1:5.35-4ubuntu0.1 [22.9 kB] Get:50 http://ftpmaster.internal/ubuntu disco/main amd64 libelf1 amd64 0.176-1 [44.2 kB] Get:51 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libglib2.0-0 amd64 2.60.4-0ubuntu0.19.04.1 [1242 kB] Get:52 http://ftpmaster.internal/ubuntu disco/main amd64 libicu63 amd64 63.1-6 [8287 kB] Get:53 http://ftpmaster.internal/ubuntu disco/main amd64 libsodium23 amd64 1.0.17-1 [147 kB] Get:54 http://ftpmaster.internal/ubuntu disco/main amd64 libxml2 amd64 2.9.4+dfsg1-7ubuntu3 [625 kB] Get:55 http://ftpmaster.internal/ubuntu disco/main amd64 libyaml-0-2 amd64 0.2.1-1 [46.7 kB] Get:56 http://ftpmaster.internal/ubuntu disco/main amd64 netbase all 5.6 [13.0 kB] Get:57 http://ftpmaster.internal/ubuntu disco/main amd64 python3-cffi-backend amd64 1.12.2-1 [67.2 kB] Get:58 http://ftpmaster.internal/ubuntu disco/main amd64 python3-dbus amd64 1.2.8-3 [90.9 kB] Get:59 http://ftpmaster.internal/ubuntu disco/main amd64 python3-nacl amd64 1.3.0-2 [48.0 kB] Get:60 http://ftpmaster.internal/ubuntu disco/main amd64 python3-netifaces amd64 0.10.4-1build2 [12.7 kB] Get:61 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pkg-resources all 40.8.0-1 [100 kB] Get:62 http://ftpmaster.internal/ubuntu disco/main amd64 python3-yaml amd64 3.13-2 [117 kB] Get:63 http://ftpmaster.internal/ubuntu disco-security/main amd64 sudo amd64 1.8.27-1ubuntu1.1 [500 kB] Get:64 http://ftpmaster.internal/ubuntu disco/main amd64 gettext-base amd64 0.19.8.1-9 [50.1 kB] Get:65 http://ftpmaster.internal/ubuntu disco/main amd64 libkrb5support0 amd64 1.17-1 [33.3 kB] Get:66 http://ftpmaster.internal/ubuntu disco/main amd64 libk5crypto3 amd64 1.17-1 [85.8 kB] Get:67 http://ftpmaster.internal/ubuntu disco/main amd64 libkeyutils1 amd64 1.6-6 [10.1 kB] Get:68 http://ftpmaster.internal/ubuntu disco/main amd64 libkrb5-3 amd64 1.17-1 [329 kB] Get:69 http://ftpmaster.internal/ubuntu disco/main amd64 libgssapi-krb5-2 amd64 1.17-1 [123 kB] Get:70 http://ftpmaster.internal/ubuntu disco/main amd64 libpcre2-8-0 amd64 10.32-5 [180 kB] Get:71 http://ftpmaster.internal/ubuntu disco/main amd64 libpsl5 amd64 0.20.2-2 [50.0 kB] Get:72 http://ftpmaster.internal/ubuntu disco/main amd64 wget amd64 1.20.1-1ubuntu4 [316 kB] Get:73 http://ftpmaster.internal/ubuntu disco/main amd64 python3-dateutil all 2.7.3-3 [63.3 kB] Get:74 http://ftpmaster.internal/ubuntu disco/main amd64 python3-markupsafe amd64 1.1.0-1 [13.8 kB] Get:75 http://ftpmaster.internal/ubuntu disco/main amd64 python3-mako all 1.0.7+ds1-1 [59.3 kB] Get:76 http://ftpmaster.internal/ubuntu disco/main amd64 python3-sqlalchemy all 1.2.15+ds1-1 [720 kB] Get:77 http://ftpmaster.internal/ubuntu disco/main amd64 python3-alembic all 1.0.0-2ubuntu2 [108 kB] Get:78 http://ftpmaster.internal/ubuntu disco/main amd64 libjs-jquery all 3.3.1~dfsg-1 [329 kB] Get:79 http://ftpmaster.internal/ubuntu disco/main amd64 libjs-underscore all 1.9.1~dfsg-1 [98.6 kB] Get:80 http://ftpmaster.internal/ubuntu disco/main amd64 libjs-sphinxdoc all 1.8.5-1ubuntu1 [96.4 kB] Get:81 http://ftpmaster.internal/ubuntu disco/main amd64 alembic all 1.0.0-2ubuntu2 [243 kB] Get:82 http://ftpmaster.internal/ubuntu disco/main amd64 libsigsegv2 amd64 2.12-2 [13.9 kB] Get:83 http://ftpmaster.internal/ubuntu disco/main amd64 m4 amd64 1.4.18-2 [199 kB] Get:84 http://ftpmaster.internal/ubuntu disco/main amd64 autoconf all 2.69-11 [322 kB] Get:85 http://ftpmaster.internal/ubuntu disco/main amd64 autotools-dev all 20180224.1 [39.6 kB] Get:86 http://ftpmaster.internal/ubuntu disco/main amd64 automake all 1:1.16.1-4ubuntu3 [522 kB] Get:87 http://ftpmaster.internal/ubuntu disco/main amd64 autopoint all 0.19.8.1-9 [412 kB] Get:88 http://ftpmaster.internal/ubuntu disco/main amd64 python-six all 1.12.0-1 [11.6 kB] Get:89 http://ftpmaster.internal/ubuntu disco/universe amd64 python-iniparse all 0.4-2.2 [19.6 kB] Get:90 http://ftpmaster.internal/ubuntu disco/universe amd64 crudini amd64 0.7-1 [12.4 kB] Get:91 http://ftpmaster.internal/ubuntu disco/main amd64 libtool all 2.4.6-10 [194 kB] Get:92 http://ftpmaster.internal/ubuntu disco/main amd64 dh-autoreconf all 19 [16.1 kB] Get:93 http://ftpmaster.internal/ubuntu disco/main amd64 libarchive-zip-perl all 1.64-1 [84.9 kB] Get:94 http://ftpmaster.internal/ubuntu disco/main amd64 libfile-stripnondeterminism-perl all 1.1.2-1 [13.7 kB] Get:95 http://ftpmaster.internal/ubuntu disco/main amd64 dh-strip-nondeterminism all 1.1.2-1 [5208 B] Get:96 http://ftpmaster.internal/ubuntu disco/main amd64 dwz amd64 0.12-3 [78.1 kB] Get:97 http://ftpmaster.internal/ubuntu disco/main amd64 libcroco3 amd64 0.6.12-3 [81.4 kB] Get:98 http://ftpmaster.internal/ubuntu disco/main amd64 gettext amd64 0.19.8.1-9 [896 kB] Get:99 http://ftpmaster.internal/ubuntu disco/main amd64 intltool-debian all 0.35.0+20060710.5 [24.9 kB] Get:100 http://ftpmaster.internal/ubuntu disco/main amd64 po-debconf all 1.0.21 [233 kB] Get:101 http://ftpmaster.internal/ubuntu disco/main amd64 debhelper all 12ubuntu1 [887 kB] Get:102 http://ftpmaster.internal/ubuntu disco-updates/main amd64 python3-lib2to3 all 3.7.5-1~19.04 [75.7 kB] Get:103 http://ftpmaster.internal/ubuntu disco-updates/main amd64 python3-distutils all 3.7.5-1~19.04 [142 kB] Get:104 http://ftpmaster.internal/ubuntu disco/main amd64 dh-python all 3.20190308 [94.5 kB] Get:105 http://ftpmaster.internal/ubuntu disco/main amd64 xml-core all 0.18+nmu1 [21.6 kB] Get:106 http://ftpmaster.internal/ubuntu disco/main amd64 docutils-common all 0.14+dfsg-4 [156 kB] Get:107 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-mccabe all 0.6.1-2 [7816 B] Get:108 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-pyflakes all 2.0.0-1 [42.4 kB] Get:109 http://ftpmaster.internal/ubuntu disco/main amd64 python3-setuptools all 40.8.0-1 [252 kB] Get:110 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-pycodestyle all 2.4.0-2 [35.7 kB] Get:111 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-flake8 all 3.6.0-1 [51.5 kB] Get:112 http://ftpmaster.internal/ubuntu disco/universe amd64 flake8 all 3.6.0-1 [5924 B] Get:113 http://ftpmaster.internal/ubuntu disco/universe amd64 fonts-glyphicons-halflings all 1.009~3.4.0+dfsg-4 [117 kB] Get:114 http://ftpmaster.internal/ubuntu disco/main amd64 libroken18-heimdal amd64 7.5.0+dfsg-2.1 [41.4 kB] Get:115 http://ftpmaster.internal/ubuntu disco/main amd64 libasn1-8-heimdal amd64 7.5.0+dfsg-2.1 [182 kB] Get:116 http://ftpmaster.internal/ubuntu disco/main amd64 libheimbase1-heimdal amd64 7.5.0+dfsg-2.1 [29.4 kB] Get:117 http://ftpmaster.internal/ubuntu disco/main amd64 libhcrypto4-heimdal amd64 7.5.0+dfsg-2.1 [86.7 kB] Get:118 http://ftpmaster.internal/ubuntu disco/main amd64 libwind0-heimdal amd64 7.5.0+dfsg-2.1 [47.8 kB] Get:119 http://ftpmaster.internal/ubuntu disco/main amd64 libhx509-5-heimdal amd64 7.5.0+dfsg-2.1 [107 kB] Get:120 http://ftpmaster.internal/ubuntu disco/main amd64 libkrb5-26-heimdal amd64 7.5.0+dfsg-2.1 [206 kB] Get:121 http://ftpmaster.internal/ubuntu disco/main amd64 libheimntlm0-heimdal amd64 7.5.0+dfsg-2.1 [14.8 kB] Get:122 http://ftpmaster.internal/ubuntu disco/main amd64 libgssapi3-heimdal amd64 7.5.0+dfsg-2.1 [96.4 kB] Get:123 http://ftpmaster.internal/ubuntu disco/main amd64 libsasl2-modules-db amd64 2.1.27+dfsg-1 [14.9 kB] Get:124 http://ftpmaster.internal/ubuntu disco/main amd64 libsasl2-2 amd64 2.1.27+dfsg-1 [49.4 kB] Get:125 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libldap-common all 2.4.47+dfsg-3ubuntu2.2 [16.8 kB] Get:126 http://ftpmaster.internal/ubuntu disco-updates/main amd64 libldap-2.4-2 amd64 2.4.47+dfsg-3ubuntu2.2 [155 kB] Get:127 http://ftpmaster.internal/ubuntu disco/main amd64 libnghttp2-14 amd64 1.36.0-2 [79.0 kB] Get:128 http://ftpmaster.internal/ubuntu disco/main amd64 librtmp1 amd64 2.4+20151223.gitfa8646d.1-2 [54.5 kB] Get:129 http://ftpmaster.internal/ubuntu disco-security/main amd64 libssh-4 amd64 0.8.6-3ubuntu0.3 [185 kB] Get:130 http://ftpmaster.internal/ubuntu disco-security/main amd64 libcurl3-gnutls amd64 7.64.0-2ubuntu1.2 [231 kB] Get:131 http://ftpmaster.internal/ubuntu disco/main amd64 liberror-perl all 0.17027-2 [26.6 kB] Get:132 http://ftpmaster.internal/ubuntu disco-security/main amd64 git-man all 1:2.20.1-2ubuntu1.19.04.1 [835 kB] Get:133 http://ftpmaster.internal/ubuntu disco-security/main amd64 git amd64 1:2.20.1-2ubuntu1.19.04.1 [4104 kB] Get:134 http://ftpmaster.internal/ubuntu disco/main amd64 ieee-data all 20180805.1 [1589 kB] Get:135 http://ftpmaster.internal/ubuntu disco/universe amd64 libonig5 amd64 6.9.1-1 [135 kB] Get:136 http://ftpmaster.internal/ubuntu disco/universe amd64 libjq1 amd64 1.5+dfsg-2build1 [112 kB] Get:137 http://ftpmaster.internal/ubuntu disco/universe amd64 jq amd64 1.5+dfsg-2build1 [46.1 kB] Get:138 http://ftpmaster.internal/ubuntu disco/main amd64 libfreetype6 amd64 2.9.1-3 [335 kB] Get:139 http://ftpmaster.internal/ubuntu disco/main amd64 libimagequant0 amd64 2.12.2-1.1 [31.4 kB] Get:140 http://ftpmaster.internal/ubuntu disco-security/main amd64 libjpeg-turbo8 amd64 2.0.1-0ubuntu2.2 [118 kB] Get:141 http://ftpmaster.internal/ubuntu disco/main amd64 libjpeg8 amd64 8c-2ubuntu8 [2194 B] Get:142 http://ftpmaster.internal/ubuntu disco/universe amd64 libjs-bootstrap all 3.4.0+dfsg-4 [122 kB] Get:143 http://ftpmaster.internal/ubuntu disco/main amd64 liblcms2-2 amd64 2.9-3 [139 kB] Get:144 http://ftpmaster.internal/ubuntu disco-security/main amd64 libpq5 amd64 11.5-0ubuntu0.19.04.1 [105 kB] Get:145 http://ftpmaster.internal/ubuntu disco/universe amd64 libsubunit-perl all 1.3.0-1 [6640 B] Get:146 http://ftpmaster.internal/ubuntu disco/main amd64 libjbig0 amd64 2.1-3.1build1 [26.7 kB] Get:147 http://ftpmaster.internal/ubuntu disco/main amd64 libwebp6 amd64 0.6.1-2 [185 kB] Get:148 http://ftpmaster.internal/ubuntu disco-security/main amd64 libtiff5 amd64 4.0.10-4ubuntu0.1 [157 kB] Get:149 http://ftpmaster.internal/ubuntu disco/main amd64 libwebpdemux2 amd64 0.6.1-2 [9472 B] Get:150 http://ftpmaster.internal/ubuntu disco/main amd64 libwebpmux3 amd64 0.6.1-2 [19.6 kB] Get:151 http://ftpmaster.internal/ubuntu disco-security/main amd64 libxslt1.1 amd64 1.1.32-2ubuntu0.2 [150 kB] Get:152 http://ftpmaster.internal/ubuntu disco/main amd64 pycadf-common all 2.7.0-2 [5020 B] Get:153 http://ftpmaster.internal/ubuntu disco/universe amd64 pyflakes3 all 2.0.0-1 [3320 B] Get:154 http://ftpmaster.internal/ubuntu disco/universe amd64 python-all amd64 2.7.16-1 [1088 B] Get:155 http://ftpmaster.internal/ubuntu disco/main amd64 python-babel-localedata all 2.6.0+dfsg.1-1 [4071 kB] Get:156 http://ftpmaster.internal/ubuntu disco/universe amd64 python-extras all 1.0.0-3 [7392 B] Get:157 http://ftpmaster.internal/ubuntu disco/main amd64 python-pkg-resources all 40.8.0-1 [129 kB] Get:158 http://ftpmaster.internal/ubuntu disco/main amd64 python-setuptools all 40.8.0-1 [329 kB] Get:159 http://ftpmaster.internal/ubuntu disco/main amd64 python-pbr all 5.1.1-0ubuntu2 [61.0 kB] Get:160 http://ftpmaster.internal/ubuntu disco/universe amd64 python-linecache2 all 1.0.0-3 [12.4 kB] Get:161 http://ftpmaster.internal/ubuntu disco/universe amd64 python-mimeparse all 0.1.4-3.1 [6180 B] Get:162 http://ftpmaster.internal/ubuntu disco/universe amd64 python-traceback2 all 1.4.0-5 [16.4 kB] Get:163 http://ftpmaster.internal/ubuntu disco/universe amd64 python-unittest2 all 1.1.0-6.1 [75.5 kB] Get:164 http://ftpmaster.internal/ubuntu disco/universe amd64 python-testtools all 2.3.0-5 [124 kB] Get:165 http://ftpmaster.internal/ubuntu disco/universe amd64 python-fixtures all 3.0.0-2 [32.4 kB] Get:166 http://ftpmaster.internal/ubuntu disco/universe amd64 python-oslosphinx-common all 4.18.0-2 [15.1 kB] Get:167 http://ftpmaster.internal/ubuntu disco/main amd64 python-pastedeploy-tpl all 2.0.1-1 [5040 B] Get:168 http://ftpmaster.internal/ubuntu disco/universe amd64 python-subunit all 1.3.0-1 [62.4 kB] Get:169 http://ftpmaster.internal/ubuntu disco/universe amd64 python-testrepository all 0.0.20-3 [57.9 kB] Get:170 http://ftpmaster.internal/ubuntu disco/main amd64 python3-all amd64 3.7.3-1 [1112 B] Get:171 http://ftpmaster.internal/ubuntu disco/main amd64 python3-anyjson all 0.3.3-1build1 [7062 B] Get:172 http://ftpmaster.internal/ubuntu disco/main amd64 python3-appdirs all 1.4.3-1 [10.4 kB] Get:173 http://ftpmaster.internal/ubuntu disco/main amd64 python3-asn1crypto all 0.24.0-1 [72.8 kB] Get:174 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pbr all 5.1.1-0ubuntu2 [61.1 kB] Get:175 http://ftpmaster.internal/ubuntu disco/main amd64 python3-prettytable all 0.7.2-4 [20.0 kB] Get:176 http://ftpmaster.internal/ubuntu disco/main amd64 python3-automaton all 1.14.0-0ubuntu1 [15.0 kB] Get:177 http://ftpmaster.internal/ubuntu disco/main amd64 python3-tz all 2018.9-1 [24.6 kB] Get:178 http://ftpmaster.internal/ubuntu disco/main amd64 python3-babel all 2.6.0+dfsg.1-1 [83.4 kB] Get:179 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-bashate all 0.6.0-1 [13.7 kB] Get:180 http://ftpmaster.internal/ubuntu disco/main amd64 python3-blinker all 1.4+dfsg1-0.2 [13.1 kB] Get:181 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-funcparserlib all 0.3.6-7 [13.9 kB] Get:182 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pil amd64 5.4.1-1 [338 kB] Get:183 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-webcolors all 1.5-2 [10.4 kB] Get:184 http://ftpmaster.internal/ubuntu disco/main amd64 python3-roman all 2.0.0-3 [8624 B] Get:185 http://ftpmaster.internal/ubuntu disco/main amd64 python3-docutils all 0.14+dfsg-4 [363 kB] Get:186 http://ftpmaster.internal/ubuntu disco/main amd64 python3-reportlab-accel amd64 3.5.18-1 [18.3 kB] Get:187 http://ftpmaster.internal/ubuntu disco/main amd64 python3-reportlab all 3.5.18-1 [526 kB] Get:188 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-blockdiag all 1.5.3+dfsg-5.2 [69.9 kB] Get:189 http://ftpmaster.internal/ubuntu disco/main amd64 python3-soupsieve all 1.8+dfsg-1 [27.7 kB] Get:190 http://ftpmaster.internal/ubuntu disco/main amd64 python3-bs4 all 4.7.1-1build1 [71.8 kB] Get:191 http://ftpmaster.internal/ubuntu disco/main amd64 python3-cachetools all 3.1.0-2 [9772 B] Get:192 http://ftpmaster.internal/ubuntu disco/main amd64 python3-certifi all 2018.8.24-1 [140 kB] Get:193 http://ftpmaster.internal/ubuntu disco/main amd64 python3-chardet all 3.0.4-3 [80.4 kB] Get:194 http://ftpmaster.internal/ubuntu disco/main amd64 python3-iso8601 all 0.1.11-1 [9876 B] Get:195 http://ftpmaster.internal/ubuntu disco/main amd64 python3-lxml amd64 4.3.3-1 [1123 kB] Get:196 http://ftpmaster.internal/ubuntu disco/main amd64 python3-idna all 2.6-1 [32.5 kB] Get:197 http://ftpmaster.internal/ubuntu disco/main amd64 python3-cryptography amd64 2.3-1ubuntu2 [204 kB] Get:198 http://ftpmaster.internal/ubuntu disco/main amd64 python3-jwt all 1.7.0-2 [17.3 kB] Get:199 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oauthlib all 2.1.0-1 [70.7 kB] Get:200 http://ftpmaster.internal/ubuntu disco/main amd64 python3-os-service-types all 1.6.0-0ubuntu1 [13.0 kB] Get:201 http://ftpmaster.internal/ubuntu disco-security/main amd64 python3-urllib3 all 1.24.1-1ubuntu0.1 [83.8 kB] Get:202 http://ftpmaster.internal/ubuntu disco/main amd64 python3-requests all 2.21.0-1 [46.8 kB] Get:203 http://ftpmaster.internal/ubuntu disco/main amd64 python3-stevedore all 1:1.30.1-0ubuntu1 [18.7 kB] Get:204 http://ftpmaster.internal/ubuntu disco/main amd64 python3-keystoneauth1 all 3.13.1-0ubuntu1 [152 kB] Get:205 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.i18n all 3.23.1-0ubuntu1 [21.5 kB] Get:206 http://ftpmaster.internal/ubuntu disco/main amd64 python3-msgpack amd64 0.5.6-1build2 [75.9 kB] Get:207 http://ftpmaster.internal/ubuntu disco/main amd64 python3-wrapt amd64 1.10.11-1 [30.0 kB] Get:208 http://ftpmaster.internal/ubuntu disco/main amd64 python3-debtcollector all 1.20.0-2 [13.6 kB] Get:209 http://ftpmaster.internal/ubuntu disco/main amd64 python3-funcsigs all 1.0.2-4 [13.5 kB] Get:210 http://ftpmaster.internal/ubuntu disco/main amd64 python3-monotonic all 1.5-0ubuntu1 [5592 B] Get:211 http://ftpmaster.internal/ubuntu disco/main amd64 python3-netaddr all 0.7.19-1 [213 kB] Get:212 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.utils all 3.40.3-0ubuntu1 [58.9 kB] Get:213 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.serialization all 2.28.2-0ubuntu1 [15.5 kB] Get:214 http://ftpmaster.internal/ubuntu disco/main amd64 python3-simplejson amd64 3.16.0-1 [50.2 kB] Get:215 http://ftpmaster.internal/ubuntu disco/main amd64 python3-cinderclient all 1:4.1.0-0ubuntu1 [138 kB] Get:216 http://ftpmaster.internal/ubuntu disco/main amd64 python3-unicodecsv all 0.14.1-1 [11.4 kB] Get:217 http://ftpmaster.internal/ubuntu disco/main amd64 python3-cliff all 2.14.1-0ubuntu1 [40.5 kB] Get:218 http://ftpmaster.internal/ubuntu disco/main amd64 python3-contextlib2 all 0.5.5-1 [10.4 kB] Get:219 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-coverage amd64 4.5.2+dfsg.1-1 [108 kB] Get:220 http://ftpmaster.internal/ubuntu disco/main amd64 python3-crypto amd64 2.6.1-9build2 [236 kB] Get:221 http://ftpmaster.internal/ubuntu disco/main amd64 python3-decorator all 4.3.0-1.1 [9600 B] Get:222 http://ftpmaster.internal/ubuntu disco/main amd64 python3-packaging all 19.0-1 [18.4 kB] Get:223 http://ftpmaster.internal/ubuntu disco/main amd64 python3-deprecation all 2.0.6-1 [8384 B] Get:224 http://ftpmaster.internal/ubuntu disco/main amd64 python3-dnspython all 1.16.0-1 [89.1 kB] Get:225 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-restructuredtext-lint all 0.12.2-2 [9126 B] Get:226 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-doc8 all 0.8.0-1 [13.8 kB] Get:227 http://ftpmaster.internal/ubuntu disco/main amd64 python3-dogpile.cache all 0.6.2-6 [33.5 kB] Get:228 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-dulwich amd64 0.19.11-2 [244 kB] Get:229 http://ftpmaster.internal/ubuntu disco/main amd64 python3-entrypoints all 0.3-1 [5556 B] Get:230 http://ftpmaster.internal/ubuntu disco/main amd64 python3-greenlet amd64 0.4.15-2 [15.5 kB] Get:231 http://ftpmaster.internal/ubuntu disco-updates/main amd64 python3-eventlet all 0.24.1-0ubuntu3.1 [154 kB] Get:232 http://ftpmaster.internal/ubuntu disco/main amd64 python3-extras all 1.0.0-3 [7480 B] Get:233 http://ftpmaster.internal/ubuntu disco/main amd64 python3-fasteners all 0.12.0-3 [13.5 kB] Get:234 http://ftpmaster.internal/ubuntu disco/main amd64 python3-linecache2 all 1.0.0-3 [12.5 kB] Get:235 http://ftpmaster.internal/ubuntu disco/main amd64 python3-mimeparse all 0.1.4-3.1 [6256 B] Get:236 http://ftpmaster.internal/ubuntu disco/main amd64 python3-traceback2 all 1.4.0-5 [16.4 kB] Get:237 http://ftpmaster.internal/ubuntu disco/main amd64 python3-unittest2 all 1.1.0-6.1 [69.2 kB] Get:238 http://ftpmaster.internal/ubuntu disco/main amd64 python3-testtools all 2.3.0-5 [124 kB] Get:239 http://ftpmaster.internal/ubuntu disco/main amd64 python3-fixtures all 3.0.0-2 [32.4 kB] Get:240 http://ftpmaster.internal/ubuntu disco/main amd64 python3-future all 0.16.0-1 [334 kB] Get:241 http://ftpmaster.internal/ubuntu disco/main amd64 python3-futurist all 1.7.0-0ubuntu1 [24.6 kB] Get:242 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pep8 all 1.7.1-3 [31.8 kB] Get:243 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-hacking all 1.1.0-2 [20.9 kB] Get:244 http://ftpmaster.internal/ubuntu disco/main amd64 python3-imagesize all 1.0.0-1 [5004 B] Get:245 http://ftpmaster.internal/ubuntu disco/main amd64 python3-rfc3986 all 1.2.0-0ubuntu1 [19.6 kB] Get:246 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.config all 1:6.8.1-0ubuntu1 [86.4 kB] Get:247 http://ftpmaster.internal/ubuntu disco/main amd64 python3-posix-ipc amd64 0.9.8-3build2 [15.4 kB] Get:248 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.concurrency all 3.29.1-0ubuntu1 [28.8 kB] Get:249 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.context all 1:2.22.1-0ubuntu1 [12.8 kB] Get:250 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pyinotify all 0.9.6-1 [24.7 kB] Get:251 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.log all 3.42.3-0ubuntu1 [43.1 kB] Get:252 http://ftpmaster.internal/ubuntu disco/main amd64 python3-tempita all 0.5.2-2 [13.9 kB] Get:253 http://ftpmaster.internal/ubuntu disco/main amd64 python3-paste all 3.0.6+dfsg-1 [456 kB] Get:254 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pastedeploy all 2.0.1-1 [13.7 kB] Get:255 http://ftpmaster.internal/ubuntu disco/main amd64 python3-repoze.lru all 0.7-1 [11.7 kB] Get:256 http://ftpmaster.internal/ubuntu disco/main amd64 python3-routes all 2.4.1-1 [28.4 kB] Get:257 http://ftpmaster.internal/ubuntu disco/main amd64 python3-webob all 1:1.8.5-1 [84.4 kB] Get:258 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.service all 1.38.0-0ubuntu1 [47.9 kB] Get:259 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-ironic-lib all 2.16.2-0ubuntu1 [37.7 kB] Get:260 http://ftpmaster.internal/ubuntu disco-security/main amd64 python3-jinja2 all 2.10-1ubuntu0.19.04.1 [95.4 kB] Get:261 http://ftpmaster.internal/ubuntu disco/main amd64 python3-jmespath all 0.9.4-1 [18.6 kB] Get:262 http://ftpmaster.internal/ubuntu disco/main amd64 python3-json-pointer all 1.10-1 [7478 B] Get:263 http://ftpmaster.internal/ubuntu disco/main amd64 python3-jsonpatch all 1.21-1 [12.0 kB] Get:264 http://ftpmaster.internal/ubuntu disco/main amd64 python3-jsonschema all 2.6.0-4ubuntu2 [31.1 kB] Get:265 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pygments all 2.3.1+dfsg-1 [580 kB] Get:266 http://ftpmaster.internal/ubuntu disco/main amd64 python3-kazoo all 2.5.0-1ubuntu1 [90.1 kB] Get:267 http://ftpmaster.internal/ubuntu disco/main amd64 python3-secretstorage all 2.3.1-2 [12.1 kB] Get:268 http://ftpmaster.internal/ubuntu disco/main amd64 python3-keyring all 17.1.1-1 [28.1 kB] Get:269 http://ftpmaster.internal/ubuntu disco/main amd64 python3-keystoneclient all 1:3.19.0-0ubuntu1 [177 kB] Get:270 http://ftpmaster.internal/ubuntu disco/main amd64 python3-memcache all 1.59-1 [17.9 kB] Get:271 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.cache all 1.33.2-0ubuntu1 [32.2 kB] Get:272 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pycadf all 2.7.0-2 [17.4 kB] Get:273 http://ftpmaster.internal/ubuntu disco/main amd64 python3-keystonemiddleware all 6.0.0-0ubuntu1 [70.2 kB] Get:274 http://ftpmaster.internal/ubuntu disco/main amd64 python3-vine all 1.1.4+dfsg-2 [15.7 kB] Get:275 http://ftpmaster.internal/ubuntu disco/main amd64 python3-amqp all 2.4.0-1 [40.9 kB] Get:276 http://ftpmaster.internal/ubuntu disco/main amd64 python3-kombu all 4.2.1-1 [126 kB] Get:277 http://ftpmaster.internal/ubuntu disco/main amd64 python3-logutils all 0.3.3-5 [16.7 kB] Get:278 http://ftpmaster.internal/ubuntu disco/main amd64 python3-sqlparse all 0.2.4-1 [28.2 kB] Get:279 http://ftpmaster.internal/ubuntu disco/main amd64 python3-migrate all 0.11.0-5 [69.7 kB] Get:280 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-mox3 all 0.24.0-1 [32.5 kB] Get:281 http://ftpmaster.internal/ubuntu disco/main amd64 python3-munch all 2.3.2-1 [7904 B] Get:282 http://ftpmaster.internal/ubuntu disco/main amd64 python3-requestsexceptions all 1.4.0-1 [4196 B] Get:283 http://ftpmaster.internal/ubuntu disco/main amd64 python3-openstacksdk all 0.26.0-0ubuntu1 [476 kB] Get:284 http://ftpmaster.internal/ubuntu disco/main amd64 python3-os-client-config all 1.31.2-0ubuntu1 [18.8 kB] Get:285 http://ftpmaster.internal/ubuntu disco/main amd64 python3-osc-lib all 1.12.1-0ubuntu1 [49.4 kB] Get:286 http://ftpmaster.internal/ubuntu disco/main amd64 python3-neutronclient all 1:6.11.0-0ubuntu1 [175 kB] Get:287 http://ftpmaster.internal/ubuntu disco/main amd64 python3-novaclient all 2:13.0.0-0ubuntu1 [171 kB] Get:288 http://ftpmaster.internal/ubuntu disco/main amd64 python3-openssl all 19.0.0-1 [43.2 kB] Get:289 http://ftpmaster.internal/ubuntu disco/main amd64 python3-warlock all 1.2.0-2 [5784 B] Get:290 http://ftpmaster.internal/ubuntu disco/main amd64 python3-glanceclient all 1:2.16.0-0ubuntu1 [110 kB] Get:291 http://ftpmaster.internal/ubuntu disco/main amd64 python3-openstackclient all 3.18.0-0ubuntu1 [369 kB] Get:292 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-openstackdocstheme all 1.29.1-0ubuntu1 [854 kB] Get:293 http://ftpmaster.internal/ubuntu disco/main amd64 python3-voluptuous all 0.11.1-1 [31.5 kB] Get:294 http://ftpmaster.internal/ubuntu disco/main amd64 python3-subunit all 1.3.0-1 [62.2 kB] Get:295 http://ftpmaster.internal/ubuntu disco/universe amd64 subunit all 1.3.0-1 [9292 B] Get:296 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-stestr all 2.1.0-2 [48.4 kB] Get:297 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-os-testr all 1.0.0-4ubuntu1 [25.3 kB] Get:298 http://ftpmaster.internal/ubuntu disco/main amd64 python3-os-traits all 0.11.0-0ubuntu1 [11.4 kB] Get:299 http://ftpmaster.internal/ubuntu disco/main amd64 python3-testresources all 2.0.0-2 [26.4 kB] Get:300 http://ftpmaster.internal/ubuntu disco/main amd64 python3-testscenarios all 0.5.0-2 [13.5 kB] Get:301 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.db all 4.44.0-0ubuntu1 [112 kB] Get:302 http://ftpmaster.internal/ubuntu disco/main amd64 python3-statsd all 3.2.1-2 [10.5 kB] Get:303 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.middleware all 3.37.1-0ubuntu1 [31.0 kB] Get:304 http://ftpmaster.internal/ubuntu disco/main amd64 python3-tenacity all 5.0.3-0ubuntu1 [18.3 kB] Get:305 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.messaging all 9.5.0-0ubuntu1 [145 kB] Get:306 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.policy all 2.1.1-0ubuntu1 [47.6 kB] Get:307 http://ftpmaster.internal/ubuntu disco-security/main amd64 python3-psutil amd64 5.5.1-1ubuntu0.19.04.1 [141 kB] Get:308 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.reports all 1.29.2-0ubuntu1 [25.8 kB] Get:309 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.rootwrap all 5.15.2-0ubuntu1 [23.4 kB] Get:310 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.upgradecheck all 0.2.1-0ubuntu1 [7004 B] Get:311 http://ftpmaster.internal/ubuntu disco/main amd64 python3-oslo.versionedobjects all 1.35.1-0ubuntu1 [57.0 kB] Get:312 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-oslosphinx all 4.18.0-2 [18.1 kB] Get:313 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-mock all 2.0.0-4 [47.7 kB] Get:314 http://ftpmaster.internal/ubuntu disco/main amd64 python3-testrepository all 0.0.20-3 [58.0 kB] Get:315 http://ftpmaster.internal/ubuntu disco/universe amd64 testrepository all 0.0.20-3 [12.1 kB] Get:316 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-oslotest all 1:3.7.1-0ubuntu1 [18.7 kB] Get:317 http://ftpmaster.internal/ubuntu disco/main amd64 python3-osprofiler all 2.3.0-3 [46.6 kB] Get:318 http://ftpmaster.internal/ubuntu disco/main amd64 python3-bcrypt amd64 3.1.6-1 [30.1 kB] Get:319 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pyasn1 all 0.4.2-3 [46.8 kB] Get:320 http://ftpmaster.internal/ubuntu disco/main amd64 python3-paramiko all 2.4.2-0.1ubuntu1 [118 kB] Get:321 http://ftpmaster.internal/ubuntu disco/main amd64 python3-simplegeneric all 0.8.1-2 [11.2 kB] Get:322 http://ftpmaster.internal/ubuntu disco/main amd64 python3-singledispatch all 3.4.0.3-2 [7022 B] Get:323 http://ftpmaster.internal/ubuntu disco/main amd64 python3-waitress all 1.2.0~b2-2 [75.0 kB] Get:324 http://ftpmaster.internal/ubuntu disco/main amd64 python3-webtest all 2.0.28-1ubuntu1 [27.9 kB] Get:325 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pecan all 1.3.2-0ubuntu1 [86.1 kB] Get:326 http://ftpmaster.internal/ubuntu disco/main amd64 python3-ply all 3.11-3 [46.5 kB] Get:327 http://ftpmaster.internal/ubuntu disco/main amd64 python3-psycopg2 amd64 2.7.7-1 [153 kB] Get:328 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pycryptodome amd64 3.6.1-2build2 [5137 kB] Get:329 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-pyghmi all 1.0.32-5 [99.6 kB] Get:330 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pymemcache all 1.3.2-3 [23.0 kB] Get:331 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pymysql all 0.9.3-1 [38.8 kB] Get:332 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pysmi all 0.3.2-1 [48.9 kB] Get:333 http://ftpmaster.internal/ubuntu disco/main amd64 python3-pysnmp4 all 4.4.6+repack1-1 [152 kB] Get:334 http://ftpmaster.internal/ubuntu disco/main amd64 python3-redis all 3.2.0-2 [55.0 kB] Get:335 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-reno all 2.9.2-1 [39.8 kB] Get:336 http://ftpmaster.internal/ubuntu disco/main amd64 python3-retrying all 1.3.3-3 [7980 B] Get:337 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-scciclient all 0.8.0-0ubuntu1 [45.8 kB] Get:338 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-sendfile amd64 2.0.1-2build1 [8812 B] Get:339 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-seqdiag all 0.9.5+dfsg-1.1 [20.8 kB] Get:340 http://ftpmaster.internal/ubuntu disco/main amd64 sphinx-common all 1.8.5-1ubuntu1 [500 kB] Get:341 http://ftpmaster.internal/ubuntu disco/main amd64 python3-alabaster all 0.7.8-1 [18.5 kB] Get:342 http://ftpmaster.internal/ubuntu disco/main amd64 python3-sphinx all 1.8.5-1ubuntu1 [482 kB] Get:343 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-sphinxcontrib.httpdomain all 1.5.0-2 [14.7 kB] Get:344 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-sphinxcontrib-pecanwsme all 0.8.0-7 [7020 B] Get:345 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-sphinxcontrib.apidoc all 0.2.1-2 [7284 B] Get:346 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-sphinxcontrib.seqdiag all 0.8.5-1 [7508 B] Get:347 http://ftpmaster.internal/ubuntu disco/main amd64 python3-zope.interface amd64 4.3.2-1build4 [82.3 kB] Get:348 http://ftpmaster.internal/ubuntu disco/main amd64 python3-zake all 0.2.2-2 [14.2 kB] Get:349 http://ftpmaster.internal/ubuntu disco/main amd64 python3-tooz all 1.64.2-0ubuntu1 [49.0 kB] Get:350 http://ftpmaster.internal/ubuntu disco/main amd64 python3-wsme all 0.9.3-2ubuntu1 [61.0 kB] Get:351 http://ftpmaster.internal/ubuntu disco/universe amd64 openstack-pkg-tools all 89ubuntu1 [89.1 kB] Get:352 http://ftpmaster.internal/ubuntu disco/universe amd64 python-os-api-ref-common all 1.4.0-1ubuntu3 [9960 B] Get:353 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-ironicclient all 2.7.0-0ubuntu1 [147 kB] Get:354 http://ftpmaster.internal/ubuntu disco/universe amd64 python3-os-api-ref all 1.4.0-1ubuntu3 [23.0 kB] Get:355 http://ftpmaster.internal/ubuntu disco/main amd64 python3-swiftclient all 1:3.7.0-0ubuntu1 [65.8 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 66.5 MB in 1s (50.1 MB/s) Selecting previously unselected package libpython3.7-minimal:amd64. (Reading database ... 12800 files and directories currently installed.) Preparing to unpack .../libpython3.7-minimal_3.7.3-2ubuntu0.2_amd64.deb ... Unpacking libpython3.7-minimal:amd64 (3.7.3-2ubuntu0.2) ... Selecting previously unselected package libexpat1:amd64. Preparing to unpack .../libexpat1_2.2.6-1ubuntu0.19.5_amd64.deb ... Unpacking libexpat1:amd64 (2.2.6-1ubuntu0.19.5) ... Selecting previously unselected package python3.7-minimal. Preparing to unpack .../python3.7-minimal_3.7.3-2ubuntu0.2_amd64.deb ... Unpacking python3.7-minimal (3.7.3-2ubuntu0.2) ... Setting up libpython3.7-minimal:amd64 (3.7.3-2ubuntu0.2) ... Setting up libexpat1:amd64 (2.2.6-1ubuntu0.19.5) ... Setting up python3.7-minimal (3.7.3-2ubuntu0.2) ... Selecting previously unselected package python3-minimal. (Reading database ... 13049 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.7.3-1_amd64.deb ... Unpacking python3-minimal (3.7.3-1) ... Selecting previously unselected package mime-support. Preparing to unpack .../1-mime-support_3.60ubuntu1_all.deb ... Unpacking mime-support (3.60ubuntu1) ... Selecting previously unselected package libmpdec2:amd64. Preparing to unpack .../2-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 .../3-libpython3.7-stdlib_3.7.3-2ubuntu0.2_amd64.deb ... Unpacking libpython3.7-stdlib:amd64 (3.7.3-2ubuntu0.2) ... Selecting previously unselected package python3.7. Preparing to unpack .../4-python3.7_3.7.3-2ubuntu0.2_amd64.deb ... Unpacking python3.7 (3.7.3-2ubuntu0.2) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../5-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 ... 13486 files and directories currently installed.) Preparing to unpack .../00-python3_3.7.3-1_amd64.deb ... Unpacking python3 (3.7.3-1) ... Selecting previously unselected package libxau6:amd64. Preparing to unpack .../01-libxau6_1%3a1.0.8-1_amd64.deb ... Unpacking libxau6:amd64 (1:1.0.8-1) ... Selecting previously unselected package libbsd0:amd64. Preparing to unpack .../02-libbsd0_0.9.1-2ubuntu0.1_amd64.deb ... Unpacking libbsd0:amd64 (0.9.1-2ubuntu0.1) ... Selecting previously unselected package libxdmcp6:amd64. Preparing to unpack .../03-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 .../04-libxcb1_1.13.1-2_amd64.deb ... Unpacking libxcb1:amd64 (1.13.1-2) ... Selecting previously unselected package libx11-data. Preparing to unpack .../05-libx11-data_2%3a1.6.7-1_all.deb ... Unpacking libx11-data (2:1.6.7-1) ... Selecting previously unselected package libx11-6:amd64. Preparing to unpack .../06-libx11-6_2%3a1.6.7-1_amd64.deb ... Unpacking libx11-6:amd64 (2:1.6.7-1) ... Selecting previously unselected package libxext6:amd64. Preparing to unpack .../07-libxext6_2%3a1.3.3-1_amd64.deb ... Unpacking libxext6:amd64 (2:1.3.3-1) ... Selecting previously unselected package bsdmainutils. Preparing to unpack .../08-bsdmainutils_11.1.2ubuntu2_amd64.deb ... Unpacking bsdmainutils (11.1.2ubuntu2) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../09-libuchardet0_0.0.6-3_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.6-3) ... Selecting previously unselected package groff-base. Preparing to unpack .../10-groff-base_1.22.4-3_amd64.deb ... Unpacking groff-base (1.22.4-3) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../11-libpipeline1_1.5.1-2_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.1-2) ... Selecting previously unselected package man-db. Preparing to unpack .../12-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 .../13-libpython2.7-minimal_2.7.16-2ubuntu0.2_amd64.deb ... Unpacking libpython2.7-minimal:amd64 (2.7.16-2ubuntu0.2) ... Selecting previously unselected package python2.7-minimal. Preparing to unpack .../14-python2.7-minimal_2.7.16-2ubuntu0.2_amd64.deb ... Unpacking python2.7-minimal (2.7.16-2ubuntu0.2) ... Selecting previously unselected package python2-minimal. Preparing to unpack .../15-python2-minimal_2.7.16-1_amd64.deb ... Unpacking python2-minimal (2.7.16-1) ... Selecting previously unselected package python-minimal. Preparing to unpack .../16-python-minimal_2.7.16-1_amd64.deb ... Unpacking python-minimal (2.7.16-1) ... Selecting previously unselected package libpython2.7-stdlib:amd64. Preparing to unpack .../17-libpython2.7-stdlib_2.7.16-2ubuntu0.2_amd64.deb ... Unpacking libpython2.7-stdlib:amd64 (2.7.16-2ubuntu0.2) ... Selecting previously unselected package python2.7. Preparing to unpack .../18-python2.7_2.7.16-2ubuntu0.2_amd64.deb ... Unpacking python2.7 (2.7.16-2ubuntu0.2) ... Selecting previously unselected package libpython2-stdlib:amd64. Preparing to unpack .../19-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 .../20-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-2ubuntu0.2) ... Setting up python2.7-minimal (2.7.16-2ubuntu0.2) ... Setting up python2-minimal (2.7.16-1) ... Selecting previously unselected package python2. (Reading database ... 15133 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 ... 15165 files and directories currently installed.) Preparing to unpack .../000-python_2.7.16-1_amd64.deb ... Unpacking python (2.7.16-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 x11-common. Preparing to unpack .../002-x11-common_1%3a7.7+19ubuntu12_all.deb ... dpkg-query: no packages found matching nux-tools Unpacking x11-common (1:7.7+19ubuntu12) ... Selecting previously unselected package libice6:amd64. Preparing to unpack .../003-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 .../004-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 .../005-libxt6_1%3a1.1.5-1_amd64.deb ... Unpacking libxt6:amd64 (1:1.1.5-1) ... Selecting previously unselected package libxmu6:amd64. Preparing to unpack .../006-libxmu6_2%3a1.1.2-2_amd64.deb ... Unpacking libxmu6:amd64 (2:1.1.2-2) ... Selecting previously unselected package xclip. Preparing to unpack .../007-xclip_0.13-1_amd64.deb ... Unpacking xclip (0.13-1) ... Selecting previously unselected package python3-pyperclip. Preparing to unpack .../008-python3-pyperclip_1.6.4-1_all.deb ... Unpacking python3-pyperclip (1.6.4-1) ... Selecting previously unselected package python3-six. Preparing to unpack .../009-python3-six_1.12.0-1_all.deb ... Unpacking python3-six (1.12.0-1) ... Selecting previously unselected package python3-cmd2. Preparing to unpack .../010-python3-cmd2_0.7.9-0ubuntu1_all.deb ... Unpacking python3-cmd2 (0.7.9-0ubuntu1) ... Selecting previously unselected package sgml-base. Preparing to unpack .../011-sgml-base_1.29_all.deb ... Unpacking sgml-base (1.29) ... Selecting previously unselected package libdbus-1-3:amd64. Preparing to unpack .../012-libdbus-1-3_1.12.12-1ubuntu1.1_amd64.deb ... Unpacking libdbus-1-3:amd64 (1.12.12-1ubuntu1.1) ... Selecting previously unselected package dbus. Preparing to unpack .../013-dbus_1.12.12-1ubuntu1.1_amd64.deb ... Unpacking dbus (1.12.12-1ubuntu1.1) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../014-libmagic-mgc_1%3a5.35-4ubuntu0.1_amd64.deb ... Unpacking libmagic-mgc (1:5.35-4ubuntu0.1) ... Selecting previously unselected package libmagic1:amd64. Preparing to unpack .../015-libmagic1_1%3a5.35-4ubuntu0.1_amd64.deb ... Unpacking libmagic1:amd64 (1:5.35-4ubuntu0.1) ... Selecting previously unselected package file. Preparing to unpack .../016-file_1%3a5.35-4ubuntu0.1_amd64.deb ... Unpacking file (1:5.35-4ubuntu0.1) ... Selecting previously unselected package libelf1:amd64. Preparing to unpack .../017-libelf1_0.176-1_amd64.deb ... Unpacking libelf1:amd64 (0.176-1) ... Selecting previously unselected package libglib2.0-0:amd64. Preparing to unpack .../018-libglib2.0-0_2.60.4-0ubuntu0.19.04.1_amd64.deb ... Unpacking libglib2.0-0:amd64 (2.60.4-0ubuntu0.19.04.1) ... Selecting previously unselected package libicu63:amd64. Preparing to unpack .../019-libicu63_63.1-6_amd64.deb ... Unpacking libicu63:amd64 (63.1-6) ... Selecting previously unselected package libsodium23:amd64. Preparing to unpack .../020-libsodium23_1.0.17-1_amd64.deb ... Unpacking libsodium23:amd64 (1.0.17-1) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../021-libxml2_2.9.4+dfsg1-7ubuntu3_amd64.deb ... Unpacking libxml2:amd64 (2.9.4+dfsg1-7ubuntu3) ... Selecting previously unselected package libyaml-0-2:amd64. Preparing to unpack .../022-libyaml-0-2_0.2.1-1_amd64.deb ... Unpacking libyaml-0-2:amd64 (0.2.1-1) ... Selecting previously unselected package netbase. Preparing to unpack .../023-netbase_5.6_all.deb ... Unpacking netbase (5.6) ... Selecting previously unselected package python3-cffi-backend. Preparing to unpack .../024-python3-cffi-backend_1.12.2-1_amd64.deb ... Unpacking python3-cffi-backend (1.12.2-1) ... Selecting previously unselected package python3-dbus. Preparing to unpack .../025-python3-dbus_1.2.8-3_amd64.deb ... Unpacking python3-dbus (1.2.8-3) ... Selecting previously unselected package python3-nacl. Preparing to unpack .../026-python3-nacl_1.3.0-2_amd64.deb ... Unpacking python3-nacl (1.3.0-2) ... Selecting previously unselected package python3-netifaces. Preparing to unpack .../027-python3-netifaces_0.10.4-1build2_amd64.deb ... Unpacking python3-netifaces (0.10.4-1build2) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../028-python3-pkg-resources_40.8.0-1_all.deb ... Unpacking python3-pkg-resources (40.8.0-1) ... Selecting previously unselected package python3-yaml. Preparing to unpack .../029-python3-yaml_3.13-2_amd64.deb ... Unpacking python3-yaml (3.13-2) ... Selecting previously unselected package sudo. Preparing to unpack .../030-sudo_1.8.27-1ubuntu1.1_amd64.deb ... Unpacking sudo (1.8.27-1ubuntu1.1) ... 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 libkrb5support0:amd64. Preparing to unpack .../032-libkrb5support0_1.17-1_amd64.deb ... Unpacking libkrb5support0:amd64 (1.17-1) ... Selecting previously unselected package libk5crypto3:amd64. Preparing to unpack .../033-libk5crypto3_1.17-1_amd64.deb ... Unpacking libk5crypto3:amd64 (1.17-1) ... Selecting previously unselected package libkeyutils1:amd64. Preparing to unpack .../034-libkeyutils1_1.6-6_amd64.deb ... Unpacking libkeyutils1:amd64 (1.6-6) ... Selecting previously unselected package libkrb5-3:amd64. Preparing to unpack .../035-libkrb5-3_1.17-1_amd64.deb ... Unpacking libkrb5-3:amd64 (1.17-1) ... Selecting previously unselected package libgssapi-krb5-2:amd64. Preparing to unpack .../036-libgssapi-krb5-2_1.17-1_amd64.deb ... Unpacking libgssapi-krb5-2:amd64 (1.17-1) ... Selecting previously unselected package libpcre2-8-0:amd64. Preparing to unpack .../037-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 .../038-libpsl5_0.20.2-2_amd64.deb ... Unpacking libpsl5:amd64 (0.20.2-2) ... Selecting previously unselected package wget. Preparing to unpack .../039-wget_1.20.1-1ubuntu4_amd64.deb ... Unpacking wget (1.20.1-1ubuntu4) ... Selecting previously unselected package python3-dateutil. Preparing to unpack .../040-python3-dateutil_2.7.3-3_all.deb ... Unpacking python3-dateutil (2.7.3-3) ... Selecting previously unselected package python3-markupsafe. Preparing to unpack .../041-python3-markupsafe_1.1.0-1_amd64.deb ... Unpacking python3-markupsafe (1.1.0-1) ... Selecting previously unselected package python3-mako. Preparing to unpack .../042-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 .../043-python3-sqlalchemy_1.2.15+ds1-1_all.deb ... Unpacking python3-sqlalchemy (1.2.15+ds1-1) ... Selecting previously unselected package python3-alembic. Preparing to unpack .../044-python3-alembic_1.0.0-2ubuntu2_all.deb ... Unpacking python3-alembic (1.0.0-2ubuntu2) ... Selecting previously unselected package libjs-jquery. Preparing to unpack .../045-libjs-jquery_3.3.1~dfsg-1_all.deb ... Unpacking libjs-jquery (3.3.1~dfsg-1) ... Selecting previously unselected package libjs-underscore. Preparing to unpack .../046-libjs-underscore_1.9.1~dfsg-1_all.deb ... Unpacking libjs-underscore (1.9.1~dfsg-1) ... Selecting previously unselected package libjs-sphinxdoc. Preparing to unpack .../047-libjs-sphinxdoc_1.8.5-1ubuntu1_all.deb ... Unpacking libjs-sphinxdoc (1.8.5-1ubuntu1) ... Selecting previously unselected package alembic. Preparing to unpack .../048-alembic_1.0.0-2ubuntu2_all.deb ... Unpacking alembic (1.0.0-2ubuntu2) ... Selecting previously unselected package libsigsegv2:amd64. Preparing to unpack .../049-libsigsegv2_2.12-2_amd64.deb ... Unpacking libsigsegv2:amd64 (2.12-2) ... Selecting previously unselected package m4. Preparing to unpack .../050-m4_1.4.18-2_amd64.deb ... Unpacking m4 (1.4.18-2) ... Selecting previously unselected package autoconf. Preparing to unpack .../051-autoconf_2.69-11_all.deb ... Unpacking autoconf (2.69-11) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../052-autotools-dev_20180224.1_all.deb ... Unpacking autotools-dev (20180224.1) ... Selecting previously unselected package automake. Preparing to unpack .../053-automake_1%3a1.16.1-4ubuntu3_all.deb ... Unpacking automake (1:1.16.1-4ubuntu3) ... Selecting previously unselected package autopoint. Preparing to unpack .../054-autopoint_0.19.8.1-9_all.deb ... Unpacking autopoint (0.19.8.1-9) ... Selecting previously unselected package python-six. Preparing to unpack .../055-python-six_1.12.0-1_all.deb ... Unpacking python-six (1.12.0-1) ... Selecting previously unselected package python-iniparse. Preparing to unpack .../056-python-iniparse_0.4-2.2_all.deb ... Unpacking python-iniparse (0.4-2.2) ... Selecting previously unselected package crudini. Preparing to unpack .../057-crudini_0.7-1_amd64.deb ... Unpacking crudini (0.7-1) ... Selecting previously unselected package libtool. Preparing to unpack .../058-libtool_2.4.6-10_all.deb ... Unpacking libtool (2.4.6-10) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../059-dh-autoreconf_19_all.deb ... Unpacking dh-autoreconf (19) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../060-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 .../061-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 .../062-dh-strip-nondeterminism_1.1.2-1_all.deb ... Unpacking dh-strip-nondeterminism (1.1.2-1) ... Selecting previously unselected package dwz. Preparing to unpack .../063-dwz_0.12-3_amd64.deb ... Unpacking dwz (0.12-3) ... Selecting previously unselected package libcroco3:amd64. Preparing to unpack .../064-libcroco3_0.6.12-3_amd64.deb ... Unpacking libcroco3:amd64 (0.6.12-3) ... Selecting previously unselected package gettext. Preparing to unpack .../065-gettext_0.19.8.1-9_amd64.deb ... Unpacking gettext (0.19.8.1-9) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../066-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 .../067-po-debconf_1.0.21_all.deb ... Unpacking po-debconf (1.0.21) ... Selecting previously unselected package debhelper. Preparing to unpack .../068-debhelper_12ubuntu1_all.deb ... Unpacking debhelper (12ubuntu1) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../069-python3-lib2to3_3.7.5-1~19.04_all.deb ... Unpacking python3-lib2to3 (3.7.5-1~19.04) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../070-python3-distutils_3.7.5-1~19.04_all.deb ... Unpacking python3-distutils (3.7.5-1~19.04) ... 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.0+dfsg-4_all.deb ... Unpacking fonts-glyphicons-halflings (1.009~3.4.0+dfsg-4) ... Selecting previously unselected package libroken18-heimdal:amd64. Preparing to unpack .../081-libroken18-heimdal_7.5.0+dfsg-2.1_amd64.deb ... Unpacking libroken18-heimdal:amd64 (7.5.0+dfsg-2.1) ... Selecting previously unselected package libasn1-8-heimdal:amd64. Preparing to unpack .../082-libasn1-8-heimdal_7.5.0+dfsg-2.1_amd64.deb ... Unpacking libasn1-8-heimdal:amd64 (7.5.0+dfsg-2.1) ... Selecting previously unselected package libheimbase1-heimdal:amd64. Preparing to unpack .../083-libheimbase1-heimdal_7.5.0+dfsg-2.1_amd64.deb ... Unpacking libheimbase1-heimdal:amd64 (7.5.0+dfsg-2.1) ... Selecting previously unselected package libhcrypto4-heimdal:amd64. Preparing to unpack .../084-libhcrypto4-heimdal_7.5.0+dfsg-2.1_amd64.deb ... Unpacking libhcrypto4-heimdal:amd64 (7.5.0+dfsg-2.1) ... Selecting previously unselected package libwind0-heimdal:amd64. Preparing to unpack .../085-libwind0-heimdal_7.5.0+dfsg-2.1_amd64.deb ... Unpacking libwind0-heimdal:amd64 (7.5.0+dfsg-2.1) ... Selecting previously unselected package libhx509-5-heimdal:amd64. Preparing to unpack .../086-libhx509-5-heimdal_7.5.0+dfsg-2.1_amd64.deb ... Unpacking libhx509-5-heimdal:amd64 (7.5.0+dfsg-2.1) ... Selecting previously unselected package libkrb5-26-heimdal:amd64. Preparing to unpack .../087-libkrb5-26-heimdal_7.5.0+dfsg-2.1_amd64.deb ... Unpacking libkrb5-26-heimdal:amd64 (7.5.0+dfsg-2.1) ... Selecting previously unselected package libheimntlm0-heimdal:amd64. Preparing to unpack .../088-libheimntlm0-heimdal_7.5.0+dfsg-2.1_amd64.deb ... Unpacking libheimntlm0-heimdal:amd64 (7.5.0+dfsg-2.1) ... Selecting previously unselected package libgssapi3-heimdal:amd64. Preparing to unpack .../089-libgssapi3-heimdal_7.5.0+dfsg-2.1_amd64.deb ... Unpacking libgssapi3-heimdal:amd64 (7.5.0+dfsg-2.1) ... Selecting previously unselected package libsasl2-modules-db:amd64. Preparing to unpack .../090-libsasl2-modules-db_2.1.27+dfsg-1_amd64.deb ... Unpacking libsasl2-modules-db:amd64 (2.1.27+dfsg-1) ... Selecting previously unselected package libsasl2-2:amd64. Preparing to unpack .../091-libsasl2-2_2.1.27+dfsg-1_amd64.deb ... Unpacking libsasl2-2:amd64 (2.1.27+dfsg-1) ... Selecting previously unselected package libldap-common. Preparing to unpack .../092-libldap-common_2.4.47+dfsg-3ubuntu2.2_all.deb ... Unpacking libldap-common (2.4.47+dfsg-3ubuntu2.2) ... Selecting previously unselected package libldap-2.4-2:amd64. Preparing to unpack .../093-libldap-2.4-2_2.4.47+dfsg-3ubuntu2.2_amd64.deb ... Unpacking libldap-2.4-2:amd64 (2.4.47+dfsg-3ubuntu2.2) ... Selecting previously unselected package libnghttp2-14:amd64. Preparing to unpack .../094-libnghttp2-14_1.36.0-2_amd64.deb ... Unpacking libnghttp2-14:amd64 (1.36.0-2) ... Selecting previously unselected package librtmp1:amd64. Preparing to unpack .../095-librtmp1_2.4+20151223.gitfa8646d.1-2_amd64.deb ... Unpacking librtmp1:amd64 (2.4+20151223.gitfa8646d.1-2) ... Selecting previously unselected package libssh-4:amd64. Preparing to unpack .../096-libssh-4_0.8.6-3ubuntu0.3_amd64.deb ... Unpacking libssh-4:amd64 (0.8.6-3ubuntu0.3) ... Selecting previously unselected package libcurl3-gnutls:amd64. Preparing to unpack .../097-libcurl3-gnutls_7.64.0-2ubuntu1.2_amd64.deb ... Unpacking libcurl3-gnutls:amd64 (7.64.0-2ubuntu1.2) ... Selecting previously unselected package liberror-perl. Preparing to unpack .../098-liberror-perl_0.17027-2_all.deb ... Unpacking liberror-perl (0.17027-2) ... Selecting previously unselected package git-man. Preparing to unpack .../099-git-man_1%3a2.20.1-2ubuntu1.19.04.1_all.deb ... Unpacking git-man (1:2.20.1-2ubuntu1.19.04.1) ... Selecting previously unselected package git. Preparing to unpack .../100-git_1%3a2.20.1-2ubuntu1.19.04.1_amd64.deb ... Unpacking git (1:2.20.1-2ubuntu1.19.04.1) ... Selecting previously unselected package ieee-data. Preparing to unpack .../101-ieee-data_20180805.1_all.deb ... Unpacking ieee-data (20180805.1) ... Selecting previously unselected package libonig5:amd64. Preparing to unpack .../102-libonig5_6.9.1-1_amd64.deb ... Unpacking libonig5:amd64 (6.9.1-1) ... Selecting previously unselected package libjq1:amd64. Preparing to unpack .../103-libjq1_1.5+dfsg-2build1_amd64.deb ... Unpacking libjq1:amd64 (1.5+dfsg-2build1) ... Selecting previously unselected package jq. Preparing to unpack .../104-jq_1.5+dfsg-2build1_amd64.deb ... Unpacking jq (1.5+dfsg-2build1) ... Selecting previously unselected package libfreetype6:amd64. Preparing to unpack .../105-libfreetype6_2.9.1-3_amd64.deb ... Unpacking libfreetype6:amd64 (2.9.1-3) ... Selecting previously unselected package libimagequant0:amd64. Preparing to unpack .../106-libimagequant0_2.12.2-1.1_amd64.deb ... Unpacking libimagequant0:amd64 (2.12.2-1.1) ... Selecting previously unselected package libjpeg-turbo8:amd64. Preparing to unpack .../107-libjpeg-turbo8_2.0.1-0ubuntu2.2_amd64.deb ... Unpacking libjpeg-turbo8:amd64 (2.0.1-0ubuntu2.2) ... Selecting previously unselected package libjpeg8:amd64. Preparing to unpack .../108-libjpeg8_8c-2ubuntu8_amd64.deb ... Unpacking libjpeg8:amd64 (8c-2ubuntu8) ... Selecting previously unselected package libjs-bootstrap. Preparing to unpack .../109-libjs-bootstrap_3.4.0+dfsg-4_all.deb ... Unpacking libjs-bootstrap (3.4.0+dfsg-4) ... Selecting previously unselected package liblcms2-2:amd64. Preparing to unpack .../110-liblcms2-2_2.9-3_amd64.deb ... Unpacking liblcms2-2:amd64 (2.9-3) ... Selecting previously unselected package libpq5:amd64. Preparing to unpack .../111-libpq5_11.5-0ubuntu0.19.04.1_amd64.deb ... Unpacking libpq5:amd64 (11.5-0ubuntu0.19.04.1) ... Selecting previously unselected package libsubunit-perl. Preparing to unpack .../112-libsubunit-perl_1.3.0-1_all.deb ... Unpacking libsubunit-perl (1.3.0-1) ... Selecting previously unselected package libjbig0:amd64. Preparing to unpack .../113-libjbig0_2.1-3.1build1_amd64.deb ... Unpacking libjbig0:amd64 (2.1-3.1build1) ... Selecting previously unselected package libwebp6:amd64. Preparing to unpack .../114-libwebp6_0.6.1-2_amd64.deb ... Unpacking libwebp6:amd64 (0.6.1-2) ... Selecting previously unselected package libtiff5:amd64. Preparing to unpack .../115-libtiff5_4.0.10-4ubuntu0.1_amd64.deb ... Unpacking libtiff5:amd64 (4.0.10-4ubuntu0.1) ... Selecting previously unselected package libwebpdemux2:amd64. Preparing to unpack .../116-libwebpdemux2_0.6.1-2_amd64.deb ... Unpacking libwebpdemux2:amd64 (0.6.1-2) ... Selecting previously unselected package libwebpmux3:amd64. Preparing to unpack .../117-libwebpmux3_0.6.1-2_amd64.deb ... Unpacking libwebpmux3:amd64 (0.6.1-2) ... Selecting previously unselected package libxslt1.1:amd64. Preparing to unpack .../118-libxslt1.1_1.1.32-2ubuntu0.2_amd64.deb ... Unpacking libxslt1.1:amd64 (1.1.32-2ubuntu0.2) ... Selecting previously unselected package pycadf-common. Preparing to unpack .../119-pycadf-common_2.7.0-2_all.deb ... Unpacking pycadf-common (2.7.0-2) ... Selecting previously unselected package pyflakes3. Preparing to unpack .../120-pyflakes3_2.0.0-1_all.deb ... Unpacking pyflakes3 (2.0.0-1) ... Selecting previously unselected package python-all. Preparing to unpack .../121-python-all_2.7.16-1_amd64.deb ... Unpacking python-all (2.7.16-1) ... Selecting previously unselected package python-babel-localedata. Preparing to unpack .../122-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 .../123-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 .../124-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 .../125-python-setuptools_40.8.0-1_all.deb ... Unpacking python-setuptools (40.8.0-1) ... Selecting previously unselected package python-pbr. Preparing to unpack .../126-python-pbr_5.1.1-0ubuntu2_all.deb ... Unpacking python-pbr (5.1.1-0ubuntu2) ... Selecting previously unselected package python-linecache2. Preparing to unpack .../127-python-linecache2_1.0.0-3_all.deb ... Unpacking python-linecache2 (1.0.0-3) ... Selecting previously unselected package python-mimeparse. Preparing to unpack .../128-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 .../129-python-traceback2_1.4.0-5_all.deb ... Unpacking python-traceback2 (1.4.0-5) ... Selecting previously unselected package python-unittest2. Preparing to unpack .../130-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 .../131-python-testtools_2.3.0-5_all.deb ... Unpacking python-testtools (2.3.0-5) ... Selecting previously unselected package python-fixtures. Preparing to unpack .../132-python-fixtures_3.0.0-2_all.deb ... Unpacking python-fixtures (3.0.0-2) ... Selecting previously unselected package python-oslosphinx-common. Preparing to unpack .../133-python-oslosphinx-common_4.18.0-2_all.deb ... Unpacking python-oslosphinx-common (4.18.0-2) ... Selecting previously unselected package python-pastedeploy-tpl. Preparing to unpack .../134-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 .../135-python-subunit_1.3.0-1_all.deb ... Unpacking python-subunit (1.3.0-1) ... Selecting previously unselected package python-testrepository. Preparing to unpack .../136-python-testrepository_0.0.20-3_all.deb ... Unpacking python-testrepository (0.0.20-3) ... Selecting previously unselected package python3-all. Preparing to unpack .../137-python3-all_3.7.3-1_amd64.deb ... Unpacking python3-all (3.7.3-1) ... Selecting previously unselected package python3-anyjson. Preparing to unpack .../138-python3-anyjson_0.3.3-1build1_all.deb ... Unpacking python3-anyjson (0.3.3-1build1) ... Selecting previously unselected package python3-appdirs. Preparing to unpack .../139-python3-appdirs_1.4.3-1_all.deb ... Unpacking python3-appdirs (1.4.3-1) ... Selecting previously unselected package python3-asn1crypto. Preparing to unpack .../140-python3-asn1crypto_0.24.0-1_all.deb ... Unpacking python3-asn1crypto (0.24.0-1) ... Selecting previously unselected package python3-pbr. Preparing to unpack .../141-python3-pbr_5.1.1-0ubuntu2_all.deb ... Unpacking python3-pbr (5.1.1-0ubuntu2) ... Selecting previously unselected package python3-prettytable. Preparing to unpack .../142-python3-prettytable_0.7.2-4_all.deb ... Unpacking python3-prettytable (0.7.2-4) ... Selecting previously unselected package python3-automaton. Preparing to unpack .../143-python3-automaton_1.14.0-0ubuntu1_all.deb ... Unpacking python3-automaton (1.14.0-0ubuntu1) ... Selecting previously unselected package python3-tz. Preparing to unpack .../144-python3-tz_2018.9-1_all.deb ... Unpacking python3-tz (2018.9-1) ... Selecting previously unselected package python3-babel. Preparing to unpack .../145-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 .../146-python3-bashate_0.6.0-1_all.deb ... Unpacking python3-bashate (0.6.0-1) ... Selecting previously unselected package python3-blinker. Preparing to unpack .../147-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 .../148-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 .../149-python3-pil_5.4.1-1_amd64.deb ... Unpacking python3-pil:amd64 (5.4.1-1) ... Selecting previously unselected package python3-webcolors. Preparing to unpack .../150-python3-webcolors_1.5-2_all.deb ... Unpacking python3-webcolors (1.5-2) ... Selecting previously unselected package python3-roman. Preparing to unpack .../151-python3-roman_2.0.0-3_all.deb ... Unpacking python3-roman (2.0.0-3) ... Selecting previously unselected package python3-docutils. Preparing to unpack .../152-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 .../153-python3-reportlab-accel_3.5.18-1_amd64.deb ... Unpacking python3-reportlab-accel:amd64 (3.5.18-1) ... Selecting previously unselected package python3-reportlab. Preparing to unpack .../154-python3-reportlab_3.5.18-1_all.deb ... Unpacking python3-reportlab (3.5.18-1) ... Selecting previously unselected package python3-blockdiag. Preparing to unpack .../155-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 .../156-python3-soupsieve_1.8+dfsg-1_all.deb ... Unpacking python3-soupsieve (1.8+dfsg-1) ... Selecting previously unselected package python3-bs4. Preparing to unpack .../157-python3-bs4_4.7.1-1build1_all.deb ... Unpacking python3-bs4 (4.7.1-1build1) ... Selecting previously unselected package python3-cachetools. Preparing to unpack .../158-python3-cachetools_3.1.0-2_all.deb ... Unpacking python3-cachetools (3.1.0-2) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../159-python3-certifi_2018.8.24-1_all.deb ... Unpacking python3-certifi (2018.8.24-1) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../160-python3-chardet_3.0.4-3_all.deb ... Unpacking python3-chardet (3.0.4-3) ... Selecting previously unselected package python3-iso8601. Preparing to unpack .../161-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 .../162-python3-lxml_4.3.3-1_amd64.deb ... Unpacking python3-lxml:amd64 (4.3.3-1) ... Selecting previously unselected package python3-idna. Preparing to unpack .../163-python3-idna_2.6-1_all.deb ... Unpacking python3-idna (2.6-1) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../164-python3-cryptography_2.3-1ubuntu2_amd64.deb ... Unpacking python3-cryptography (2.3-1ubuntu2) ... Selecting previously unselected package python3-jwt. Preparing to unpack .../165-python3-jwt_1.7.0-2_all.deb ... Unpacking python3-jwt (1.7.0-2) ... Selecting previously unselected package python3-oauthlib. Preparing to unpack .../166-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 .../167-python3-os-service-types_1.6.0-0ubuntu1_all.deb ... Unpacking python3-os-service-types (1.6.0-0ubuntu1) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../168-python3-urllib3_1.24.1-1ubuntu0.1_all.deb ... Unpacking python3-urllib3 (1.24.1-1ubuntu0.1) ... Selecting previously unselected package python3-requests. Preparing to unpack .../169-python3-requests_2.21.0-1_all.deb ... Unpacking python3-requests (2.21.0-1) ... Selecting previously unselected package python3-stevedore. Preparing to unpack .../170-python3-stevedore_1%3a1.30.1-0ubuntu1_all.deb ... Unpacking python3-stevedore (1:1.30.1-0ubuntu1) ... Selecting previously unselected package python3-keystoneauth1. Preparing to unpack .../171-python3-keystoneauth1_3.13.1-0ubuntu1_all.deb ... Unpacking python3-keystoneauth1 (3.13.1-0ubuntu1) ... Selecting previously unselected package python3-oslo.i18n. Preparing to unpack .../172-python3-oslo.i18n_3.23.1-0ubuntu1_all.deb ... Unpacking python3-oslo.i18n (3.23.1-0ubuntu1) ... Selecting previously unselected package python3-msgpack. Preparing to unpack .../173-python3-msgpack_0.5.6-1build2_amd64.deb ... Unpacking python3-msgpack (0.5.6-1build2) ... Selecting previously unselected package python3-wrapt. Preparing to unpack .../174-python3-wrapt_1.10.11-1_amd64.deb ... Unpacking python3-wrapt (1.10.11-1) ... Selecting previously unselected package python3-debtcollector. Preparing to unpack .../175-python3-debtcollector_1.20.0-2_all.deb ... Unpacking python3-debtcollector (1.20.0-2) ... Selecting previously unselected package python3-funcsigs. Preparing to unpack .../176-python3-funcsigs_1.0.2-4_all.deb ... Unpacking python3-funcsigs (1.0.2-4) ... Selecting previously unselected package python3-monotonic. Preparing to unpack .../177-python3-monotonic_1.5-0ubuntu1_all.deb ... Unpacking python3-monotonic (1.5-0ubuntu1) ... Selecting previously unselected package python3-netaddr. Preparing to unpack .../178-python3-netaddr_0.7.19-1_all.deb ... Unpacking python3-netaddr (0.7.19-1) ... Selecting previously unselected package python3-oslo.utils. Preparing to unpack .../179-python3-oslo.utils_3.40.3-0ubuntu1_all.deb ... Unpacking python3-oslo.utils (3.40.3-0ubuntu1) ... Selecting previously unselected package python3-oslo.serialization. Preparing to unpack .../180-python3-oslo.serialization_2.28.2-0ubuntu1_all.deb ... Unpacking python3-oslo.serialization (2.28.2-0ubuntu1) ... Selecting previously unselected package python3-simplejson. Preparing to unpack .../181-python3-simplejson_3.16.0-1_amd64.deb ... Unpacking python3-simplejson (3.16.0-1) ... Selecting previously unselected package python3-cinderclient. Preparing to unpack .../182-python3-cinderclient_1%3a4.1.0-0ubuntu1_all.deb ... Unpacking python3-cinderclient (1:4.1.0-0ubuntu1) ... Selecting previously unselected package python3-unicodecsv. Preparing to unpack .../183-python3-unicodecsv_0.14.1-1_all.deb ... Unpacking python3-unicodecsv (0.14.1-1) ... Selecting previously unselected package python3-cliff. Preparing to unpack .../184-python3-cliff_2.14.1-0ubuntu1_all.deb ... Unpacking python3-cliff (2.14.1-0ubuntu1) ... Selecting previously unselected package python3-contextlib2. Preparing to unpack .../185-python3-contextlib2_0.5.5-1_all.deb ... Unpacking python3-contextlib2 (0.5.5-1) ... Selecting previously unselected package python3-coverage. Preparing to unpack .../186-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 .../187-python3-crypto_2.6.1-9build2_amd64.deb ... Unpacking python3-crypto (2.6.1-9build2) ... Selecting previously unselected package python3-decorator. Preparing to unpack .../188-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 .../189-python3-packaging_19.0-1_all.deb ... Unpacking python3-packaging (19.0-1) ... Selecting previously unselected package python3-deprecation. Preparing to unpack .../190-python3-deprecation_2.0.6-1_all.deb ... Unpacking python3-deprecation (2.0.6-1) ... Selecting previously unselected package python3-dnspython. Preparing to unpack .../191-python3-dnspython_1.16.0-1_all.deb ... Unpacking python3-dnspython (1.16.0-1) ... Selecting previously unselected package python3-restructuredtext-lint. Preparing to unpack .../192-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 .../193-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 .../194-python3-dogpile.cache_0.6.2-6_all.deb ... Unpacking python3-dogpile.cache (0.6.2-6) ... Selecting previously unselected package python3-dulwich. Preparing to unpack .../195-python3-dulwich_0.19.11-2_amd64.deb ... Unpacking python3-dulwich (0.19.11-2) ... Selecting previously unselected package python3-entrypoints. Preparing to unpack .../196-python3-entrypoints_0.3-1_all.deb ... Unpacking python3-entrypoints (0.3-1) ... Selecting previously unselected package python3-greenlet. Preparing to unpack .../197-python3-greenlet_0.4.15-2_amd64.deb ... Unpacking python3-greenlet (0.4.15-2) ... Selecting previously unselected package python3-eventlet. Preparing to unpack .../198-python3-eventlet_0.24.1-0ubuntu3.1_all.deb ... Unpacking python3-eventlet (0.24.1-0ubuntu3.1) ... Selecting previously unselected package python3-extras. Preparing to unpack .../199-python3-extras_1.0.0-3_all.deb ... Unpacking python3-extras (1.0.0-3) ... Selecting previously unselected package python3-fasteners. Preparing to unpack .../200-python3-fasteners_0.12.0-3_all.deb ... Unpacking python3-fasteners (0.12.0-3) ... Selecting previously unselected package python3-linecache2. Preparing to unpack .../201-python3-linecache2_1.0.0-3_all.deb ... Unpacking python3-linecache2 (1.0.0-3) ... Selecting previously unselected package python3-mimeparse. Preparing to unpack .../202-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 .../203-python3-traceback2_1.4.0-5_all.deb ... Unpacking python3-traceback2 (1.4.0-5) ... Selecting previously unselected package python3-unittest2. Preparing to unpack .../204-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 .../205-python3-testtools_2.3.0-5_all.deb ... Unpacking python3-testtools (2.3.0-5) ... Selecting previously unselected package python3-fixtures. Preparing to unpack .../206-python3-fixtures_3.0.0-2_all.deb ... Unpacking python3-fixtures (3.0.0-2) ... Selecting previously unselected package python3-future. Preparing to unpack .../207-python3-future_0.16.0-1_all.deb ... Unpacking python3-future (0.16.0-1) ... Selecting previously unselected package python3-futurist. Preparing to unpack .../208-python3-futurist_1.7.0-0ubuntu1_all.deb ... Unpacking python3-futurist (1.7.0-0ubuntu1) ... Selecting previously unselected package python3-pep8. Preparing to unpack .../209-python3-pep8_1.7.1-3_all.deb ... Unpacking python3-pep8 (1.7.1-3) ... Selecting previously unselected package python3-hacking. Preparing to unpack .../210-python3-hacking_1.1.0-2_all.deb ... Unpacking python3-hacking (1.1.0-2) ... Selecting previously unselected package python3-imagesize. Preparing to unpack .../211-python3-imagesize_1.0.0-1_all.deb ... Unpacking python3-imagesize (1.0.0-1) ... Selecting previously unselected package python3-rfc3986. Preparing to unpack .../212-python3-rfc3986_1.2.0-0ubuntu1_all.deb ... Unpacking python3-rfc3986 (1.2.0-0ubuntu1) ... Selecting previously unselected package python3-oslo.config. Preparing to unpack .../213-python3-oslo.config_1%3a6.8.1-0ubuntu1_all.deb ... Unpacking python3-oslo.config (1:6.8.1-0ubuntu1) ... Selecting previously unselected package python3-posix-ipc. Preparing to unpack .../214-python3-posix-ipc_0.9.8-3build2_amd64.deb ... Unpacking python3-posix-ipc (0.9.8-3build2) ... Selecting previously unselected package python3-oslo.concurrency. Preparing to unpack .../215-python3-oslo.concurrency_3.29.1-0ubuntu1_all.deb ... Unpacking python3-oslo.concurrency (3.29.1-0ubuntu1) ... Selecting previously unselected package python3-oslo.context. Preparing to unpack .../216-python3-oslo.context_1%3a2.22.1-0ubuntu1_all.deb ... Unpacking python3-oslo.context (1:2.22.1-0ubuntu1) ... Selecting previously unselected package python3-pyinotify. Preparing to unpack .../217-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 .../218-python3-oslo.log_3.42.3-0ubuntu1_all.deb ... Unpacking python3-oslo.log (3.42.3-0ubuntu1) ... Selecting previously unselected package python3-tempita. Preparing to unpack .../219-python3-tempita_0.5.2-2_all.deb ... Unpacking python3-tempita (0.5.2-2) ... Selecting previously unselected package python3-paste. Preparing to unpack .../220-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 .../221-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 .../222-python3-repoze.lru_0.7-1_all.deb ... Unpacking python3-repoze.lru (0.7-1) ... Selecting previously unselected package python3-routes. Preparing to unpack .../223-python3-routes_2.4.1-1_all.deb ... Unpacking python3-routes (2.4.1-1) ... Selecting previously unselected package python3-webob. Preparing to unpack .../224-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 .../225-python3-oslo.service_1.38.0-0ubuntu1_all.deb ... Unpacking python3-oslo.service (1.38.0-0ubuntu1) ... Selecting previously unselected package python3-ironic-lib. Preparing to unpack .../226-python3-ironic-lib_2.16.2-0ubuntu1_all.deb ... Unpacking python3-ironic-lib (2.16.2-0ubuntu1) ... Selecting previously unselected package python3-jinja2. Preparing to unpack .../227-python3-jinja2_2.10-1ubuntu0.19.04.1_all.deb ... Unpacking python3-jinja2 (2.10-1ubuntu0.19.04.1) ... Selecting previously unselected package python3-jmespath. Preparing to unpack .../228-python3-jmespath_0.9.4-1_all.deb ... Unpacking python3-jmespath (0.9.4-1) ... Selecting previously unselected package python3-json-pointer. Preparing to unpack .../229-python3-json-pointer_1.10-1_all.deb ... Unpacking python3-json-pointer (1.10-1) ... Selecting previously unselected package python3-jsonpatch. Preparing to unpack .../230-python3-jsonpatch_1.21-1_all.deb ... Unpacking python3-jsonpatch (1.21-1) ... Selecting previously unselected package python3-jsonschema. Preparing to unpack .../231-python3-jsonschema_2.6.0-4ubuntu2_all.deb ... Unpacking python3-jsonschema (2.6.0-4ubuntu2) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../232-python3-pygments_2.3.1+dfsg-1_all.deb ... Unpacking python3-pygments (2.3.1+dfsg-1) ... Selecting previously unselected package python3-kazoo. Preparing to unpack .../233-python3-kazoo_2.5.0-1ubuntu1_all.deb ... Unpacking python3-kazoo (2.5.0-1ubuntu1) ... Selecting previously unselected package python3-secretstorage. Preparing to unpack .../234-python3-secretstorage_2.3.1-2_all.deb ... Unpacking python3-secretstorage (2.3.1-2) ... Selecting previously unselected package python3-keyring. Preparing to unpack .../235-python3-keyring_17.1.1-1_all.deb ... Unpacking python3-keyring (17.1.1-1) ... Selecting previously unselected package python3-keystoneclient. Preparing to unpack .../236-python3-keystoneclient_1%3a3.19.0-0ubuntu1_all.deb ... Unpacking python3-keystoneclient (1:3.19.0-0ubuntu1) ... Selecting previously unselected package python3-memcache. Preparing to unpack .../237-python3-memcache_1.59-1_all.deb ... Unpacking python3-memcache (1.59-1) ... Selecting previously unselected package python3-oslo.cache. Preparing to unpack .../238-python3-oslo.cache_1.33.2-0ubuntu1_all.deb ... Unpacking python3-oslo.cache (1.33.2-0ubuntu1) ... Selecting previously unselected package python3-pycadf. Preparing to unpack .../239-python3-pycadf_2.7.0-2_all.deb ... Unpacking python3-pycadf (2.7.0-2) ... Selecting previously unselected package python3-keystonemiddleware. Preparing to unpack .../240-python3-keystonemiddleware_6.0.0-0ubuntu1_all.deb ... Unpacking python3-keystonemiddleware (6.0.0-0ubuntu1) ... Selecting previously unselected package python3-vine. Preparing to unpack .../241-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 .../242-python3-amqp_2.4.0-1_all.deb ... Unpacking python3-amqp (2.4.0-1) ... Selecting previously unselected package python3-kombu. Preparing to unpack .../243-python3-kombu_4.2.1-1_all.deb ... Unpacking python3-kombu (4.2.1-1) ... Selecting previously unselected package python3-logutils. Preparing to unpack .../244-python3-logutils_0.3.3-5_all.deb ... Unpacking python3-logutils (0.3.3-5) ... Selecting previously unselected package python3-sqlparse. Preparing to unpack .../245-python3-sqlparse_0.2.4-1_all.deb ... Unpacking python3-sqlparse (0.2.4-1) ... Selecting previously unselected package python3-migrate. Preparing to unpack .../246-python3-migrate_0.11.0-5_all.deb ... Unpacking python3-migrate (0.11.0-5) ... Selecting previously unselected package python3-mox3. Preparing to unpack .../247-python3-mox3_0.24.0-1_all.deb ... Unpacking python3-mox3 (0.24.0-1) ... Selecting previously unselected package python3-munch. Preparing to unpack .../248-python3-munch_2.3.2-1_all.deb ... Unpacking python3-munch (2.3.2-1) ... Selecting previously unselected package python3-requestsexceptions. Preparing to unpack .../249-python3-requestsexceptions_1.4.0-1_all.deb ... Unpacking python3-requestsexceptions (1.4.0-1) ... Selecting previously unselected package python3-openstacksdk. Preparing to unpack .../250-python3-openstacksdk_0.26.0-0ubuntu1_all.deb ... Unpacking python3-openstacksdk (0.26.0-0ubuntu1) ... Selecting previously unselected package python3-os-client-config. Preparing to unpack .../251-python3-os-client-config_1.31.2-0ubuntu1_all.deb ... Unpacking python3-os-client-config (1.31.2-0ubuntu1) ... Selecting previously unselected package python3-osc-lib. Preparing to unpack .../252-python3-osc-lib_1.12.1-0ubuntu1_all.deb ... Unpacking python3-osc-lib (1.12.1-0ubuntu1) ... Selecting previously unselected package python3-neutronclient. Preparing to unpack .../253-python3-neutronclient_1%3a6.11.0-0ubuntu1_all.deb ... Unpacking python3-neutronclient (1:6.11.0-0ubuntu1) ... Selecting previously unselected package python3-novaclient. Preparing to unpack .../254-python3-novaclient_2%3a13.0.0-0ubuntu1_all.deb ... Unpacking python3-novaclient (2:13.0.0-0ubuntu1) ... Selecting previously unselected package python3-openssl. Preparing to unpack .../255-python3-openssl_19.0.0-1_all.deb ... Unpacking python3-openssl (19.0.0-1) ... Selecting previously unselected package python3-warlock. Preparing to unpack .../256-python3-warlock_1.2.0-2_all.deb ... Unpacking python3-warlock (1.2.0-2) ... Selecting previously unselected package python3-glanceclient. Preparing to unpack .../257-python3-glanceclient_1%3a2.16.0-0ubuntu1_all.deb ... Unpacking python3-glanceclient (1:2.16.0-0ubuntu1) ... Selecting previously unselected package python3-openstackclient. Preparing to unpack .../258-python3-openstackclient_3.18.0-0ubuntu1_all.deb ... Unpacking python3-openstackclient (3.18.0-0ubuntu1) ... Selecting previously unselected package python3-openstackdocstheme. Preparing to unpack .../259-python3-openstackdocstheme_1.29.1-0ubuntu1_all.deb ... Unpacking python3-openstackdocstheme (1.29.1-0ubuntu1) ... Selecting previously unselected package python3-voluptuous. Preparing to unpack .../260-python3-voluptuous_0.11.1-1_all.deb ... Unpacking python3-voluptuous (0.11.1-1) ... Selecting previously unselected package python3-subunit. Preparing to unpack .../261-python3-subunit_1.3.0-1_all.deb ... Unpacking python3-subunit (1.3.0-1) ... Selecting previously unselected package subunit. Preparing to unpack .../262-subunit_1.3.0-1_all.deb ... Unpacking subunit (1.3.0-1) ... Selecting previously unselected package python3-stestr. Preparing to unpack .../263-python3-stestr_2.1.0-2_all.deb ... Unpacking python3-stestr (2.1.0-2) ... Selecting previously unselected package python3-os-testr. Preparing to unpack .../264-python3-os-testr_1.0.0-4ubuntu1_all.deb ... Unpacking python3-os-testr (1.0.0-4ubuntu1) ... Selecting previously unselected package python3-os-traits. Preparing to unpack .../265-python3-os-traits_0.11.0-0ubuntu1_all.deb ... Unpacking python3-os-traits (0.11.0-0ubuntu1) ... Selecting previously unselected package python3-testresources. Preparing to unpack .../266-python3-testresources_2.0.0-2_all.deb ... Unpacking python3-testresources (2.0.0-2) ... Selecting previously unselected package python3-testscenarios. Preparing to unpack .../267-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 .../268-python3-oslo.db_4.44.0-0ubuntu1_all.deb ... Unpacking python3-oslo.db (4.44.0-0ubuntu1) ... Selecting previously unselected package python3-statsd. Preparing to unpack .../269-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 .../270-python3-oslo.middleware_3.37.1-0ubuntu1_all.deb ... Unpacking python3-oslo.middleware (3.37.1-0ubuntu1) ... Selecting previously unselected package python3-tenacity. Preparing to unpack .../271-python3-tenacity_5.0.3-0ubuntu1_all.deb ... Unpacking python3-tenacity (5.0.3-0ubuntu1) ... Selecting previously unselected package python3-oslo.messaging. Preparing to unpack .../272-python3-oslo.messaging_9.5.0-0ubuntu1_all.deb ... Unpacking python3-oslo.messaging (9.5.0-0ubuntu1) ... Selecting previously unselected package python3-oslo.policy. Preparing to unpack .../273-python3-oslo.policy_2.1.1-0ubuntu1_all.deb ... Unpacking python3-oslo.policy (2.1.1-0ubuntu1) ... Selecting previously unselected package python3-psutil. Preparing to unpack .../274-python3-psutil_5.5.1-1ubuntu0.19.04.1_amd64.deb ... Unpacking python3-psutil (5.5.1-1ubuntu0.19.04.1) ... Selecting previously unselected package python3-oslo.reports. Preparing to unpack .../275-python3-oslo.reports_1.29.2-0ubuntu1_all.deb ... Unpacking python3-oslo.reports (1.29.2-0ubuntu1) ... Selecting previously unselected package python3-oslo.rootwrap. Preparing to unpack .../276-python3-oslo.rootwrap_5.15.2-0ubuntu1_all.deb ... Unpacking python3-oslo.rootwrap (5.15.2-0ubuntu1) ... Selecting previously unselected package python3-oslo.upgradecheck. Preparing to unpack .../277-python3-oslo.upgradecheck_0.2.1-0ubuntu1_all.deb ... Unpacking python3-oslo.upgradecheck (0.2.1-0ubuntu1) ... Selecting previously unselected package python3-oslo.versionedobjects. Preparing to unpack .../278-python3-oslo.versionedobjects_1.35.1-0ubuntu1_all.deb ... Unpacking python3-oslo.versionedobjects (1.35.1-0ubuntu1) ... Selecting previously unselected package python3-oslosphinx. Preparing to unpack .../279-python3-oslosphinx_4.18.0-2_all.deb ... Unpacking python3-oslosphinx (4.18.0-2) ... Selecting previously unselected package python3-mock. Preparing to unpack .../280-python3-mock_2.0.0-4_all.deb ... Unpacking python3-mock (2.0.0-4) ... Selecting previously unselected package python3-testrepository. Preparing to unpack .../281-python3-testrepository_0.0.20-3_all.deb ... Unpacking python3-testrepository (0.0.20-3) ... Selecting previously unselected package testrepository. Preparing to unpack .../282-testrepository_0.0.20-3_all.deb ... Unpacking testrepository (0.0.20-3) ... Selecting previously unselected package python3-oslotest. Preparing to unpack .../283-python3-oslotest_1%3a3.7.1-0ubuntu1_all.deb ... Unpacking python3-oslotest (1:3.7.1-0ubuntu1) ... Selecting previously unselected package python3-osprofiler. Preparing to unpack .../284-python3-osprofiler_2.3.0-3_all.deb ... Unpacking python3-osprofiler (2.3.0-3) ... Selecting previously unselected package python3-bcrypt. Preparing to unpack .../285-python3-bcrypt_3.1.6-1_amd64.deb ... Unpacking python3-bcrypt (3.1.6-1) ... Selecting previously unselected package python3-pyasn1. Preparing to unpack .../286-python3-pyasn1_0.4.2-3_all.deb ... Unpacking python3-pyasn1 (0.4.2-3) ... Selecting previously unselected package python3-paramiko. Preparing to unpack .../287-python3-paramiko_2.4.2-0.1ubuntu1_all.deb ... Unpacking python3-paramiko (2.4.2-0.1ubuntu1) ... Selecting previously unselected package python3-simplegeneric. Preparing to unpack .../288-python3-simplegeneric_0.8.1-2_all.deb ... Unpacking python3-simplegeneric (0.8.1-2) ... Selecting previously unselected package python3-singledispatch. Preparing to unpack .../289-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 .../290-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 .../291-python3-webtest_2.0.28-1ubuntu1_all.deb ... Unpacking python3-webtest (2.0.28-1ubuntu1) ... Selecting previously unselected package python3-pecan. Preparing to unpack .../292-python3-pecan_1.3.2-0ubuntu1_all.deb ... Unpacking python3-pecan (1.3.2-0ubuntu1) ... Selecting previously unselected package python3-ply. Preparing to unpack .../293-python3-ply_3.11-3_all.deb ... Unpacking python3-ply (3.11-3) ... Selecting previously unselected package python3-psycopg2. Preparing to unpack .../294-python3-psycopg2_2.7.7-1_amd64.deb ... Unpacking python3-psycopg2 (2.7.7-1) ... Selecting previously unselected package python3-pycryptodome. Preparing to unpack .../295-python3-pycryptodome_3.6.1-2build2_amd64.deb ... Unpacking python3-pycryptodome (3.6.1-2build2) ... Selecting previously unselected package python3-pyghmi. Preparing to unpack .../296-python3-pyghmi_1.0.32-5_all.deb ... Unpacking python3-pyghmi (1.0.32-5) ... Selecting previously unselected package python3-pymemcache. Preparing to unpack .../297-python3-pymemcache_1.3.2-3_all.deb ... Unpacking python3-pymemcache (1.3.2-3) ... Selecting previously unselected package python3-pymysql. Preparing to unpack .../298-python3-pymysql_0.9.3-1_all.deb ... Unpacking python3-pymysql (0.9.3-1) ... Selecting previously unselected package python3-pysmi. Preparing to unpack .../299-python3-pysmi_0.3.2-1_all.deb ... Unpacking python3-pysmi (0.3.2-1) ... Selecting previously unselected package python3-pysnmp4. Preparing to unpack .../300-python3-pysnmp4_4.4.6+repack1-1_all.deb ... Unpacking python3-pysnmp4 (4.4.6+repack1-1) ... Selecting previously unselected package python3-redis. Preparing to unpack .../301-python3-redis_3.2.0-2_all.deb ... Unpacking python3-redis (3.2.0-2) ... Selecting previously unselected package python3-reno. Preparing to unpack .../302-python3-reno_2.9.2-1_all.deb ... Unpacking python3-reno (2.9.2-1) ... Selecting previously unselected package python3-retrying. Preparing to unpack .../303-python3-retrying_1.3.3-3_all.deb ... Unpacking python3-retrying (1.3.3-3) ... Selecting previously unselected package python3-scciclient. Preparing to unpack .../304-python3-scciclient_0.8.0-0ubuntu1_all.deb ... Unpacking python3-scciclient (0.8.0-0ubuntu1) ... Selecting previously unselected package python3-sendfile:amd64. Preparing to unpack .../305-python3-sendfile_2.0.1-2build1_amd64.deb ... Unpacking python3-sendfile:amd64 (2.0.1-2build1) ... Selecting previously unselected package python3-seqdiag. Preparing to unpack .../306-python3-seqdiag_0.9.5+dfsg-1.1_all.deb ... Unpacking python3-seqdiag (0.9.5+dfsg-1.1) ... Selecting previously unselected package sphinx-common. Preparing to unpack .../307-sphinx-common_1.8.5-1ubuntu1_all.deb ... Unpacking sphinx-common (1.8.5-1ubuntu1) ... Selecting previously unselected package python3-alabaster. Preparing to unpack .../308-python3-alabaster_0.7.8-1_all.deb ... Unpacking python3-alabaster (0.7.8-1) ... Selecting previously unselected package python3-sphinx. Preparing to unpack .../309-python3-sphinx_1.8.5-1ubuntu1_all.deb ... Unpacking python3-sphinx (1.8.5-1ubuntu1) ... 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-zope.interface. Preparing to unpack .../314-python3-zope.interface_4.3.2-1build4_amd64.deb ... Unpacking python3-zope.interface (4.3.2-1build4) ... Selecting previously unselected package python3-zake. Preparing to unpack .../315-python3-zake_0.2.2-2_all.deb ... Unpacking python3-zake (0.2.2-2) ... Selecting previously unselected package python3-tooz. Preparing to unpack .../316-python3-tooz_1.64.2-0ubuntu1_all.deb ... Unpacking python3-tooz (1.64.2-0ubuntu1) ... Selecting previously unselected package python3-wsme. Preparing to unpack .../317-python3-wsme_0.9.3-2ubuntu1_all.deb ... Unpacking python3-wsme (0.9.3-2ubuntu1) ... Selecting previously unselected package openstack-pkg-tools. Preparing to unpack .../318-openstack-pkg-tools_89ubuntu1_all.deb ... Unpacking openstack-pkg-tools (89ubuntu1) ... Selecting previously unselected package python-os-api-ref-common. Preparing to unpack .../319-python-os-api-ref-common_1.4.0-1ubuntu3_all.deb ... Unpacking python-os-api-ref-common (1.4.0-1ubuntu3) ... Selecting previously unselected package python3-ironicclient. Preparing to unpack .../320-python3-ironicclient_2.7.0-0ubuntu1_all.deb ... Unpacking python3-ironicclient (2.7.0-0ubuntu1) ... Selecting previously unselected package python3-os-api-ref. Preparing to unpack .../321-python3-os-api-ref_1.4.0-1ubuntu3_all.deb ... Unpacking python3-os-api-ref (1.4.0-1ubuntu3) ... Selecting previously unselected package python3-swiftclient. Preparing to unpack .../322-python3-swiftclient_1%3a3.7.0-0ubuntu1_all.deb ... Unpacking python3-swiftclient (1:3.7.0-0ubuntu1) ... Selecting previously unselected package sbuild-build-depends-ironic-dummy. Preparing to unpack .../323-sbuild-build-depends-ironic-dummy_0.invalid.0_amd64.deb ... Unpacking sbuild-build-depends-ironic-dummy (0.invalid.0) ... Setting up libpipeline1:amd64 (1.5.1-2) ... Setting up liblcms2-2:amd64 (2.9-3) ... Setting up libxau6:amd64 (1:1.0.8-1) ... Setting up libsubunit-perl (1.3.0-1) ... Setting up libkeyutils1:amd64 (1.6-6) ... Setting up libpsl5:amd64 (0.20.2-2) ... Setting up libsodium23:amd64 (1.0.17-1) ... Setting up mime-support (3.60ubuntu1) ... Setting up libmagic-mgc (1:5.35-4ubuntu0.1) ... 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.60.4-0ubuntu0.19.04.1) ... No schema files found: doing nothing. Setting up fonts-glyphicons-halflings (1.009~3.4.0+dfsg-4) ... Setting up x11-common (1:7.7+19ubuntu12) ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Running in chroot, ignoring request. invoke-rc.d: policy-rc.d denied execution of start. Setting up libnghttp2-14:amd64 (1.36.0-2) ... Setting up libmagic1:amd64 (1:5.35-4ubuntu0.1) ... Setting up gettext-base (0.19.8.1-9) ... Setting up file (1:5.35-4ubuntu0.1) ... Setting up libldap-common (2.4.47+dfsg-3ubuntu2.2) ... Setting up libjbig0:amd64 (2.1-3.1build1) ... Setting up libicu63:amd64 (63.1-6) ... Setting up python-babel-localedata (2.6.0+dfsg.1-1) ... Setting up libkrb5support0:amd64 (1.17-1) ... Setting up libsasl2-modules-db:amd64 (2.1.27+dfsg-1) ... Setting up libpython2.7-stdlib:amd64 (2.7.16-2ubuntu0.2) ... Setting up liberror-perl (0.17027-2) ... Setting up autotools-dev (20180224.1) ... Setting up python-pastedeploy-tpl (2.0.1-1) ... Setting up libfreetype6:amd64 (2.9.1-3) ... Setting up libx11-data (2:1.6.7-1) ... Setting up librtmp1:amd64 (2.4+20151223.gitfa8646d.1-2) ... Setting up libdbus-1-3:amd64 (1.12.12-1ubuntu1.1) ... Setting up dbus (1.12.12-1ubuntu1.1) ... Setting up libsigsegv2:amd64 (2.12-2) ... Setting up libimagequant0:amd64 (2.12.2-1.1) ... Setting up autopoint (0.19.8.1-9) ... Setting up libwebp6:amd64 (0.6.1-2) ... Setting up sudo (1.8.27-1ubuntu1.1) ... Setting up libpcre2-8-0:amd64 (10.32-5) ... Setting up libk5crypto3:amd64 (1.17-1) ... Setting up libjpeg-turbo8:amd64 (2.0.1-0ubuntu2.2) ... Setting up libsasl2-2:amd64 (2.1.27+dfsg-1) ... Setting up libroken18-heimdal:amd64 (7.5.0+dfsg-2.1) ... Setting up pycadf-common (2.7.0-2) ... Setting up libuchardet0:amd64 (0.0.6-3) ... Setting up python-oslosphinx-common (4.18.0-2) ... Setting up git-man (1:2.20.1-2ubuntu1.19.04.1) ... Setting up netbase (5.6) ... Setting up sgml-base (1.29) ... Setting up libkrb5-3:amd64 (1.17-1) ... Setting up libmpdec2:amd64 (2.4.2-2) ... Setting up libjs-jquery (3.3.1~dfsg-1) ... Setting up libwebpmux3:amd64 (0.6.1-2) ... Setting up libbsd0:amd64 (0.9.1-2ubuntu0.1) ... Setting up libelf1:amd64 (0.176-1) ... Setting up libxml2:amd64 (2.9.4+dfsg1-7ubuntu3) ... Setting up libonig5:amd64 (6.9.1-1) ... Setting up libjs-bootstrap (3.4.0+dfsg-4) ... Setting up libheimbase1-heimdal:amd64 (7.5.0+dfsg-2.1) ... Setting up libjs-underscore (1.9.1~dfsg-1) ... Setting up libjpeg8:amd64 (8c-2ubuntu8) ... 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-2ubuntu0.2) ... Setting up libxcb1:amd64 (1.13.1-2) ... Setting up wget (1.20.1-1ubuntu4) ... Setting up python2.7 (2.7.16-2ubuntu0.2) ... Setting up libtool (2.4.6-10) ... Setting up libpython2-stdlib:amd64 (2.7.16-1) ... Setting up libjq1:amd64 (1.5+dfsg-2build1) ... Setting up libwebpdemux2:amd64 (0.6.1-2) ... Setting up libasn1-8-heimdal:amd64 (7.5.0+dfsg-2.1) ... Setting up m4 (1.4.18-2) ... Setting up libhcrypto4-heimdal:amd64 (7.5.0+dfsg-2.1) ... Setting up python2 (2.7.16-1) ... Setting up libpython-stdlib:amd64 (2.7.16-1) ... Setting up libwind0-heimdal:amd64 (7.5.0+dfsg-2.1) ... Setting up bsdmainutils (11.1.2ubuntu2) ... 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.4.0-1ubuntu3) ... Setting up libgssapi-krb5-2:amd64 (1.17-1) ... Setting up libcroco3:amd64 (0.6.12-3) ... Setting up libjs-sphinxdoc (1.8.5-1ubuntu1) ... Setting up libssh-4:amd64 (0.8.6-3ubuntu0.3) ... 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) ... Setting up xml-core (0.18+nmu1) ... Setting up jq (1.5+dfsg-2build1) ... Setting up libxslt1.1:amd64 (1.1.32-2ubuntu0.2) ... Setting up libx11-6:amd64 (2:1.6.7-1) ... Setting up libtiff5:amd64 (4.0.10-4ubuntu0.1) ... Setting up libsm6:amd64 (2:1.2.3-1) ... Setting up python (2.7.16-1) ... Setting up libpython3-stdlib:amd64 (3.7.3-1) ... Setting up python-extras (1.0.0-3) ... Setting up automake (1:1.16.1-4ubuntu3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up python3.7 (3.7.3-2ubuntu0.2) ... Setting up gettext (0.19.8.1-9) ... Setting up python-pkg-resources (40.8.0-1) ... Setting up libhx509-5-heimdal:amd64 (7.5.0+dfsg-2.1) ... Setting up libxext6:amd64 (2:1.3.3-1) ... Setting up python3 (3.7.3-1) ... Setting up python3-contextlib2 (0.5.5-1) ... Setting up python-linecache2 (1.0.0-3) ... Setting up python3-sendfile:amd64 (2.0.1-2build1) ... Setting up python-all (2.7.16-1) ... Setting up python-mimeparse (0.1.4-3.1) ... Setting up man-db (2.8.5-2) ... Not building database; man-db/auto-update is not 'true'. Created symlink /etc/systemd/system/timers.target.wants/man-db.timer → /lib/systemd/system/man-db.timer. Setting up python3-markupsafe (1.1.0-1) ... Setting up python3-psutil (5.5.1-1ubuntu0.19.04.1) ... Setting up python3-tz (2018.9-1) ... Setting up python3-sqlalchemy (1.2.15+ds1-1) ... Setting up python3-vine (1.1.4+dfsg-2) ... Setting up intltool-debian (0.35.0+20060710.5) ... Setting up python3-monotonic (1.5-0ubuntu1) ... Setting up python3-dogpile.cache (0.6.2-6) ... Setting up python-six (1.12.0-1) ... Setting up python3-six (1.12.0-1) ... Setting up python3-simplejson (3.16.0-1) ... Setting up python3-pil:amd64 (5.4.1-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-1ubuntu0.19.04.1) ... Setting up python3-pygments (2.3.1+dfsg-1) ... 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-rfc3986 (1.2.0-0ubuntu1) ... 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 sphinx-common (1.8.5-1ubuntu1) ... Setting up python3-greenlet (0.4.15-2) ... Setting up python3-reportlab-accel:amd64 (3.5.18-1) ... Setting up python3-idna (2.6-1) ... Setting up python3-wrapt (1.10.11-1) ... Setting up python-setuptools (40.8.0-1) ... Setting up python3-funcparserlib (0.3.6-7) ... Setting up python3-pymysql (0.9.3-1) ... Setting up python3-redis (3.2.0-2) ... Setting up python3-fasteners (0.12.0-3) ... Setting up libxt6:amd64 (1:1.1.5-1) ... Setting up python3-urllib3 (1.24.1-1ubuntu0.1) ... Setting up python3-unicodecsv (0.14.1-1) ... Setting up python3-reportlab (3.5.18-1) ... Setting up python3-netifaces (0.10.4-1build2) ... 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.3-1) ... Setting up python3-dnspython (1.16.0-1) ... Setting up python3-dulwich (0.19.11-2) ... Setting up python3-amqp (2.4.0-1) ... Setting up python3-pyasn1 (0.4.2-3) ... Setting up python3-crypto (2.6.1-9build2) ... Setting up python3-dateutil (2.7.3-3) ... Setting up python3-mccabe (0.6.1-2) ... Setting up python3-anyjson (0.3.3-1build1) ... Setting up python3-msgpack (0.5.6-1build2) ... 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 python-pbr (5.1.1-0ubuntu2) ... update-alternatives: using /usr/bin/python2-pbr to provide /usr/bin/pbr (pbr) in auto mode Setting up python3-simplegeneric (0.8.1-2) ... Setting up python3-prettytable (0.7.2-4) ... Setting up python3-lib2to3 (3.7.5-1~19.04) ... Setting up python3-appdirs (1.4.3-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-posix-ipc (0.9.8-3build2) ... 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 libkrb5-26-heimdal:amd64 (7.5.0+dfsg-2.1) ... Setting up python3-pkg-resources (40.8.0-1) ... Setting up python3-entrypoints (0.3-1) ... Setting up python3-distutils (3.7.5-1~19.04) ... 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) ... 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-wsme (0.9.3-2ubuntu1) ... 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-1build4) ... Setting up python3-pbr (5.1.1-0ubuntu2) ... Setting up python3-statsd (3.2.1-2) ... Setting up python3-alabaster (0.7.8-1) ... Setting up python3-os-traits (0.11.0-0ubuntu1) ... Setting up python3-pycryptodome (3.6.1-2build2) ... Setting up python-traceback2 (1.4.0-5) ... 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 (5.0.3-0ubuntu1) ... Setting up python3-bcrypt (3.1.6-1) ... 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.7.0-0ubuntu1) ... Setting up python3-debtcollector (1.20.0-2) ... Setting up python-iniparse (0.4-2.2) ... Setting up python3-kombu (4.2.1-1) ... Setting up libheimntlm0-heimdal:amd64 (7.5.0+dfsg-2.1) ... Setting up python3-munch (2.3.2-1) ... Setting up openstack-pkg-tools (89ubuntu1) ... Setting up python3-bs4 (4.7.1-1build1) ... Setting up python3-flake8 (3.6.0-1) ... Setting up python3-mock (2.0.0-4) ... Setting up python3-routes (2.4.1-1) ... Setting up python3-eventlet (0.24.1-0ubuntu3.1) ... Setting up python3-packaging (19.0-1) ... Setting up python3-chardet (3.0.4-3) ... Setting up libgssapi3-heimdal:amd64 (7.5.0+dfsg-2.1) ... Setting up python3-paste (3.0.6+dfsg-1) ... Setting up python3-jsonschema (2.6.0-4ubuntu2) ... update-alternatives: using /usr/bin/python3-jsonschema to provide /usr/bin/jsonschema (jsonschema) in auto mode Setting up python3-kazoo (2.5.0-1ubuntu1) ... Setting up python3-cryptography (2.3-1ubuntu2) ... Setting up python3-requests (2.21.0-1) ... Setting up python3-zake (0.2.2-2) ... Setting up python3-oslosphinx (4.18.0-2) ... Setting up python3-oslo.rootwrap (5.15.2-0ubuntu1) ... 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 python3-deprecation (2.0.6-1) ... Setting up python3-oslo.context (1:2.22.1-0ubuntu1) ... Setting up python3-automaton (1.14.0-0ubuntu1) ... Setting up python3-pysmi (0.3.2-1) ... Setting up python3-alembic (1.0.0-2ubuntu2) ... Setting up python3-openstackdocstheme (1.29.1-0ubuntu1) ... Setting up python3-os-service-types (1.6.0-0ubuntu1) ... Setting up python3-stevedore (1:1.30.1-0ubuntu1) ... Setting up python3-pyghmi (1.0.32-5) ... 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-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 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-nacl (1.3.0-2) ... Setting up python3-oslo.i18n (3.23.1-0ubuntu1) ... Setting up python3-pep8 (1.7.1-3) ... Setting up alembic (1.0.0-2ubuntu2) ... Setting up pyflakes3 (2.0.0-1) ... Setting up python3-testresources (2.0.0-2) ... Setting up crudini (0.7-1) ... Setting up python3-pysnmp4 (4.4.6+repack1-1) ... Setting up python3-warlock (1.2.0-2) ... Setting up python3-openssl (19.0.0-1) ... Setting up python3-pastedeploy (2.0.1-1) ... Setting up libldap-2.4-2:amd64 (2.4.47+dfsg-3ubuntu2.2) ... Setting up python3-pyperclip (1.6.4-1) ... Setting up libcurl3-gnutls:amd64 (7.64.0-2ubuntu1.2) ... Setting up python3-oslo.utils (3.40.3-0ubuntu1) ... 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.7.9-0ubuntu1) ... Setting up git (1:2.20.1-2ubuntu1.19.04.1) ... Setting up python3-reno (2.9.2-1) ... update-alternatives: using /usr/bin/python3-reno to provide /usr/bin/reno (reno) in auto mode Setting up python3-keyring (17.1.1-1) ... Setting up python3-webtest (2.0.28-1ubuntu1) ... Setting up python3-paramiko (2.4.2-0.1ubuntu1) ... Setting up python3-keystoneauth1 (3.13.1-0ubuntu1) ... Setting up python3-hacking (1.1.0-2) ... Setting up python3-pecan (1.3.2-0ubuntu1) ... 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.28.2-0ubuntu1) ... Setting up python3-novaclient (2:13.0.0-0ubuntu1) ... update-alternatives: using /usr/bin/python3-nova to provide /usr/bin/nova (nova) in auto mode Setting up libpq5:amd64 (11.5-0ubuntu0.19.04.1) ... Setting up python3-glanceclient (1:2.16.0-0ubuntu1) ... update-alternatives: using /usr/bin/python3-glance to provide /usr/bin/glance (glance) in auto mode Setting up python3-scciclient (0.8.0-0ubuntu1) ... Setting up python3-psycopg2 (2.7.7-1) ... Setting up python3-openstacksdk (0.26.0-0ubuntu1) ... Setting up python3-cinderclient (1:4.1.0-0ubuntu1) ... 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-0ubuntu1) ... Setting up python3-oslo.reports (1.29.2-0ubuntu1) ... Setting up python3-tooz (1.64.2-0ubuntu1) ... Setting up python-testtools (2.3.0-5) ... Setting up dh-autoreconf (19) ... Setting up python3-fixtures (3.0.0-2) ... Setting up dh-strip-nondeterminism (1.1.2-1) ... 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 (12ubuntu1) ... Setting up python3-subunit (1.3.0-1) ... Setting up python3-testrepository (0.0.20-3) ... update-alternatives: using /usr/bin/testr-python3 to provide /usr/bin/testr (testr) in auto mode Setting up python3-mox3 (0.24.0-1) ... Setting up python3-testscenarios (0.5.0-2) ... Setting up python-testrepository (0.0.20-3) ... update-alternatives: using /usr/bin/testr-python2 to provide /usr/bin/testr (testr) in auto mode Setting up subunit (1.3.0-1) ... Setting up testrepository (0.0.20-3) ... Processing triggers for libc-bin (2.29-0ubuntu2) ... Processing triggers for systemd (240-6ubuntu5.8) ... 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.14.1-0ubuntu1) ... Setting up python3-oslo.config (1:6.8.1-0ubuntu1) ... 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.upgradecheck (0.2.1-0ubuntu1) ... Setting up python3-oslo.middleware (3.37.1-0ubuntu1) ... Setting up python3-keystoneclient (1:3.19.0-0ubuntu1) ... Setting up python3-oslo.db (4.44.0-0ubuntu1) ... Setting up python3-blockdiag (1.5.3+dfsg-5.2) ... Setting up python3-osc-lib (1.12.1-0ubuntu1) ... Setting up python3-oslo.concurrency (3.29.1-0ubuntu1) ... 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.5-1ubuntu1) ... 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.7.0-0ubuntu1) ... update-alternatives: using /usr/bin/python3-swift to provide /usr/bin/swift (swift) in auto mode Setting up python3-oslo.log (3.42.3-0ubuntu1) ... 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 (2.1.1-0ubuntu1) ... 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.38.0-0ubuntu1) ... Setting up python3-oslotest (1:3.7.1-0ubuntu1) ... 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 (9.5.0-0ubuntu1) ... 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 Setting up python3-os-api-ref (1.4.0-1ubuntu3) ... Setting up python3-neutronclient (1:6.11.0-0ubuntu1) ... update-alternatives: using /usr/bin/python3-neutron to provide /usr/bin/neutron (neutron) in auto mode Setting up python3-oslo.cache (1.33.2-0ubuntu1) ... Setting up python3-os-testr (1.0.0-4ubuntu1) ... update-alternatives: using /usr/bin/python3-ostestr to provide /usr/bin/ostestr (ostestr) in auto mode update-alternatives: using /usr/bin/python3-subunit-trace to provide /usr/bin/subunit-trace (subunit-trace) in auto mode update-alternatives: using /usr/bin/python3-subunit2html to provide /usr/bin/subunit2html (subunit2html) in auto mode update-alternatives: using /usr/bin/python3-generate-subunit to provide /usr/bin/generate-subunit (generate-subunit) in auto mode Setting up python3-oslo.versionedobjects (1.35.1-0ubuntu1) ... Setting up python3-keystonemiddleware (6.0.0-0ubuntu1) ... Setting up python3-ironic-lib (2.16.2-0ubuntu1) ... Setting up python3-openstackclient (3.18.0-0ubuntu1) ... update-alternatives: using /usr/bin/python3-openstack to provide /usr/bin/openstack (openstack) in auto mode Setting up python3-ironicclient (2.7.0-0ubuntu1) ... update-alternatives: using /usr/bin/python3-ironic to provide /usr/bin/ironic (ironic) in auto mode Setting up sbuild-build-depends-ironic-dummy (0.invalid.0) ... +------------------------------------------------------------------------------+ | Build environment | +------------------------------------------------------------------------------+ Kernel: Linux 4.4.0-174-generic amd64 (x86_64) Toolchain package versions: binutils_2.32-7ubuntu4 dpkg-dev_1.19.6ubuntu1.1 g++-8_8.3.0-6ubuntu1 gcc-8_8.3.0-6ubuntu1 libc6-dev_2.29-0ubuntu2 libstdc++-8-dev_8.3.0-6ubuntu1 libstdc++6_9.1.0-2ubuntu2~19.04 linux-libc-dev_5.0.0-38.41 Package versions: adduser_3.118ubuntu1 advancecomp_2.1-1ubuntu0.19.04.1 alembic_1.0.0-2ubuntu2 apt_1.8.3 autoconf_2.69-11 automake_1:1.16.1-4ubuntu3 autopoint_0.19.8.1-9 autotools-dev_20180224.1 base-files_10.1ubuntu9.2 base-passwd_3.5.46 bash_5.0-3ubuntu1.1 binutils_2.32-7ubuntu4 binutils-common_2.32-7ubuntu4 binutils-x86-64-linux-gnu_2.32-7ubuntu4 bsdmainutils_11.1.2ubuntu2 bsdutils_1:2.33.1-0.1ubuntu3 build-essential_12.6ubuntu1 bzip2_1.0.6-9ubuntu0.19.04.1 ca-certificates_20190110 coreutils_8.30-1ubuntu1 cpp_4:8.3.0-1ubuntu3 cpp-8_8.3.0-6ubuntu1 crudini_0.7-1 dash_0.5.10.2-4ubuntu1 dbus_1.12.12-1ubuntu1.1 debconf_1.5.71ubuntu1 debhelper_12ubuntu1 debianutils_4.8.6.1 dh-autoreconf_19 dh-python_3.20190308 dh-strip-nondeterminism_1.1.2-1 diffutils_1:3.7-2 dmsetup_2:1.02.145-4.1ubuntu4.2 docutils-common_0.14+dfsg-4 dpkg_1.19.6ubuntu1.1 dpkg-dev_1.19.6ubuntu1.1 dwz_0.12-3 e2fslibs_1.44.6-1ubuntu0.2 e2fsprogs_1.44.6-1ubuntu0.2 fakeroot_1.23-1 fdisk_2.33.1-0.1ubuntu3 file_1:5.35-4ubuntu0.1 findutils_4.6.0+git+20190209-2 flake8_3.6.0-1 fonts-glyphicons-halflings_1.009~3.4.0+dfsg-4 g++_4:8.3.0-1ubuntu3 g++-8_8.3.0-6ubuntu1 gcc_4:8.3.0-1ubuntu3 gcc-8_8.3.0-6ubuntu1 gcc-8-base_8.3.0-6ubuntu1 gcc-9-base_9.1.0-2ubuntu2~19.04 gettext_0.19.8.1-9 gettext-base_0.19.8.1-9 git_1:2.20.1-2ubuntu1.19.04.1 git-man_1:2.20.1-2ubuntu1.19.04.1 gpg_2.2.12-1ubuntu3 gpg-agent_2.2.12-1ubuntu3 gpgconf_2.2.12-1ubuntu3 gpgv_2.2.12-1ubuntu3 grep_3.3-1 groff-base_1.22.4-3 gzip_1.9-3 hostname_3.21 ieee-data_20180805.1 init_1.56+nmu1 init-system-helpers_1.56+nmu1 initscripts_2.88dsf-59.3ubuntu2 insserv_1.14.0-5ubuntu3 intltool-debian_0.35.0+20060710.5 jq_1.5+dfsg-2build1 libacl1_2.2.53-4 libapparmor1_2.13.2-9ubuntu6.1 libapt-pkg5.0_1.8.3 libarchive-zip-perl_1.64-1 libargon2-1_0~20171227-0.2 libasan5_9.1.0-2ubuntu2~19.04 libasn1-8-heimdal_7.5.0+dfsg-2.1 libassuan0_2.5.2-1 libatomic1_9.1.0-2ubuntu2~19.04 libattr1_1:2.4.48-4 libaudit-common_1:2.8.3-1ubuntu3 libaudit1_1:2.8.3-1ubuntu3 libbinutils_2.32-7ubuntu4 libblkid1_2.33.1-0.1ubuntu3 libbsd0_0.9.1-2ubuntu0.1 libbz2-1.0_1.0.6-9ubuntu0.19.04.1 libc-bin_2.29-0ubuntu2 libc-dev-bin_2.29-0ubuntu2 libc6_2.29-0ubuntu2 libc6-dev_2.29-0ubuntu2 libcap-ng0_0.7.9-2 libcap2_1:2.25-2 libcc1-0_9.1.0-2ubuntu2~19.04 libcom-err2_1.44.6-1ubuntu0.2 libcomerr2_1.44.6-1ubuntu0.2 libcroco3_0.6.12-3 libcryptsetup12_2:2.1.0-1ubuntu1 libcurl3-gnutls_7.64.0-2ubuntu1.2 libdb5.3_5.3.28+dfsg1-0.5ubuntu0.1 libdbus-1-3_1.12.12-1ubuntu1.1 libdebconfclient0_0.247ubuntu1 libdevmapper1.02.1_2:1.02.145-4.1ubuntu4.2 libdpkg-perl_1.19.6ubuntu1.1 libelf1_0.176-1 liberror-perl_0.17027-2 libexpat1_2.2.6-1ubuntu0.19.5 libext2fs2_1.44.6-1ubuntu0.2 libfakeroot_1.23-1 libfdisk1_2.33.1-0.1ubuntu3 libffi6_3.2.1-9 libfile-stripnondeterminism-perl_1.1.2-1 libfreetype6_2.9.1-3 libgcc-8-dev_8.3.0-6ubuntu1 libgcc1_1:9.1.0-2ubuntu2~19.04 libgcrypt20_1.8.4-3ubuntu1.1 libgdbm-compat4_1.18.1-4 libgdbm6_1.18.1-4 libglib2.0-0_2.60.4-0ubuntu0.19.04.1 libgmp10_2:6.1.2+dfsg-4 libgnutls30_3.6.5-2ubuntu1.1 libgomp1_9.1.0-2ubuntu2~19.04 libgpg-error0_1.35-1 libgssapi-krb5-2_1.17-1 libgssapi3-heimdal_7.5.0+dfsg-2.1 libhcrypto4-heimdal_7.5.0+dfsg-2.1 libheimbase1-heimdal_7.5.0+dfsg-2.1 libheimntlm0-heimdal_7.5.0+dfsg-2.1 libhogweed4_3.4.1-1 libhx509-5-heimdal_7.5.0+dfsg-2.1 libice6_2:1.0.9-2 libicu63_63.1-6 libidn11_1.33-2.2ubuntu2 libidn2-0_2.0.5-1ubuntu0.3 libimagequant0_2.12.2-1.1 libip4tc0_1.6.1-2ubuntu3 libisl19_0.20-2 libitm1_9.1.0-2ubuntu2~19.04 libjbig0_2.1-3.1build1 libjpeg-turbo8_2.0.1-0ubuntu2.2 libjpeg8_8c-2ubuntu8 libjq1_1.5+dfsg-2build1 libjs-bootstrap_3.4.0+dfsg-4 libjs-jquery_3.3.1~dfsg-1 libjs-sphinxdoc_1.8.5-1ubuntu1 libjs-underscore_1.9.1~dfsg-1 libjson-c3_0.12.1+ds-2 libk5crypto3_1.17-1 libkeyutils1_1.6-6 libkmod2_25-1ubuntu4 libkrb5-26-heimdal_7.5.0+dfsg-2.1 libkrb5-3_1.17-1 libkrb5support0_1.17-1 liblcms2-2_2.9-3 libldap-2.4-2_2.4.47+dfsg-3ubuntu2.2 libldap-common_2.4.47+dfsg-3ubuntu2.2 liblockfile-bin_1.14-1.1 liblockfile1_1.14-1.1 liblsan0_9.1.0-2ubuntu2~19.04 liblz4-1_1.8.3-1ubuntu1 liblzma5_5.2.4-1 libmagic-mgc_1:5.35-4ubuntu0.1 libmagic1_1:5.35-4ubuntu0.1 libmount1_2.33.1-0.1ubuntu3 libmpc3_1.1.0-1 libmpdec2_2.4.2-2 libmpfr6_4.0.2-1 libmpx2_8.3.0-6ubuntu1 libncurses6_6.1+20181013-2ubuntu2 libncursesw6_6.1+20181013-2ubuntu2 libnettle6_3.4.1-1 libnghttp2-14_1.36.0-2 libnpth0_1.6-1 libonig5_6.9.1-1 libp11-kit0_0.23.15-2 libpam-modules_1.3.1-5ubuntu1 libpam-modules-bin_1.3.1-5ubuntu1 libpam-runtime_1.3.1-5ubuntu1 libpam0g_1.3.1-5ubuntu1 libpcre2-8-0_10.32-5 libpcre3_2:8.39-12 libperl5.28_5.28.1-6 libpipeline1_1.5.1-2 libpng16-16_1.6.36-6 libpq5_11.5-0ubuntu0.19.04.1 libprocps7_2:3.3.15-2ubuntu2.1 libpsl5_0.20.2-2 libpython-stdlib_2.7.16-1 libpython2-stdlib_2.7.16-1 libpython2.7-minimal_2.7.16-2ubuntu0.2 libpython2.7-stdlib_2.7.16-2ubuntu0.2 libpython3-stdlib_3.7.3-1 libpython3.7-minimal_3.7.3-2ubuntu0.2 libpython3.7-stdlib_3.7.3-2ubuntu0.2 libquadmath0_9.1.0-2ubuntu2~19.04 libreadline7_7.0-5 libreadline8_8.0-1 libroken18-heimdal_7.5.0+dfsg-2.1 librtmp1_2.4+20151223.gitfa8646d.1-2 libsasl2-2_2.1.27+dfsg-1 libsasl2-modules-db_2.1.27+dfsg-1 libseccomp2_2.4.1-0ubuntu0.19.04.3 libselinux1_2.8-1build2 libsemanage-common_2.8-2 libsemanage1_2.8-2 libsepol1_2.8-1 libsigsegv2_2.12-2 libslang2_2.3.2-1ubuntu1 libsm6_2:1.2.3-1 libsmartcols1_2.33.1-0.1ubuntu3 libsodium23_1.0.17-1 libsqlite3-0_3.27.2-2ubuntu0.2 libss2_1.44.6-1ubuntu0.2 libssh-4_0.8.6-3ubuntu0.3 libssl1.1_1.1.1b-1ubuntu2.4 libstdc++-8-dev_8.3.0-6ubuntu1 libstdc++6_9.1.0-2ubuntu2~19.04 libsubunit-perl_1.3.0-1 libsystemd0_240-6ubuntu5.8 libtasn1-6_4.13-3 libtiff5_4.0.10-4ubuntu0.1 libtinfo6_6.1+20181013-2ubuntu2 libtool_2.4.6-10 libtsan0_9.1.0-2ubuntu2~19.04 libubsan1_9.1.0-2ubuntu2~19.04 libuchardet0_0.0.6-3 libudev1_240-6ubuntu5.8 libunistring2_0.9.10-1ubuntu2 libusb-0.1-4_2:0.1.12-32 libuuid1_2.33.1-0.1ubuntu3 libwebp6_0.6.1-2 libwebpdemux2_0.6.1-2 libwebpmux3_0.6.1-2 libwind0-heimdal_7.5.0+dfsg-2.1 libx11-6_2:1.6.7-1 libx11-data_2:1.6.7-1 libxau6_1:1.0.8-1 libxcb1_1.13.1-2 libxdmcp6_1:1.1.2-3 libxext6_2:1.3.3-1 libxml2_2.9.4+dfsg1-7ubuntu3 libxmu6_2:1.1.2-2 libxslt1.1_1.1.32-2ubuntu0.2 libxt6_1:1.1.5-1 libyaml-0-2_0.2.1-1 libzstd1_1.3.8+dfsg-3 linux-libc-dev_5.0.0-38.41 lockfile-progs_0.1.18 login_1:4.5-1.1ubuntu2 lsb-base_10.2019031300ubuntu1 m4_1.4.18-2 make_4.2.1-1.2 man-db_2.8.5-2 mawk_1.3.3-17ubuntu3 mime-support_3.60ubuntu1 mount_2.33.1-0.1ubuntu3 multiarch-support_2.29-0ubuntu2 ncurses-base_6.1+20181013-2ubuntu2 ncurses-bin_6.1+20181013-2ubuntu2 netbase_5.6 openssl_1.1.1b-1ubuntu2.4 openstack-pkg-tools_89ubuntu1 optipng_0.7.7-1 passwd_1:4.5-1.1ubuntu2 patch_2.7.6-3ubuntu0.1 perl_5.28.1-6 perl-base_5.28.1-6 perl-modules-5.28_5.28.1-6 pinentry-curses_1.1.0-1build2 pkgbinarymangler_144 po-debconf_1.0.21 policyrcd-script-zg2_0.1-3 procps_2:3.3.15-2ubuntu2.1 pycadf-common_2.7.0-2 pyflakes3_2.0.0-1 python_2.7.16-1 python-all_2.7.16-1 python-babel-localedata_2.6.0+dfsg.1-1 python-extras_1.0.0-3 python-fixtures_3.0.0-2 python-iniparse_0.4-2.2 python-linecache2_1.0.0-3 python-mimeparse_0.1.4-3.1 python-minimal_2.7.16-1 python-os-api-ref-common_1.4.0-1ubuntu3 python-oslosphinx-common_4.18.0-2 python-pastedeploy-tpl_2.0.1-1 python-pbr_5.1.1-0ubuntu2 python-pkg-resources_40.8.0-1 python-setuptools_40.8.0-1 python-six_1.12.0-1 python-subunit_1.3.0-1 python-testrepository_0.0.20-3 python-testtools_2.3.0-5 python-traceback2_1.4.0-5 python-unittest2_1.1.0-6.1 python2_2.7.16-1 python2-minimal_2.7.16-1 python2.7_2.7.16-2ubuntu0.2 python2.7-minimal_2.7.16-2ubuntu0.2 python3_3.7.3-1 python3-alabaster_0.7.8-1 python3-alembic_1.0.0-2ubuntu2 python3-all_3.7.3-1 python3-amqp_2.4.0-1 python3-anyjson_0.3.3-1build1 python3-appdirs_1.4.3-1 python3-asn1crypto_0.24.0-1 python3-automaton_1.14.0-0ubuntu1 python3-babel_2.6.0+dfsg.1-1 python3-bashate_0.6.0-1 python3-bcrypt_3.1.6-1 python3-blinker_1.4+dfsg1-0.2 python3-blockdiag_1.5.3+dfsg-5.2 python3-bs4_4.7.1-1build1 python3-cachetools_3.1.0-2 python3-certifi_2018.8.24-1 python3-cffi-backend_1.12.2-1 python3-chardet_3.0.4-3 python3-cinderclient_1:4.1.0-0ubuntu1 python3-cliff_2.14.1-0ubuntu1 python3-cmd2_0.7.9-0ubuntu1 python3-contextlib2_0.5.5-1 python3-coverage_4.5.2+dfsg.1-1 python3-crypto_2.6.1-9build2 python3-cryptography_2.3-1ubuntu2 python3-dateutil_2.7.3-3 python3-dbus_1.2.8-3 python3-debtcollector_1.20.0-2 python3-decorator_4.3.0-1.1 python3-deprecation_2.0.6-1 python3-distutils_3.7.5-1~19.04 python3-dnspython_1.16.0-1 python3-doc8_0.8.0-1 python3-docutils_0.14+dfsg-4 python3-dogpile.cache_0.6.2-6 python3-dulwich_0.19.11-2 python3-entrypoints_0.3-1 python3-eventlet_0.24.1-0ubuntu3.1 python3-extras_1.0.0-3 python3-fasteners_0.12.0-3 python3-fixtures_3.0.0-2 python3-flake8_3.6.0-1 python3-funcparserlib_0.3.6-7 python3-funcsigs_1.0.2-4 python3-future_0.16.0-1 python3-futurist_1.7.0-0ubuntu1 python3-glanceclient_1:2.16.0-0ubuntu1 python3-greenlet_0.4.15-2 python3-hacking_1.1.0-2 python3-idna_2.6-1 python3-imagesize_1.0.0-1 python3-ironic-lib_2.16.2-0ubuntu1 python3-ironicclient_2.7.0-0ubuntu1 python3-iso8601_0.1.11-1 python3-jinja2_2.10-1ubuntu0.19.04.1 python3-jmespath_0.9.4-1 python3-json-pointer_1.10-1 python3-jsonpatch_1.21-1 python3-jsonschema_2.6.0-4ubuntu2 python3-jwt_1.7.0-2 python3-kazoo_2.5.0-1ubuntu1 python3-keyring_17.1.1-1 python3-keystoneauth1_3.13.1-0ubuntu1 python3-keystoneclient_1:3.19.0-0ubuntu1 python3-keystonemiddleware_6.0.0-0ubuntu1 python3-kombu_4.2.1-1 python3-lib2to3_3.7.5-1~19.04 python3-linecache2_1.0.0-3 python3-logutils_0.3.3-5 python3-lxml_4.3.3-1 python3-mako_1.0.7+ds1-1 python3-markupsafe_1.1.0-1 python3-mccabe_0.6.1-2 python3-memcache_1.59-1 python3-migrate_0.11.0-5 python3-mimeparse_0.1.4-3.1 python3-minimal_3.7.3-1 python3-mock_2.0.0-4 python3-monotonic_1.5-0ubuntu1 python3-mox3_0.24.0-1 python3-msgpack_0.5.6-1build2 python3-munch_2.3.2-1 python3-nacl_1.3.0-2 python3-netaddr_0.7.19-1 python3-netifaces_0.10.4-1build2 python3-neutronclient_1:6.11.0-0ubuntu1 python3-novaclient_2:13.0.0-0ubuntu1 python3-oauthlib_2.1.0-1 python3-openssl_19.0.0-1 python3-openstackclient_3.18.0-0ubuntu1 python3-openstackdocstheme_1.29.1-0ubuntu1 python3-openstacksdk_0.26.0-0ubuntu1 python3-os-api-ref_1.4.0-1ubuntu3 python3-os-client-config_1.31.2-0ubuntu1 python3-os-service-types_1.6.0-0ubuntu1 python3-os-testr_1.0.0-4ubuntu1 python3-os-traits_0.11.0-0ubuntu1 python3-osc-lib_1.12.1-0ubuntu1 python3-oslo.cache_1.33.2-0ubuntu1 python3-oslo.concurrency_3.29.1-0ubuntu1 python3-oslo.config_1:6.8.1-0ubuntu1 python3-oslo.context_1:2.22.1-0ubuntu1 python3-oslo.db_4.44.0-0ubuntu1 python3-oslo.i18n_3.23.1-0ubuntu1 python3-oslo.log_3.42.3-0ubuntu1 python3-oslo.messaging_9.5.0-0ubuntu1 python3-oslo.middleware_3.37.1-0ubuntu1 python3-oslo.policy_2.1.1-0ubuntu1 python3-oslo.reports_1.29.2-0ubuntu1 python3-oslo.rootwrap_5.15.2-0ubuntu1 python3-oslo.serialization_2.28.2-0ubuntu1 python3-oslo.service_1.38.0-0ubuntu1 python3-oslo.upgradecheck_0.2.1-0ubuntu1 python3-oslo.utils_3.40.3-0ubuntu1 python3-oslo.versionedobjects_1.35.1-0ubuntu1 python3-oslosphinx_4.18.0-2 python3-oslotest_1:3.7.1-0ubuntu1 python3-osprofiler_2.3.0-3 python3-packaging_19.0-1 python3-paramiko_2.4.2-0.1ubuntu1 python3-paste_3.0.6+dfsg-1 python3-pastedeploy_2.0.1-1 python3-pbr_5.1.1-0ubuntu2 python3-pecan_1.3.2-0ubuntu1 python3-pep8_1.7.1-3 python3-pil_5.4.1-1 python3-pkg-resources_40.8.0-1 python3-ply_3.11-3 python3-posix-ipc_0.9.8-3build2 python3-prettytable_0.7.2-4 python3-psutil_5.5.1-1ubuntu0.19.04.1 python3-psycopg2_2.7.7-1 python3-pyasn1_0.4.2-3 python3-pycadf_2.7.0-2 python3-pycodestyle_2.4.0-2 python3-pycryptodome_3.6.1-2build2 python3-pyflakes_2.0.0-1 python3-pyghmi_1.0.32-5 python3-pygments_2.3.1+dfsg-1 python3-pyinotify_0.9.6-1 python3-pymemcache_1.3.2-3 python3-pymysql_0.9.3-1 python3-pyparsing_2.2.0+dfsg1-2 python3-pyperclip_1.6.4-1 python3-pysmi_0.3.2-1 python3-pysnmp4_4.4.6+repack1-1 python3-redis_3.2.0-2 python3-reno_2.9.2-1 python3-reportlab_3.5.18-1 python3-reportlab-accel_3.5.18-1 python3-repoze.lru_0.7-1 python3-requests_2.21.0-1 python3-requestsexceptions_1.4.0-1 python3-restructuredtext-lint_0.12.2-2 python3-retrying_1.3.3-3 python3-rfc3986_1.2.0-0ubuntu1 python3-roman_2.0.0-3 python3-routes_2.4.1-1 python3-scciclient_0.8.0-0ubuntu1 python3-secretstorage_2.3.1-2 python3-sendfile_2.0.1-2build1 python3-seqdiag_0.9.5+dfsg-1.1 python3-setuptools_40.8.0-1 python3-simplegeneric_0.8.1-2 python3-simplejson_3.16.0-1 python3-singledispatch_3.4.0.3-2 python3-six_1.12.0-1 python3-soupsieve_1.8+dfsg-1 python3-sphinx_1.8.5-1ubuntu1 python3-sphinxcontrib-pecanwsme_0.8.0-7 python3-sphinxcontrib.apidoc_0.2.1-2 python3-sphinxcontrib.httpdomain_1.5.0-2 python3-sphinxcontrib.seqdiag_0.8.5-1 python3-sqlalchemy_1.2.15+ds1-1 python3-sqlparse_0.2.4-1 python3-statsd_3.2.1-2 python3-stestr_2.1.0-2 python3-stevedore_1:1.30.1-0ubuntu1 python3-subunit_1.3.0-1 python3-swiftclient_1:3.7.0-0ubuntu1 python3-tempita_0.5.2-2 python3-tenacity_5.0.3-0ubuntu1 python3-testrepository_0.0.20-3 python3-testresources_2.0.0-2 python3-testscenarios_0.5.0-2 python3-testtools_2.3.0-5 python3-tooz_1.64.2-0ubuntu1 python3-traceback2_1.4.0-5 python3-tz_2018.9-1 python3-unicodecsv_0.14.1-1 python3-unittest2_1.1.0-6.1 python3-urllib3_1.24.1-1ubuntu0.1 python3-vine_1.1.4+dfsg-2 python3-voluptuous_0.11.1-1 python3-waitress_1.2.0~b2-2 python3-warlock_1.2.0-2 python3-webcolors_1.5-2 python3-webob_1:1.8.5-1 python3-webtest_2.0.28-1ubuntu1 python3-wrapt_1.10.11-1 python3-wsme_0.9.3-2ubuntu1 python3-yaml_3.13-2 python3-zake_0.2.2-2 python3-zope.interface_4.3.2-1build4 python3.7_3.7.3-2ubuntu0.2 python3.7-minimal_3.7.3-2ubuntu0.2 readline-common_8.0-1 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-ironic-dummy_0.invalid.0 sed_4.7-1 sensible-utils_0.0.12 sgml-base_1.29 sphinx-common_1.8.5-1ubuntu1 subunit_1.3.0-1 sudo_1.8.27-1ubuntu1.1 systemd_240-6ubuntu5.8 systemd-sysv_240-6ubuntu5.8 sysv-rc_2.88dsf-59.3ubuntu2 sysvinit-utils_2.88dsf-59.10ubuntu2 tar_1.30+dfsg-5 testrepository_0.0.20-3 tzdata_2019c-0ubuntu0.19.04 ubuntu-keyring_2018.09.18.1 util-linux_2.33.1-0.1ubuntu3 wget_1.20.1-1ubuntu4 x11-common_1:7.7+19ubuntu12 xclip_0.13-1 xml-core_0.18+nmu1 xz-utils_5.2.4-1 zlib1g_1:1.2.11.dfsg-1ubuntu2 +------------------------------------------------------------------------------+ | Build | +------------------------------------------------------------------------------+ Unpack source ------------- gpgv: Signature made Wed Mar 11 19:33:36 2020 UTC gpgv: using RSA key 00FA37C39935ACDC gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./ironic_12.1.4.dev5.202003111929.disco-0ubuntu1.dsc dpkg-source: info: extracting ironic in ironic-12.1.4.dev5.202003111929.disco dpkg-source: info: unpacking ironic_12.1.4.dev5.202003111929.disco.orig.tar.gz dpkg-source: info: unpacking ironic_12.1.4.dev5.202003111929.disco-0ubuntu1.debian.tar.xz Check disc space ---------------- Sufficient free space for build User Environment ---------------- APT_CONFIG=/var/lib/sbuild/apt.conf DEB_BUILD_OPTIONS=noautodbgsym parallel=4 HOME=/sbuild-nonexistent LANG=C.UTF-8 LC_ALL=C.UTF-8 LOGNAME=buildd PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games SCHROOT_ALIAS_NAME=build-PACKAGEBUILD-18828275 SCHROOT_CHROOT_NAME=build-PACKAGEBUILD-18828275 SCHROOT_COMMAND=env SCHROOT_GID=2501 SCHROOT_GROUP=buildd SCHROOT_SESSION_ID=build-PACKAGEBUILD-18828275 SCHROOT_UID=2001 SCHROOT_USER=buildd SHELL=/bin/sh TERM=unknown USER=buildd V=1 dpkg-buildpackage ----------------- dpkg-buildpackage: info: source package ironic dpkg-buildpackage: info: source version 1:12.1.4.dev5.202003111929.disco-0ubuntu1 dpkg-buildpackage: info: source distribution disco dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' dh clean --with python3,systemd dh_auto_clean dh_auto_clean: Please use the third-party "pybuild" build system instead of python-distutils dh_auto_clean: This feature will be removed in compat 12. pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions python setup.py clean -a /usr/lib/python2.7/dist-packages/setuptools/dist.py:484: UserWarning: The version specified ('12.1.4.dev5.202003111929.disco') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details. "details." % self.metadata.version running clean 'build/lib.linux-x86_64-2.7' does not exist -- can't clean it 'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-2.7' does not exist -- can't clean it find . -name \*.pyc -exec rm {} \+ debian/rules override_dh_clean make[1]: Entering directory '/<>' 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' dh_clean rm -f debian/*.init debian/*.service debian/*.upstart .testrepository make[1]: Leaving directory '/<>' 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' dh build --with python3,systemd dh_update_autotools_config dh_autoreconf dh_auto_configure 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. dh_auto_build dh_auto_build: Please use the third-party "pybuild" build system instead of python-distutils dh_auto_build: This feature will be removed in compat 12. pyversions: missing X(S)-Python-Version in control file, fall back to debian/pyversions pyversions: missing debian/pyversions file, fall back to supported versions python setup.py build --force /usr/lib/python2.7/dist-packages/setuptools/dist.py:484: UserWarning: The version specified ('12.1.4.dev5.202003111929.disco') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details. "details." % self.metadata.version running build running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/ironic creating build/lib.linux-x86_64-2.7/ironic/tests creating build/lib.linux-x86_64-2.7/ironic/tests/unit creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_job.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_power.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_management.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_common.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_bios.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/test_ipmitool.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_client.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_base_vendor.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_iscsi_deploy.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_console_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_pxe.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_snmp.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_image_cache.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_inspector.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipxe.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules creating build/lib.linux-x86_64-2.7/ironic/tests/functional copying ironic/tests/functional/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/functional creating build/lib.linux-x86_64-2.7/ironic/common creating build/lib.linux-x86_64-2.7/ironic/common/glance_service creating build/lib.linux-x86_64-2.7/ironic/common/glance_service/v2 copying ironic/common/glance_service/v2/__init__.py -> build/lib.linux-x86_64-2.7/ironic/common/glance_service/v2 copying ironic/common/glance_service/v2/image_service.py -> build/lib.linux-x86_64-2.7/ironic/common/glance_service/v2 creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/test_base.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_generic.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_cisco.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ipmi.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ilo.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ibmc.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_snmp.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_fake_hardware.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_xclarity.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_redfish.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_irmc.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_drac.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers creating build/lib.linux-x86_64-2.7/ironic/tests/unit/db creating build/lib.linux-x86_64-2.7/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_deploy_templates.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/base.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_targets.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_chassis.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_conductor.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_ports.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_traits.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_portgroups.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_connectors.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_nodes.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_node_tags.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_api.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_bios_settings.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db copying ironic/tests/unit/db/test_allocations.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/db creating build/lib.linux-x86_64-2.7/ironic/hacking copying ironic/hacking/__init__.py -> build/lib.linux-x86_64-2.7/ironic/hacking copying ironic/hacking/checks.py -> build/lib.linux-x86_64-2.7/ironic/hacking copying ironic/version.py -> build/lib.linux-x86_64-2.7/ironic copying ironic/__init__.py -> build/lib.linux-x86_64-2.7/ironic creating build/lib.linux-x86_64-2.7/ironic/drivers creating build/lib.linux-x86_64-2.7/ironic/drivers/modules creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/deploy.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible creating build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_image_service.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_exception.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_json_rpc.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_images.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_release_mappings.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_states.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_driver_factory.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_cinder.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_context.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_rpc.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_glance_service.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_keystone.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_fsm.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_hash_ring.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_rpc_service.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_swift.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_network.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_neutron.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_policy.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_raid.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/tests/unit/common/test_pxe_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/common copying ironic/drivers/utils.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/xclarity.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/hardware_type.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/fake_hardware.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/base.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/cisco_ucs.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/generic.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/snmp.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/ilo.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/ipmi.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/redfish.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/irmc.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/ibmc.py -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/drivers/drac.py -> build/lib.linux-x86_64-2.7/ironic/drivers creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/cimc copying ironic/tests/unit/drivers/modules/cimc/test_power.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/cimc copying ironic/tests/unit/drivers/modules/cimc/test_management.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/cimc copying ironic/tests/unit/drivers/modules/cimc/test_common.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/cimc copying ironic/tests/unit/drivers/modules/cimc/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/cimc creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/management.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/power.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/helper.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ucs creating build/lib.linux-x86_64-2.7/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_conductor.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_status.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_dbsync.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/cmd creating build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/portgroup.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/base.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/conductor.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/node.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/volume_connector.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/volume_target.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/deploy_template.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/port.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/notification.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/trait.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/fields.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/__init__.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/chassis.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/allocation.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/indirection.py -> build/lib.linux-x86_64-2.7/ironic/objects copying ironic/objects/bios.py -> build/lib.linux-x86_64-2.7/ironic/objects creating build/lib.linux-x86_64-2.7/ironic/tests/unit/api creating build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers creating build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_types.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_node.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_event.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_expose.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_root.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_port.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_driver.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers/v1 copying ironic/common/utils.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/release_mappings.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/fsm.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/pxe_utils.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/service.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/config.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/boot_modes.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/driver_factory.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/i18n.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/dhcp_factory.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/rpc.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/hash_ring.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/faults.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/network.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/swift.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/cinder.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/exception.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/profiler.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/rpc_service.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/boot_devices.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/states.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/policy.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/keystone.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/__init__.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/image_service.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/images.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/neutron.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/context.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/raid.py -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/wsgi_service.py -> build/lib.linux-x86_64-2.7/ironic/common creating build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_manager.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_base_manager.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_task_manager.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_notification_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_steps.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/mgr_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_rpcapi.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_allocations.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conductor creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/management.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/power.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/common.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/xclarity creating build/lib.linux-x86_64-2.7/ironic/api copying ironic/api/hooks.py -> build/lib.linux-x86_64-2.7/ironic/api copying ironic/api/config.py -> build/lib.linux-x86_64-2.7/ironic/api copying ironic/api/app.py -> build/lib.linux-x86_64-2.7/ironic/api copying ironic/api/expose.py -> build/lib.linux-x86_64-2.7/ironic/api copying ironic/api/wsgi.py -> build/lib.linux-x86_64-2.7/ironic/api copying ironic/api/__init__.py -> build/lib.linux-x86_64-2.7/ironic/api creating build/lib.linux-x86_64-2.7/ironic/api/middleware copying ironic/api/middleware/json_ext.py -> build/lib.linux-x86_64-2.7/ironic/api/middleware copying ironic/api/middleware/parsable_error.py -> build/lib.linux-x86_64-2.7/ironic/api/middleware copying ironic/api/middleware/auth_token.py -> build/lib.linux-x86_64-2.7/ironic/api/middleware copying ironic/api/middleware/__init__.py -> build/lib.linux-x86_64-2.7/ironic/api/middleware creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_power.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_management.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_boot.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_bios.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_raid.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/management.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/power.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/common.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/cimc copying ironic/common/glance_service/service_utils.py -> build/lib.linux-x86_64-2.7/ironic/common/glance_service copying ironic/common/glance_service/base_image_service.py -> build/lib.linux-x86_64-2.7/ironic/common/glance_service copying ironic/common/glance_service/__init__.py -> build/lib.linux-x86_64-2.7/ironic/common/glance_service creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/test_power.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/test_management.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/test_helper.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ucs creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/boot.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/management.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/inspect.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/power.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/common.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/bios.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/raid.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/irmc creating build/lib.linux-x86_64-2.7/ironic/api/controllers creating build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/utils.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/event.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/portgroup.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/conductor.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/node.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/state.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_connector.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_target.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/versions.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/deploy_template.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/notification_utils.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/ramdisk.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/port.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/collection.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/types.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/__init__.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/driver.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/chassis.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/allocation.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 copying ironic/api/controllers/v1/bios.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers/v1 creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ilo creating build/lib.linux-x86_64-2.7/ironic/db copying ironic/db/migration.py -> build/lib.linux-x86_64-2.7/ironic/db copying ironic/db/api.py -> build/lib.linux-x86_64-2.7/ironic/db copying ironic/db/__init__.py -> build/lib.linux-x86_64-2.7/ironic/db copying ironic/drivers/modules/noop_mgmt.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/iscsi_deploy.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/console_utils.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/ipxe.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/inspect_utils.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/pxe.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/agent_base_vendor.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/ipmitool.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/agent.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/agent_client.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/snmp.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/deploy_utils.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/fake.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/image_cache.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/inspector.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/pxe_base.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/boot_mode_utils.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/noop.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_vendor.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/base.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_power.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_management.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ibmc creating build/lib.linux-x86_64-2.7/ironic/tests/unit/conf copying ironic/tests/unit/conf/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_auth.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/conf creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/external.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/cinder.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/noop.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/storage creating build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/migration.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/api.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/__init__.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/models.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy copying ironic/tests/unit/api/utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api copying ironic/tests/unit/api/base.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api copying ironic/tests/unit/api/test_middleware.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api copying ironic/tests/unit/api/test_hooks.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api copying ironic/tests/unit/api/test_acl.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api copying ironic/tests/unit/api/test_healthcheck.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api copying ironic/tests/unit/api/test_audit.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api copying ironic/tests/unit/api/test_root.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api copying ironic/tests/unit/api/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/ansible creating build/lib.linux-x86_64-2.7/ironic/dhcp copying ironic/dhcp/base.py -> build/lib.linux-x86_64-2.7/ironic/dhcp copying ironic/dhcp/none.py -> build/lib.linux-x86_64-2.7/ironic/dhcp copying ironic/dhcp/__init__.py -> build/lib.linux-x86_64-2.7/ironic/dhcp copying ironic/dhcp/neutron.py -> build/lib.linux-x86_64-2.7/ironic/dhcp creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/management.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/inspect.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/power.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/vendor_passthru.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/common.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/bios.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/job.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/raid.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/drac creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/utils.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/management.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/inspect.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/power.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/bios.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/redfish copying ironic/api/controllers/base.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers copying ironic/api/controllers/version.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers copying ironic/api/controllers/__init__.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers copying ironic/api/controllers/link.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers copying ironic/api/controllers/root.py -> build/lib.linux-x86_64-2.7/ironic/api/controllers creating build/lib.linux-x86_64-2.7/ironic/cmd copying ironic/cmd/status.py -> build/lib.linux-x86_64-2.7/ironic/cmd copying ironic/cmd/conductor.py -> build/lib.linux-x86_64-2.7/ironic/cmd copying ironic/cmd/dbsync.py -> build/lib.linux-x86_64-2.7/ironic/cmd copying ironic/cmd/api.py -> build/lib.linux-x86_64-2.7/ironic/cmd copying ironic/cmd/__init__.py -> build/lib.linux-x86_64-2.7/ironic/cmd copying ironic/tests/unit/api/controllers/test_base.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/api/controllers copying ironic/tests/unit/test_base.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit copying ironic/tests/unit/stubs.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit copying ironic/tests/unit/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit copying ironic/tests/unit/raid_constants.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit copying ironic/tests/unit/policy_fixture.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit creating build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/dhcp.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/xclarity.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/opts.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/json_rpc.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/conductor.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/deploy.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/cisco.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/service_catalog.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/pxe.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/metrics.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/swift.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/cinder.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/agent.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/snmp.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/ilo.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/database.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/api.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/inspector.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/ipmi.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/auth.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/default.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/redfish.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/irmc.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/metrics_statsd.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/iscsi.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/__init__.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/healthcheck.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/ansible.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/audit.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/neutron.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/glance.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/console.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/ibmc.py -> build/lib.linux-x86_64-2.7/ironic/conf copying ironic/conf/drac.py -> build/lib.linux-x86_64-2.7/ironic/conf creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/boot.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/vendor.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/management.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/inspect.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/power.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/common.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/console.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/bios.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/raid.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/firmware_processor.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ilo creating build/lib.linux-x86_64-2.7/ironic/conductor copying ironic/conductor/utils.py -> build/lib.linux-x86_64-2.7/ironic/conductor copying ironic/conductor/manager.py -> build/lib.linux-x86_64-2.7/ironic/conductor copying ironic/conductor/notification_utils.py -> build/lib.linux-x86_64-2.7/ironic/conductor copying ironic/conductor/rpcapi.py -> build/lib.linux-x86_64-2.7/ironic/conductor copying ironic/conductor/task_manager.py -> build/lib.linux-x86_64-2.7/ironic/conductor copying ironic/conductor/__init__.py -> build/lib.linux-x86_64-2.7/ironic/conductor copying ironic/conductor/allocations.py -> build/lib.linux-x86_64-2.7/ironic/conductor copying ironic/conductor/steps.py -> build/lib.linux-x86_64-2.7/ironic/conductor copying ironic/conductor/base_manager.py -> build/lib.linux-x86_64-2.7/ironic/conductor creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/utils.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/vendor.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/management.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/power.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/mappings.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ibmc creating build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_notification.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_target.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_allocation.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_fields.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_trait.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_chassis.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_conductor.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_node.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_portgroup.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_connector.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_deploy_template.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_bios.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_objects.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_port.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/objects creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_power.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/xclarity creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_power.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_management.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_utils.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_bios.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_inspect.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/redfish creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/network copying ironic/drivers/modules/network/flat.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/network copying ironic/drivers/modules/network/__init__.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/network copying ironic/drivers/modules/network/common.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/network copying ironic/drivers/modules/network/neutron.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/network copying ironic/drivers/modules/network/noop.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/network copying ironic/tests/base.py -> build/lib.linux-x86_64-2.7/ironic/tests copying ironic/tests/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests creating build/lib.linux-x86_64-2.7/ironic/common/json_rpc copying ironic/common/json_rpc/server.py -> build/lib.linux-x86_64-2.7/ironic/common/json_rpc copying ironic/common/json_rpc/__init__.py -> build/lib.linux-x86_64-2.7/ironic/common/json_rpc copying ironic/common/json_rpc/client.py -> build/lib.linux-x86_64-2.7/ironic/common/json_rpc creating build/lib.linux-x86_64-2.7/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_factory.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/dhcp creating build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/network running egg_info writing requirements to ironic.egg-info/requires.txt writing ironic.egg-info/PKG-INFO writing top-level names to ironic.egg-info/top_level.txt writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt [pbr] Reusing existing SOURCES.txt copying ironic/tests/unit/drivers/boot.ipxe -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/elilo_efi_pxe_config.template -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_config.template -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers creating build/lib.linux-x86_64-2.7/ironic/releasenotes creating build/lib.linux-x86_64-2.7/ironic/releasenotes/notes copying ironic/releasenotes/notes/add-protection-for-available-nodes-25f163d69782ef63.yaml -> build/lib.linux-x86_64-2.7/ironic/releasenotes/notes creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/inventory -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/callback_plugins creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/library creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/clean creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/configure creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/deploy creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/discover creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/prepare creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/lib.linux-x86_64-2.7/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/raid_config_schema.json -> build/lib.linux-x86_64-2.7/ironic/drivers copying ironic/common/grub_conf.template -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/common/isolinux_config.template -> build/lib.linux-x86_64-2.7/ironic/common copying ironic/api/app.wsgi -> build/lib.linux-x86_64-2.7/ironic/api copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/lib.linux-x86_64-2.7/ironic/tests/unit/drivers/modules/irmc copying ironic/drivers/modules/agent_config.template -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/boot.ipxe -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/elilo_efi_pxe_config.template -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/ipxe_config.template -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/master_grub_cfg.txt -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/pxe_config.template -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/drivers/modules/pxe_grub_config.template -> build/lib.linux-x86_64-2.7/ironic/drivers/modules copying ironic/db/sqlalchemy/alembic.ini -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy creating build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/README -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/env.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/script.py.mako -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic creating build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib.linux-x86_64-2.7/ironic/db/sqlalchemy/alembic/versions debian/rules override_dh_auto_test make[1]: Entering directory '/<>' 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' pkgos-dh_auto_test --no-py2 + PKGOS_USE_PY2=yes + PKGOS_USE_PY3=yes + PKGOS_USE_PY36=yes + PKGOS_TEST_PARALLEL=yes + PYTHONS=disabled + PYTHON3S=disabled + TEST_PARALLEL_OPT=--parallel + PKGOS_USE_PY2=no + shift + [ no = yes ] + [ yes = yes ] + py3versions -vr + PYTHON3S=3.7 + [ yes = no ] + [ yes = no ] + [ disabled = disabled ] + continue + [ 3.7 = disabled ] + echo 3.7 + cut -d. -f1 + PYMAJOR=3 + echo ===> Testing with python (python3) ===> Testing with python (python3) + [ 3 = 3 ] + pwd + [ -d /<>/debian/tmp/usr/lib/python3/dist-packages ] + [ -e .stestr.conf ] + rm -rf .stestr + PYTHON=python3.7 python3-stestr run --subunit + subunit2pyunit 2020-03-11 19:45:11.237 17154 INFO keyring.backend [-] Loading KWallet 2020-03-11 19:45:11.242 17152 INFO keyring.backend [-] Loading KWallet 2020-03-11 19:45:11.246 17154 INFO keyring.backend [-] Loading SecretService 2020-03-11 19:45:11.249 17154 INFO keyring.backend [-] Loading Windows 2020-03-11 19:45:11.250 17154 INFO keyring.backend [-] Loading chainer 2020-03-11 19:45:11.251 17154 INFO keyring.backend [-] Loading macOS 2020-03-11 19:45:11.254 17152 INFO keyring.backend [-] Loading SecretService 2020-03-11 19:45:11.256 17152 INFO keyring.backend [-] Loading Windows 2020-03-11 19:45:11.257 17152 INFO keyring.backend [-] Loading chainer 2020-03-11 19:45:11.258 17152 INFO keyring.backend [-] Loading macOS 2020-03-11 19:45:11.271 17156 INFO keyring.backend [-] Loading KWallet 2020-03-11 19:45:11.281 17156 INFO keyring.backend [-] Loading SecretService 2020-03-11 19:45:11.286 17156 INFO keyring.backend [-] Loading Windows 2020-03-11 19:45:11.288 17156 INFO keyring.backend [-] Loading chainer 2020-03-11 19:45:11.290 17156 INFO keyring.backend [-] Loading macOS 2020-03-11 19:45:11.337 17158 INFO keyring.backend [-] Loading KWallet 2020-03-11 19:45:11.347 17158 INFO keyring.backend [-] Loading SecretService 2020-03-11 19:45:11.350 17158 INFO keyring.backend [-] Loading Windows 2020-03-11 19:45:11.351 17158 INFO keyring.backend [-] Loading chainer 2020-03-11 19:45:11.351 17158 INFO keyring.backend [-] Loading macOS INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 1e15e7122cc9 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 1e15e7122cc9 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 1e15e7122cc9 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 1e15e7122cc9 2020-03-11 19:45:13.635 17156 INFO alembic.runtime.migration [req-5d6b2bbf-0389-46fb-b51a-dff58a4c159c - - - - -] Context impl SQLiteImpl. 2020-03-11 19:45:13.636 17156 INFO alembic.runtime.migration [req-5d6b2bbf-0389-46fb-b51a-dff58a4c159c - - - - -] Will assume non-transactional DDL. ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one ... ok 2020-03-11 19:45:14.014 17158 INFO alembic.runtime.migration [req-4da7ac12-c6dc-4be9-a216-9652ee8b5cde - - - - -] Context impl SQLiteImpl. 2020-03-11 19:45:14.016 17158 INFO alembic.runtime.migration [req-4da7ac12-c6dc-4be9-a216-9652ee8b5cde - - - - -] Will assume non-transactional DDL. 2020-03-11 19:45:13.840 17154 INFO alembic.runtime.migration [req-6730accd-ccf7-429a-b13c-7f3f983a12a8 - - - - -] Context impl SQLiteImpl. 2020-03-11 19:45:13.841 17154 INFO alembic.runtime.migration [req-6730accd-ccf7-429a-b13c-7f3f983a12a8 - - - - -] Will assume non-transactional DDL. 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.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_allocation.TestAllocationObject.test_allocation_init ironic.tests.unit.api.controllers.v1.test_allocation.TestAllocationObject.test_allocation_init ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource ... ok ironic.tests.unit.api.controllers.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_allocation.TestPost.test_create_allocation ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id ... ok 2020-03-11 19:45:13.930 17152 INFO alembic.runtime.migration [req-8bcb2c2b-71a6-417f-b774-d5f5a5d2f1bd - - - - -] Context impl SQLiteImpl. 2020-03-11 19:45:13.930 17152 INFO alembic.runtime.migration [req-8bcb2c2b-71a6-417f-b774-d5f5a5d2f1bd - - - - -] Will assume non-transactional DDL. 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_not_equals ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ... 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_parse_headers_latest ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error ... 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_allocation.TestPost.test_create_allocation_resource_class_too_long ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check ... ok DELETE: /v1/allocations/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7d92adf1-bdf9-48dd-b8af-ba8c9f1c74a1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\", \"debuginfo\": null}"} DELETE: /v1/allocations/10509e37-b07c-401c-8bab-c083fd698ee7 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} DELETE: /v1/allocations/a97ffc8e-8a9d-4911-bbcb-59d7cc4c7313 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-f9c2627f-b714-4d9b-9e13-8ae6e99f5688 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} GET: /v1/allocations?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'allocations': [{'uuid': '1c063fde-333b-4e31-9020-b0448259c5d0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/1c063fde-333b-4e31-9020-b0448259c5d0', 'rel': 'self'}, {'href': 'http://localhost/allocations/1c063fde-333b-4e31-9020-b0448259c5d0', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:13.931086+00:00', 'updated_at': None}]} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '36ed1bd0-4bd7-472b-89f5-7a920ce1421c', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/36ed1bd0-4bd7-472b-89f5-7a920ce1421c', 'rel': 'self'}, {'href': 'http://localhost/allocations/36ed1bd0-4bd7-472b-89f5-7a920ce1421c', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.026218+00:00', 'updated_at': None}]} GET: /v1/allocations?sort_key=uuid {} GOT:{'allocations': [{'uuid': '1efea491-a048-4ba5-883f-1f7b680c033c', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/1efea491-a048-4ba5-883f-1f7b680c033c', 'rel': 'self'}, {'href': 'http://localhost/allocations/1efea491-a048-4ba5-883f-1f7b680c033c', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.108722+00:00', 'updated_at': None}, {'uuid': '408cfb72-5987-4daf-9dc0-64cb020a230a', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/408cfb72-5987-4daf-9dc0-64cb020a230a', 'rel': 'self'}, {'href': 'http://localhost/allocations/408cfb72-5987-4daf-9dc0-64cb020a230a', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.114777+00:00', 'updated_at': None}, {'uuid': '908cd38c-cda2-4f62-9aec-445631e4bf7b', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/908cd38c-cda2-4f62-9aec-445631e4bf7b', 'rel': 'self'}, {'href': 'http://localhost/allocations/908cd38c-cda2-4f62-9aec-445631e4bf7b', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.113055+00:00', 'updated_at': None}]} PATCH: /v1/allocations/6efb85a5-068b-4802-97cf-2cb9cd11ccba [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Allow: DELETE, GET, POST Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8fa3f71d-ff8f-49cd-b80d-e060944e6e0f'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/8fa3f71d-ff8f-49cd-b80d-e060944e6e0f Openstack-Request-Id: req-0d9f3b4a-46fc-4918-b724-c979fe0b92b8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "8fa3f71d-ff8f-49cd-b80d-e060944e6e0f", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/8fa3f71d-ff8f-49cd-b80d-e060944e6e0f", "rel": "self"}, {"href": "http://localhost/allocations/8fa3f71d-ff8f-49cd-b80d-e060944e6e0f", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/allocations/8fa3f71d-ff8f-49cd-b80d-e060944e6e0f {} GOT:{'uuid': '8fa3f71d-ff8f-49cd-b80d-e060944e6e0f', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/8fa3f71d-ff8f-49cd-b80d-e060944e6e0f', 'rel': 'self'}, {'href': 'http://localhost/allocations/8fa3f71d-ff8f-49cd-b80d-e060944e6e0f', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '86f2df01-b67a-46b9-a7e7-b6e01c68099b'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-dd82bee0-746e-4482-93f9-24e564b40800 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': '720d1657-f422-49e8-b136-c73b99a633e8'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3da4f5f0-7373-4fbc-aefa-6db88a06f918 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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/allocations {'candidate_nodes': ['node-1', 'b7bf3ffe-6bf7-4e2c-9f32-4d3580574270'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ff8bdc40-4ee2-45f2-999c-49ae9f5512a2'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/ff8bdc40-4ee2-45f2-999c-49ae9f5512a2 Openstack-Request-Id: req-77edc191-676e-49c3-b5ca-077955657189 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "ff8bdc40-4ee2-45f2-999c-49ae9f5512a2", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/ff8bdc40-4ee2-45f2-999c-49ae9f5512a2", "rel": "self"}, {"href": "http://localhost/allocations/ff8bdc40-4ee2-45f2-999c-49ae9f5512a2", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "b7bf3ffe-6bf7-4e2c-9f32-4d3580574270"], "traits": [], "created_at": "2020-03-11T19:45:14.306164+00:00", "updated_at": null} GET: /v1/allocations/ff8bdc40-4ee2-45f2-999c-49ae9f5512a2 {}ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis ... ok ironic.tests.unit.api.controllers.v1.test_chassis.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_collection_links ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid ... ok GOT:{'uuid': 'ff8bdc40-4ee2-45f2-999c-49ae9f5512a2', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/ff8bdc40-4ee2-45f2-999c-49ae9f5512a2', 'rel': 'self'}, {'href': 'http://localhost/allocations/ff8bdc40-4ee2-45f2-999c-49ae9f5512a2', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': ['1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'b7bf3ffe-6bf7-4e2c-9f32-4d3580574270'], 'traits': [], 'created_at': '2020-03-11T19:45:14.306164+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd16f1691-60db-435a-9737-af319392ef12'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/d16f1691-60db-435a-9737-af319392ef12 Openstack-Request-Id: req-919668f5-f0d9-4564-b4fd-f6c619def696 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "d16f1691-60db-435a-9737-af319392ef12", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/d16f1691-60db-435a-9737-af319392ef12", "rel": "self"}, {"href": "http://localhost/allocations/d16f1691-60db-435a-9737-af319392ef12", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-03-11T19:45:14.339628+00:00", "updated_at": null} DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content Openstack-Request-Id: req-f2c77472-b277-4688-bf8f-324f5e077c0b X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-35a804f5-fe9a-4e5a-af93-03010884026f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\", \"debuginfo\": null}"} DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-46fefef7-eefd-4df9-b728-0b978f781a97 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/chassis/?limit=3 {} GOT:{'chassis': [{'uuid': '9e411f7a-3e0b-42db-a15a-0c6cbf9f4202', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/9e411f7a-3e0b-42db-a15a-0c6cbf9f4202', 'rel': 'self'}, {'href': 'http://localhost/chassis/9e411f7a-3e0b-42db-a15a-0c6cbf9f4202', 'rel': 'bookmark'}]}, {'uuid': '498ce43f-57a9-4ca0-a092-2fd3bffadf13', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/498ce43f-57a9-4ca0-a092-2fd3bffadf13', 'rel': 'self'}, {'href': 'http://localhost/chassis/498ce43f-57a9-4ca0-a092-2fd3bffadf13', 'rel': 'bookmark'}]}, {'uuid': '0ec1222c-2203-49c8-afef-38c136563d2a', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/0ec1222c-2203-49c8-afef-38c136563d2a', 'rel': 'self'}, {'href': 'http://localhost/chassis/0ec1222c-2203-49c8-afef-38c136563d2a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=0ec1222c-2203-49c8-afef-38c136563d2a'} GET: /v1/chassis/detail {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:14.468839+00:00'}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-352c009f-12d3-40be-bb72-5ce0ecc9a803 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:14.516778+00:00'} GET: /v1/chassis/nodes {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-079841a6-26d6-4e97-bb6e-a0c2142d4239 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"} PATCH: /v1/chassis/da613b36-96a0-4955-885a-a7e196f9896e [{'path': '/description', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be18ed81-1a92-4075-86a9-2073fef2cf8e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "da613b36-96a0-4955-885a-a7e196f9896e", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/da613b36-96a0-4955-885a-a7e196f9896e", "rel": "self"}, {"href": "http://localhost/chassis/da613b36-96a0-4955-885a-a7e196f9896e", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/da613b36-96a0-4955-885a-a7e196f9896e/nodes", "rel": "self"}, {"href": "http://localhost/chassis/da613b36-96a0-4955-885a-a7e196f9896e/nodes", "rel": "bookmark"}], "updated_at": "2020-03-11T19:45:14.605151+00:00", "created_at": "2020-03-11T19:45:14.592201+00:00"} GET: /v1/chassis/da613b36-96a0-4955-885a-a7e196f9896e {} GOT:{'uuid': 'da613b36-96a0-4955-885a-a7e196f9896e', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/da613b36-96a0-4955-885a-a7e196f9896e', 'rel': 'self'}, {'href': 'http://localhost/chassis/da613b36-96a0-4955-885a-a7e196f9896e', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/da613b36-96a0-4955-885a-a7e196f9896e/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/da613b36-96a0-4955-885a-a7e196f9896e/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-03-11T19:45:14.605151+00:00', 'created_at': '2020-03-11T19:45:14.592201+00:00'} POST: /v1/chassis {'extra': {}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/6c15f056-d6f6-4993-b153-fa559bf94e0a Openstack-Request-Id: req-9a115123-1547-47b7-b0f9-27b34b588d6b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6c15f056-d6f6-4993-b153-fa559bf94e0a", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/6c15f056-d6f6-4993-b153-fa559bf94e0a", "rel": "self"}, {"href": "http://localhost/chassis/6c15f056-d6f6-4993-b153-fa559bf94e0a", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/6c15f056-d6f6-4993-b153-fa559bf94e0a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/6c15f056-d6f6-4993-b153-fa559bf94e0a/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:14.638749+00:00"}ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDeployTemplateObject.test_deploy_template_sample ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDeployTemplateObject.test_deploy_template_sample ... ok DELETE: /v1/allocations/cde9aad1-d6ae-4d20-960b-506385621e99 GOT:Response: 204 No Content Openstack-Request-Id: req-fecd3ca1-f361-4797-973e-434ec278a8f3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 DELETE: /v1/nodes/b139da2c-e120-403d-96dc-db2a4c5a4380/allocation GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-359bfd1a-d5a7-4a38-b84c-4efd80c8e0e1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node b139da2c-e120-403d-96dc-db2a4c5a4380 was not found\", \"debuginfo\": null}"} GET: /v1/allocations {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} GET: /v1/node/b9179774-4db7-4759-9ef3-6091934d20ad/allocation {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '7ff1b78b-1f15-49ff-a897-453ae1782ae1', 'extra': {}, 'node_uuid': None, 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/7ff1b78b-1f15-49ff-a897-453ae1782ae1', 'rel': 'self'}, {'href': 'http://localhost/allocations/7ff1b78b-1f15-49ff-a897-453ae1782ae1', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.247743+00:00', 'updated_at': None}, {'uuid': '9f12f4e4-a1e6-407a-8809-0eba3c910724', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/9f12f4e4-a1e6-407a-8809-0eba3c910724', 'rel': 'self'}, {'href': 'http://localhost/allocations/9f12f4e4-a1e6-407a-8809-0eba3c910724', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.249490+00:00', 'updated_at': None}, {'uuid': 'ece77821-6de3-41da-9b63-c19e9c388fb6', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/ece77821-6de3-41da-9b63-c19e9c388fb6', 'rel': 'self'}, {'href': 'http://localhost/allocations/ece77821-6de3-41da-9b63-c19e9c388fb6', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.251174+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=ece77821-6de3-41da-9b63-c19e9c388fb6'} GET: /v1/allocations {} GOT:{'allocations': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/allocations?fields=uuid,extra {} GOT:{'allocations': [{'uuid': '6d61d0b1-8941-432e-9c12-743b09dd0170', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/6d61d0b1-8941-432e-9c12-743b09dd0170', 'rel': 'self'}, {'href': 'http://localhost/allocations/6d61d0b1-8941-432e-9c12-743b09dd0170', 'rel': 'bookmark'}]}, {'uuid': '4fc0ede6-0b8d-43f4-96f1-73886ddf5620', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/4fc0ede6-0b8d-43f4-96f1-73886ddf5620', 'rel': 'self'}, {'href': 'http://localhost/allocations/4fc0ede6-0b8d-43f4-96f1-73886ddf5620', 'rel': 'bookmark'}]}, {'uuid': '81cd768c-b23a-4825-8740-e9761634209b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/81cd768c-b23a-4825-8740-e9761634209b', 'rel': 'self'}, {'href': 'http://localhost/allocations/81cd768c-b23a-4825-8740-e9761634209b', 'rel': 'bookmark'}]}]} GET: /v1/allocations/6d2d1b9a-5fc9-4dbe-98f0-4e3c5dbbf22b {} GOT:{'uuid': '6d2d1b9a-5fc9-4dbe-98f0-4e3c5dbbf22b', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/6d2d1b9a-5fc9-4dbe-98f0-4e3c5dbbf22b', 'rel': 'self'}, {'href': 'http://localhost/allocations/6d2d1b9a-5fc9-4dbe-98f0-4e3c5dbbf22b', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.420946+00:00', 'updated_at': None} GET: /v1/allocations/3a705b77-17cb-4a26-81b7-2bc247916924.json {} GOT:{'uuid': '3a705b77-17cb-4a26-81b7-2bc247916924', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/3a705b77-17cb-4a26-81b7-2bc247916924', 'rel': 'self'}, {'href': 'http://localhost/allocations/3a705b77-17cb-4a26-81b7-2bc247916924', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.486617+00:00', 'updated_at': None} GET: /v1/allocations/73f3d9bd-f323-4b39-9f5a-c381be0d7bbf {} GOT:{'uuid': '73f3d9bd-f323-4b39-9f5a-c381be0d7bbf', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.json', 'links': [{'href': 'http://localhost/v1/allocations/73f3d9bd-f323-4b39-9f5a-c381be0d7bbf', 'rel': 'self'}, {'href': 'http://localhost/allocations/73f3d9bd-f323-4b39-9f5a-c381be0d7bbf', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.570566+00:00', 'updated_at': None} GET: /v1/allocations/4ac26814-8f78-4c25-ae70-27e420e56431 {} GOT:{'uuid': '4ac26814-8f78-4c25-ae70-27e420e56431', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.1', 'links': [{'href': 'http://localhost/v1/allocations/4ac26814-8f78-4c25-ae70-27e420e56431', 'rel': 'self'}, {'href': 'http://localhost/allocations/4ac26814-8f78-4c25-ae70-27e420e56431', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.653549+00:00', 'updated_at': None} GET: /v1/allocations?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7311cfe3-dcf5-41e7-9ffc-76b40d53a789 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/allocations?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b962480b-d38c-4a96-b6cc-e5ecba910e04 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/allocations?sort_key=internal_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b1fcf902-13d4-4821-8e91-faf8d5396dda X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"internal_info\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/allocations?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8fb42d5b-78fe-4bf4-9615-a1e9acc6e694 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8bca3928-1288-42ed-885a-bf8224b0a8bd'}ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_with_node_uuid_not_allowed ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_with_node_uuid_not_allowed ... 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 DELETE: /v1/allocations/alloc1 GOT:Response: 204 No Content Openstack-Request-Id: req-f444f790-84fe-4742-8656-b237940607a3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 GET: /v1/node/428cdeff-1c8e-4cd9-bfa0-d8be42998f62/allocation {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/allocations/?limit=3 {} GOT:{'allocations': [{'uuid': 'd0f8af23-e44e-4886-8d52-d18e9f1a8fb8', 'extra': {}, 'node_uuid': None, 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/d0f8af23-e44e-4886-8d52-d18e9f1a8fb8', 'rel': 'self'}, {'href': 'http://localhost/allocations/d0f8af23-e44e-4886-8d52-d18e9f1a8fb8', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.063845+00:00', 'updated_at': None}, {'uuid': 'b491a3cb-b48d-4d5a-8810-4000ff6dccbb', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/b491a3cb-b48d-4d5a-8810-4000ff6dccbb', 'rel': 'self'}, {'href': 'http://localhost/allocations/b491a3cb-b48d-4d5a-8810-4000ff6dccbb', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.065866+00:00', 'updated_at': None}, {'uuid': 'c7e3200d-e11e-41bd-93ac-748217021b9c', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/c7e3200d-e11e-41bd-93ac-748217021b9c', 'rel': 'self'}, {'href': 'http://localhost/allocations/c7e3200d-e11e-41bd-93ac-748217021b9c', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.067803+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=c7e3200d-e11e-41bd-93ac-748217021b9c'} GET: /v1/allocations?node=banana {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a5454bd1-b438-4ff0-81bc-86e00158bce0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} GOT:{'uuid': '02ef55f9-5ef7-497e-b061-ec94300a0180', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/02ef55f9-5ef7-497e-b061-ec94300a0180', 'rel': 'self'}, {'href': 'http://localhost/allocations/02ef55f9-5ef7-497e-b061-ec94300a0180', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.155190+00:00', 'updated_at': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/eabf4bef-91ba-4177-9020-3c942744034f {} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} GET: /v1/allocations/a644b8aa-5973-4ba2-a1da-c8c2f67d82a5?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1050b3ef-735b-484c-8f97-735c21b8a2f5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/allocations/c4bb1787-9a77-4c5c-a688-8419f21dbebe?fields=resource_class,extra {} GOT:{'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/c4bb1787-9a77-4c5c-a688-8419f21dbebe', 'rel': 'self'}, {'href': 'http://localhost/allocations/c4bb1787-9a77-4c5c-a688-8419f21dbebe', 'rel': 'bookmark'}], 'resource_class': 'baremetal'} GET: /v1/allocations/096fd8d0-6100-40ea-8bd6-87dd8b16a0f8 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} GET: /v1/allocations/ba!na!na! {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} GET: /v1/allocations/5bf146e9-6172-49af-9270-20847489f025 {} GOT:{'uuid': '5bf146e9-6172-49af-9270-20847489f025', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/5bf146e9-6172-49af-9270-20847489f025', 'rel': 'self'}, {'href': 'http://localhost/allocations/5bf146e9-6172-49af-9270-20847489f025', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.585873+00:00', 'updated_at': None} GET: /v1/allocations/5bf146e9-6172-49af-9270-20847489f025 {} GOT:{'uuid': '5bf146e9-6172-49af-9270-20847489f025', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/5bf146e9-6172-49af-9270-20847489f025', 'rel': 'self'}, {'href': 'http://localhost/allocations/5bf146e9-6172-49af-9270-20847489f025', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.585873+00:00', 'updated_at': None} GET: /allocations/5bf146e9-6172-49af-9270-20847489f025 {} GOT:{'uuid': '5bf146e9-6172-49af-9270-20847489f025', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/5bf146e9-6172-49af-9270-20847489f025', 'rel': 'self'}, {'href': 'http://localhost/allocations/5bf146e9-6172-49af-9270-20847489f025', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.585873+00:00', 'updated_at': None} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '093adadd-0071-4e05-8a38-1573fd0cd79d', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/093adadd-0071-4e05-8a38-1573fd0cd79d', 'rel': 'self'}, {'href': 'http://localhost/allocations/093adadd-0071-4e05-8a38-1573fd0cd79d', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.680895+00:00', 'updated_at': None}, {'uuid': '49963d0d-4a03-4530-97a6-c1ba23408d6b', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/49963d0d-4a03-4530-97a6-c1ba23408d6b', 'rel': 'self'}, {'href': 'http://localhost/allocations/49963d0d-4a03-4530-97a6-c1ba23408d6b', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.682683+00:00', 'updated_at': None}, {'uuid': 'f9431f7d-50bc-46d8-8799-9a40e7337b20', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/f9431f7d-50bc-46d8-8799-9a40e7337b20', 'rel': 'self'}, {'href': 'http://localhost/allocations/f9431f7d-50bc-46d8-8799-9a40e7337b20', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.684374+00:00', 'updated_at': None}, {'uuid': 'f3c7676c-d4d6-4c8f-b268-363089b10145', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation3', 'links': [{'href': 'http://localhost/v1/allocations/f3c7676c-d4d6-4c8f-b268-363089b10145', 'rel': 'self'}, {'href': 'http://localhost/allocations/f3c7676c-d4d6-4c8f-b268-363089b10145', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.686091+00:00', 'updated_at': None}, {'uuid': '9c915afb-1053-4982-b80a-0b3ceb1d1b47', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation4', 'links': [{'href': 'http://localhost/v1/allocations/9c915afb-1053-4982-b80a-0b3ceb1d1b47', 'rel': 'self'}, {'href': 'http://localhost/allocations/9c915afb-1053-4982-b80a-0b3ceb1d1b47', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.687773+00:00', 'updated_at': None}]}ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid ... ok ironic.tests.unit.api.controllers.v1.test_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.TestDelete.test_delete_chassis_with_node ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ... ok GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/allocations/alloc1.json GOT:Response: 204 No Content Openstack-Request-Id: req-9244420c-d9e2-48eb-9ff1-a7a7f848328e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT:Response: 204 No Content Openstack-Request-Id: req-2204b61d-568e-44a6-9a7f-4002bf38f857 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/allocations/ba!na!na1 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} DELETE: /v1/nodes/962094fe-09b5-45ac-86b4-12b77e4191c2/allocation GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-361c451e-1c11-48d7-bc38-68db48675c3c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 962094fe-09b5-45ac-86b4-12b77e4191c2 could not be found.\", \"debuginfo\": null}"} GET: /v1/allocations?fields=uuid,extra {} GOT:{'allocations': [{'uuid': 'c5902ef6-ddc5-4a28-b2f2-806039fac1d1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/c5902ef6-ddc5-4a28-b2f2-806039fac1d1', 'rel': 'self'}, {'href': 'http://localhost/allocations/c5902ef6-ddc5-4a28-b2f2-806039fac1d1', 'rel': 'bookmark'}]}, {'uuid': '258cd91b-06d9-415e-b367-444813ccb20a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/258cd91b-06d9-415e-b367-444813ccb20a', 'rel': 'self'}, {'href': 'http://localhost/allocations/258cd91b-06d9-415e-b367-444813ccb20a', 'rel': 'bookmark'}]}, {'uuid': 'aa73a172-4ef8-4eb0-bf74-ab8e9c36e8ab', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/aa73a172-4ef8-4eb0-bf74-ab8e9c36e8ab', 'rel': 'self'}, {'href': 'http://localhost/allocations/aa73a172-4ef8-4eb0-bf74-ab8e9c36e8ab', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=aa73a172-4ef8-4eb0-bf74-ab8e9c36e8ab'} GET: /v1/allocations?node=node-1 {} GOT:{'allocations': [{'uuid': '0bf6688e-67aa-491d-9f24-02d12c5e776a', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/0bf6688e-67aa-491d-9f24-02d12c5e776a', 'rel': 'self'}, {'href': 'http://localhost/allocations/0bf6688e-67aa-491d-9f24-02d12c5e776a', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.555945+00:00', 'updated_at': None}, {'uuid': '25549a12-68f1-4bcd-a1c4-b233c2a0adba', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/25549a12-68f1-4bcd-a1c4-b233c2a0adba', 'rel': 'self'}, {'href': 'http://localhost/allocations/25549a12-68f1-4bcd-a1c4-b233c2a0adba', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.557714+00:00', 'updated_at': None}, {'uuid': '2c069702-e3b0-49bf-b671-7582a78885bb', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/2c069702-e3b0-49bf-b671-7582a78885bb', 'rel': 'self'}, {'href': 'http://localhost/allocations/2c069702-e3b0-49bf-b671-7582a78885bb', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.559380+00:00', 'updated_at': None}]} GET: /v1/allocations?state=allocating {} GOT:{'allocations': [{'uuid': '6eda5f04-8dd7-4678-8682-eea94e613f81', 'extra': {}, 'node_uuid': None, 'name': 'allocation0', 'links': [{'href': 'http://localhost/v1/allocations/6eda5f04-8dd7-4678-8682-eea94e613f81', 'rel': 'self'}, {'href': 'http://localhost/allocations/6eda5f04-8dd7-4678-8682-eea94e613f81', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.667312+00:00', 'updated_at': None}, {'uuid': '6e8829d5-3507-48e1-8948-596201f08b47', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/6e8829d5-3507-48e1-8948-596201f08b47', 'rel': 'self'}, {'href': 'http://localhost/allocations/6e8829d5-3507-48e1-8948-596201f08b47', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.669117+00:00', 'updated_at': None}, {'uuid': '90df9e7a-1e90-4abf-abf8-cbece96fba39', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/90df9e7a-1e90-4abf-abf8-cbece96fba39', 'rel': 'self'}, {'href': 'http://localhost/allocations/90df9e7a-1e90-4abf-abf8-cbece96fba39', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.673257+00:00', 'updated_at': None}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation?fields=name,extra {} GOT:{'extra': {}, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/bd053d11-7732-4079-bea0-276cfc61a4e2', 'rel': 'self'}, {'href': 'http://localhost/allocations/bd053d11-7732-4079-bea0-276cfc61a4e2', 'rel': 'bookmark'}]} GET: /v1/allocations?fields=node_uuid&limit=2 {} GOT:{'allocations': [{'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/allocations/b637bb98-626f-4f7f-a941-23b957a40e10', 'rel': 'self'}, {'href': 'http://localhost/allocations/b637bb98-626f-4f7f-a941-23b957a40e10', 'rel': 'bookmark'}]}, {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/allocations/1646bc24-1843-4713-8b6b-b1fbb391372a', 'rel': 'self'}, {'href': 'http://localhost/allocations/1646bc24-1843-4713-8b6b-b1fbb391372a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=node_uuid&limit=2&marker=1646bc24-1843-4713-8b6b-b1fbb391372a'} GET: /v1/allocations?sort_key=name {} GOT:{'allocations': [{'uuid': '592aa6ab-1856-4494-8f47-a46c08e25d02', 'extra': {}, 'node_uuid': None, 'name': 'allocation1', 'links': [{'href': 'http://localhost/v1/allocations/592aa6ab-1856-4494-8f47-a46c08e25d02', 'rel': 'self'}, {'href': 'http://localhost/allocations/592aa6ab-1856-4494-8f47-a46c08e25d02', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.922880+00:00', 'updated_at': None}, {'uuid': 'fdfa81da-5fdd-4a1d-864d-68d69420c8ce', 'extra': {}, 'node_uuid': None, 'name': 'allocation2', 'links': [{'href': 'http://localhost/v1/allocations/fdfa81da-5fdd-4a1d-864d-68d69420c8ce', 'rel': 'self'}, {'href': 'http://localhost/allocations/fdfa81da-5fdd-4a1d-864d-68d69420c8ce', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.920192+00:00', 'updated_at': None}, {'uuid': '27219946-8484-4e32-98db-96e458fed0eb', 'extra': {}, 'node_uuid': None, 'name': 'allocation3', 'links': [{'href': 'http://localhost/v1/allocations/27219946-8484-4e32-98db-96e458fed0eb', 'rel': 'self'}, {'href': 'http://localhost/allocations/27219946-8484-4e32-98db-96e458fed0eb', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.917034+00:00', 'updated_at': None}]}ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields ... ok GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '6c15f056-d6f6-4993-b153-fa559bf94e0a', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/6c15f056-d6f6-4993-b153-fa559bf94e0a', 'rel': 'self'}, {'href': 'http://localhost/chassis/6c15f056-d6f6-4993-b153-fa559bf94e0a', '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-a7630636-208e-4d53-a019-75774369919a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:14.676728+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:14.676728+00:00'} GET: /v1/conductors/?limit=3 {} GOT:{'conductors': [{'hostname': '0a024ab4-f1e1-4549-942c-31a6847f640e', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/0a024ab4-f1e1-4549-942c-31a6847f640e', 'rel': 'self'}, {'href': 'http://localhost/conductors/0a024ab4-f1e1-4549-942c-31a6847f640e', 'rel': 'bookmark'}]}, {'hostname': 'dbc4a5f0-aff2-4c65-a9ce-d2440f8b704d', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/dbc4a5f0-aff2-4c65-a9ce-d2440f8b704d', 'rel': 'self'}, {'href': 'http://localhost/conductors/dbc4a5f0-aff2-4c65-a9ce-d2440f8b704d', 'rel': 'bookmark'}]}, {'hostname': '79d54d91-f44a-4023-9a31-b8cf003f7444', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/79d54d91-f44a-4023-9a31-b8cf003f7444', 'rel': 'self'}, {'href': 'http://localhost/conductors/79d54d91-f44a-4023-9a31-b8cf003f7444', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=79d54d91-f44a-4023-9a31-b8cf003f7444'} GET: /v1/conductors?fields=hostname,alive {} GOT:{'conductors': [{'hostname': '932ae934-ba5f-402b-ae09-9f6cae1bfa2e', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/932ae934-ba5f-402b-ae09-9f6cae1bfa2e', 'rel': 'self'}, {'href': 'http://localhost/conductors/932ae934-ba5f-402b-ae09-9f6cae1bfa2e', 'rel': 'bookmark'}]}, {'hostname': 'd01afff4-1a9a-47c9-9a93-f3dbbbd6a458', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/d01afff4-1a9a-47c9-9a93-f3dbbbd6a458', 'rel': 'self'}, {'href': 'http://localhost/conductors/d01afff4-1a9a-47c9-9a93-f3dbbbd6a458', 'rel': 'bookmark'}]}, {'hostname': 'cef84590-84e5-401c-aaa9-ae453da1aafe', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/cef84590-84e5-401c-aaa9-ae453da1aafe', 'rel': 'self'}, {'href': 'http://localhost/conductors/cef84590-84e5-401c-aaa9-ae453da1aafe', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=cef84590-84e5-401c-aaa9-ae453da1aafe'} GET: /v1/conductors/rocky.rocks?fields=hostname,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-54c596b5-5e07-4914-980d-45566320b806 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/conductors/rocky.rocks?fields=hostname,alive {} GOT:{'hostname': 'rocky.rocks', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}]} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:15.143924+00:00', 'updated_at': '2020-03-11T19:45:15.142994+00:00'} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:15.143924+00:00', 'updated_at': '2020-03-11T19:45:15.142994+00:00'} GET: /conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:15.143924+00:00', 'updated_at': '2020-03-11T19:45:15.142994+00:00'} GET: /v1/conductors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3312338e-49c4-4c69-afe6-b535469c78b8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} DELETE: /v1/deploy_templates/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-751ab17f-91e1-4e32-830b-d0a581af2b9b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\", \"debuginfo\": null}"} GET: /v1/deploy_templates/?limit=3 {} GOT:{'deploy_templates': [{'uuid': 'c0979979-b905-47e5-951c-9aa67a17d419', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/c0979979-b905-47e5-951c-9aa67a17d419', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c0979979-b905-47e5-951c-9aa67a17d419', 'rel': 'bookmark'}]}, {'uuid': 'b3641de9-428a-4fc4-b49b-e06333da4a6e', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/b3641de9-428a-4fc4-b49b-e06333da4a6e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b3641de9-428a-4fc4-b49b-e06333da4a6e', 'rel': 'bookmark'}]}, {'uuid': '53bc0522-924f-43ec-a939-84e60a889542', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/53bc0522-924f-43ec-a939-84e60a889542', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/53bc0522-924f-43ec-a939-84e60a889542', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=53bc0522-924f-43ec-a939-84e60a889542'}ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version ... ok POST: /v1/allocations {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0203f3ea-a963-47f2-949d-939b61dd9fb5'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b0e69f50-659f-4979-b25c-3f7b2d532319 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': '242636ae-847e-463f-90fa-76a8508bcfce'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0e1e3066-f1f5-49cc-ba59-1a31541975bc X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': '403f6b87-1eef-4026-b0b7-40d55578bb34'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0842698f-6296-4991-ae09-4171910d4e85 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-34ccdd54-5348-4137-b4b2-53cd1d0bb7da X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\", \"debuginfo\": null}"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-079c7393-4c55-483e-b714-1ce4241df499 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/chassis {} GOT:{'chassis': []} GET: /v1/chassis?fields=uuid,extra {} GOT:{'chassis': [{'uuid': '4ee425e6-a5e9-4ab1-9cfa-981d96347b9c', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/4ee425e6-a5e9-4ab1-9cfa-981d96347b9c', 'rel': 'self'}, {'href': 'http://localhost/chassis/4ee425e6-a5e9-4ab1-9cfa-981d96347b9c', 'rel': 'bookmark'}]}, {'uuid': '28594b0d-1e06-4b0a-b857-fd487d5d6c80', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/28594b0d-1e06-4b0a-b857-fd487d5d6c80', 'rel': 'self'}, {'href': 'http://localhost/chassis/28594b0d-1e06-4b0a-b857-fd487d5d6c80', 'rel': 'bookmark'}]}, {'uuid': '9c7253a7-1391-4805-9175-fa866eb0fc0f', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/9c7253a7-1391-4805-9175-fa866eb0fc0f', 'rel': 'self'}, {'href': 'http://localhost/chassis/9c7253a7-1391-4805-9175-fa866eb0fc0f', 'rel': 'bookmark'}]}]} GET: /v1/chassis?fields=extra&limit=2 {} GOT:{'chassis': [{'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/f6fa7b40-3bda-488e-b1e0-deb403435ac4', 'rel': 'self'}, {'href': 'http://localhost/chassis/f6fa7b40-3bda-488e-b1e0-deb403435ac4', 'rel': 'bookmark'}]}, {'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e9100f05-4169-47c7-870a-fa941bbf4735', 'rel': 'self'}, {'href': 'http://localhost/chassis/e9100f05-4169-47c7-870a-fa941bbf4735', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=e9100f05-4169-47c7-870a-fa941bbf4735'} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bbd88fde-8130-485f-9073-86e98193e9fa X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8 {} GOT:{'uuid': 'c226e799-c5b8-4a4a-8e75-a1430fce10b8', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8', 'rel': 'self'}, {'href': 'http://localhost/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:15.526353+00:00'} GET: /v1/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8 {} GOT:{'uuid': 'c226e799-c5b8-4a4a-8e75-a1430fce10b8', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8', 'rel': 'self'}, {'href': 'http://localhost/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:15.526353+00:00'} GET: /chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8 {} GOT:{'uuid': 'c226e799-c5b8-4a4a-8e75-a1430fce10b8', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8', 'rel': 'self'}, {'href': 'http://localhost/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/c226e799-c5b8-4a4a-8e75-a1430fce10b8/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:15.526353+00:00'} GET: /v1/chassis/4276295d-3748-4c72-a4f4-f468b03f465e {} GOT:{'uuid': '4276295d-3748-4c72-a4f4-f468b03f465e', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/4276295d-3748-4c72-a4f4-f468b03f465e', 'rel': 'self'}, {'href': 'http://foo/chassis/4276295d-3748-4c72-a4f4-f468b03f465e', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/4276295d-3748-4c72-a4f4-f468b03f465e/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/4276295d-3748-4c72-a4f4-f468b03f465e/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:15.649434+00:00'} GET: /v1/chassis/4276295d-3748-4c72-a4f4-f468b03f465e {} GOT:{'uuid': '4276295d-3748-4c72-a4f4-f468b03f465e', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/4276295d-3748-4c72-a4f4-f468b03f465e', 'rel': 'self'}, {'href': 'http://foo/chassis/4276295d-3748-4c72-a4f4-f468b03f465e', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/4276295d-3748-4c72-a4f4-f468b03f465e/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/4276295d-3748-4c72-a4f4-f468b03f465e/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:15.649434+00:00'} GET: /chassis/4276295d-3748-4c72-a4f4-f468b03f465e {} GOT:{'uuid': '4276295d-3748-4c72-a4f4-f468b03f465e', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/4276295d-3748-4c72-a4f4-f468b03f465e', 'rel': 'self'}, {'href': 'http://foo/chassis/4276295d-3748-4c72-a4f4-f468b03f465e', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/4276295d-3748-4c72-a4f4-f468b03f465e/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/4276295d-3748-4c72-a4f4-f468b03f465e/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:15.649434+00:00'}ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi ... ok ironic.tests.unit.api.controllers.v1.test_chassis.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_conductor.TestListConductors.test_get_one_conductor_offline ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json ... ok POST: /v1/allocations {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'b1495000-6765-42d6-b3f9-79782feca035'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ed7622b3-fd5b-4ee8-ae53-ff5e061550f0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': []} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/907ae181-ae77-43dc-bd60-6b9b926b021f Openstack-Request-Id: req-05bcb811-8fe3-4c00-bc89-b31f4d85c04a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "907ae181-ae77-43dc-bd60-6b9b926b021f", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/907ae181-ae77-43dc-bd60-6b9b926b021f", "rel": "self"}, {"href": "http://localhost/allocations/907ae181-ae77-43dc-bd60-6b9b926b021f", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-03-11T19:45:15.024228+00:00", "updated_at": null} GET: /v1/allocations/907ae181-ae77-43dc-bd60-6b9b926b021f {} GOT:{'uuid': '907ae181-ae77-43dc-bd60-6b9b926b021f', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/907ae181-ae77-43dc-bd60-6b9b926b021f', 'rel': 'self'}, {'href': 'http://localhost/allocations/907ae181-ae77-43dc-bd60-6b9b926b021f', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:15.024228+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': '8fbe4e2a-b6b5-4fa7-b1d0-19d3e4679262'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/8fbe4e2a-b6b5-4fa7-b1d0-19d3e4679262 Openstack-Request-Id: req-754170f1-d308-401a-908a-a553119e4c3e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "8fbe4e2a-b6b5-4fa7-b1d0-19d3e4679262", "extra": {}, "node_uuid": null, "name": "foo", "links": [{"href": "http://localhost/v1/allocations/8fbe4e2a-b6b5-4fa7-b1d0-19d3e4679262", "rel": "self"}, {"href": "http://localhost/allocations/8fbe4e2a-b6b5-4fa7-b1d0-19d3e4679262", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-03-11T19:45:15.076509+00:00", "updated_at": null} GET: /v1/allocations/8fbe4e2a-b6b5-4fa7-b1d0-19d3e4679262 {} GOT:{'uuid': '8fbe4e2a-b6b5-4fa7-b1d0-19d3e4679262', 'extra': {}, 'node_uuid': None, 'name': 'foo', 'links': [{'href': 'http://localhost/v1/allocations/8fbe4e2a-b6b5-4fa7-b1d0-19d3e4679262', 'rel': 'self'}, {'href': 'http://localhost/allocations/8fbe4e2a-b6b5-4fa7-b1d0-19d3e4679262', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:15.076509+00:00', 'updated_at': None} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '9e5a7c19-4591-4bc6-9af2-468d1f48d95c'} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} DELETE: /v1/chassis/99c125d0-c77d-4dae-8b57-6feea5810fce GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7c1937ab-0354-41ac-922e-09ba339124d6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 99c125d0-c77d-4dae-8b57-6feea5810fce could not be found.\", \"debuginfo\": null}"} GET: /v1/chassis?fields=extra,uuid {} GOT:{'chassis': [{'uuid': '888a839f-88df-43a7-a34c-2c9dc1a6a559', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/888a839f-88df-43a7-a34c-2c9dc1a6a559', 'rel': 'self'}, {'href': 'http://localhost/chassis/888a839f-88df-43a7-a34c-2c9dc1a6a559', 'rel': 'bookmark'}]}, {'uuid': 'a3ce2380-87b4-4d95-b5fa-6b970a86d5dc', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/a3ce2380-87b4-4d95-b5fa-6b970a86d5dc', 'rel': 'self'}, {'href': 'http://localhost/chassis/a3ce2380-87b4-4d95-b5fa-6b970a86d5dc', 'rel': 'bookmark'}]}, {'uuid': '6099c80b-53cc-4a6e-ba31-816a22c35698', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/6099c80b-53cc-4a6e-ba31-816a22c35698', 'rel': 'self'}, {'href': 'http://localhost/chassis/6099c80b-53cc-4a6e-ba31-816a22c35698', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=6099c80b-53cc-4a6e-ba31-816a22c35698'} GET: /v1/chassis?detail=True {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:15.294146+00:00'}]} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis?detail=False {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-87f63d18-d9b1-430c-b90c-543c6b03483a X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=extra,description {} GOT:{'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} GOT:{'nodes': [{'uuid': 'b458f8b1-53c3-4aef-b03f-331529c092da', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b458f8b1-53c3-4aef-b03f-331529c092da', 'rel': 'self'}, {'href': 'http://localhost/nodes/b458f8b1-53c3-4aef-b03f-331529c092da', 'rel': 'bookmark'}]}, {'uuid': '9a9e93dd-47b9-4b9f-85d6-fd2ebcffd4b5', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9a9e93dd-47b9-4b9f-85d6-fd2ebcffd4b5', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a9e93dd-47b9-4b9f-85d6-fd2ebcffd4b5', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_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.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found ... 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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/8bca3928-1288-42ed-885a-bf8224b0a8bd Openstack-Request-Id: req-8d72ddd5-5ed5-466a-ba44-bae0b99cd64a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "8bca3928-1288-42ed-885a-bf8224b0a8bd", "extra": {"foo": 123}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/8bca3928-1288-42ed-885a-bf8224b0a8bd", "rel": "self"}, {"href": "http://localhost/allocations/8bca3928-1288-42ed-885a-bf8224b0a8bd", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-03-11T19:45:14.771134+00:00", "updated_at": null} GET: /v1/allocations/8bca3928-1288-42ed-885a-bf8224b0a8bd {} GOT:{'uuid': '8bca3928-1288-42ed-885a-bf8224b0a8bd', 'extra': {'foo': 123}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/8bca3928-1288-42ed-885a-bf8224b0a8bd', 'rel': 'self'}, {'href': 'http://localhost/allocations/8bca3928-1288-42ed-885a-bf8224b0a8bd', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.771134+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '7332a10d-04ba-4211-a16d-ac95a798d7a5'} GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} POST: /v1/allocations {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0746d021-1c4a-46bd-8bd1-b1e929b4c95b'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bd548c1b-3cd9-477e-a4fb-81379ebc06dd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '9aa5c5cb-44d6-4cd5-9cd3-d2ea5e1661ed'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df5f5d37-7594-4c5f-b117-55d5187f8902 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute resource_class. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '38d80e8c-2256-4205-8a39-35884e4ae090'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/38d80e8c-2256-4205-8a39-35884e4ae090 Openstack-Request-Id: req-f5d7411b-d4d1-44a0-9ed1-8d6f55a851ea X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "38d80e8c-2256-4205-8a39-35884e4ae090", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/38d80e8c-2256-4205-8a39-35884e4ae090", "rel": "self"}, {"href": "http://localhost/allocations/38d80e8c-2256-4205-8a39-35884e4ae090", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": [], "created_at": "2020-03-11T19:45:14.980446+00:00", "updated_at": null} GET: /v1/allocations/38d80e8c-2256-4205-8a39-35884e4ae090 {} GOT:{'uuid': '38d80e8c-2256-4205-8a39-35884e4ae090', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/38d80e8c-2256-4205-8a39-35884e4ae090', 'rel': 'self'}, {'href': 'http://localhost/allocations/38d80e8c-2256-4205-8a39-35884e4ae090', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': [], 'created_at': '2020-03-11T19:45:14.980446+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '5a682df2-b3ad-490e-bd58-325ab9034760'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/5a682df2-b3ad-490e-bd58-325ab9034760 Openstack-Request-Id: req-215d5f33-4fe9-49db-a8e3-fda51378c91e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "5a682df2-b3ad-490e-bd58-325ab9034760", "extra": {}, "node_uuid": null, "name": null, "links": [{"href": "http://localhost/v1/allocations/5a682df2-b3ad-490e-bd58-325ab9034760", "rel": "self"}, {"href": "http://localhost/allocations/5a682df2-b3ad-490e-bd58-325ab9034760", "rel": "bookmark"}], "state": "allocating", "last_error": null, "resource_class": "baremetal", "candidate_nodes": [], "traits": ["CUSTOM_GPU", "CUSTOM_FOO_BAR"], "created_at": "2020-03-11T19:45:15.046292+00:00", "updated_at": null} GET: /v1/allocations/5a682df2-b3ad-490e-bd58-325ab9034760 {} GOT:{'uuid': '5a682df2-b3ad-490e-bd58-325ab9034760', 'extra': {}, 'node_uuid': None, 'name': None, 'links': [{'href': 'http://localhost/v1/allocations/5a682df2-b3ad-490e-bd58-325ab9034760', 'rel': 'self'}, {'href': 'http://localhost/allocations/5a682df2-b3ad-490e-bd58-325ab9034760', 'rel': 'bookmark'}], 'state': 'allocating', 'last_error': None, 'resource_class': 'baremetal', 'candidate_nodes': [], 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'created_at': '2020-03-11T19:45:15.046292+00:00', 'updated_at': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '80065c69-a27d-4e8a-b65c-a07c956ac5bb', 'node_uuid': 'd7eb48b8-85fc-48af-94aa-cb2d8ba03b08'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fb133a98-af88-48ac-ab12-38123135d455 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'd7eb48b8-85fc-48af-94aa-cb2d8ba03b08'. Cannot set read only field.\", \"debuginfo\": null}"} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': 'ec94e77e-079c-48f1-abae-daa528c00ee3', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ec94e77e-079c-48f1-abae-daa528c00ee3', 'rel': 'self'}, {'href': 'http://localhost/chassis/ec94e77e-079c-48f1-abae-daa528c00ee3', 'rel': 'bookmark'}]}, {'uuid': 'b948eef0-c9aa-4310-8a53-24faefc5f7d4', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/b948eef0-c9aa-4310-8a53-24faefc5f7d4', 'rel': 'self'}, {'href': 'http://localhost/chassis/b948eef0-c9aa-4310-8a53-24faefc5f7d4', 'rel': 'bookmark'}]}, {'uuid': '9d0c680a-eb4a-44db-94d2-ed26974b0c71', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/9d0c680a-eb4a-44db-94d2-ed26974b0c71', 'rel': 'self'}, {'href': 'http://localhost/chassis/9d0c680a-eb4a-44db-94d2-ed26974b0c71', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=9d0c680a-eb4a-44db-94d2-ed26974b0c71'} GET: /v1/chassis?detail=True&fields=description {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a951a4c6-fb26-4dd6-806b-0b56c0e68887 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one ... 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_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource ... ok GET: /v1/deploy_templates?sort_key=name&detail=True {} GOT:{'deploy_templates': [{'uuid': '9351ffd3-e399-4372-8ab1-e2436f9c7608', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/9351ffd3-e399-4372-8ab1-e2436f9c7608', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/9351ffd3-e399-4372-8ab1-e2436f9c7608', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:15.555109+00:00', 'updated_at': None}, {'uuid': '971eba0d-6fd5-4639-b407-d66e86b8665a', 'name': 'CUSTOM_DT2', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/971eba0d-6fd5-4639-b407-d66e86b8665a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/971eba0d-6fd5-4639-b407-d66e86b8665a', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:15.550229+00:00', 'updated_at': None}, {'uuid': 'a94e3e11-b98e-4269-a602-3d22dbaf59cf', 'name': 'CUSTOM_DT3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/a94e3e11-b98e-4269-a602-3d22dbaf59cf', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a94e3e11-b98e-4269-a602-3d22dbaf59cf', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:15.542928+00:00', 'updated_at': None}]} GET: /v1/deploy_templates/1717bfbe-6152-49b0-b8bb-96aee018e1ff?fields=name,steps {} GOT:{'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/1717bfbe-6152-49b0-b8bb-96aee018e1ff', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1717bfbe-6152-49b0-b8bb-96aee018e1ff', 'rel': 'bookmark'}]} GET: /v1/deploy_templates/7026267a-772f-4306-8dfc-f78f68ed841f {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"} GET: /v1/deploy_templates/1fae3ac3-567e-48e1-a01d-51c61908b4d2 {} GOT:{'uuid': '1fae3ac3-567e-48e1-a01d-51c61908b4d2', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/1fae3ac3-567e-48e1-a01d-51c61908b4d2', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1fae3ac3-567e-48e1-a01d-51c61908b4d2', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:15.784804+00:00', 'updated_at': None} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': '6687167f-ebc4-48f0-a3e0-ca26c242947f', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/6687167f-ebc4-48f0-a3e0-ca26c242947f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/6687167f-ebc4-48f0-a3e0-ca26c242947f', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-db2d623b-fae4-4812-b65c-678e03df2e79 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/deploy_templates?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-203f893a-2ff8-4e2a-9c0e-21903da69f69 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/deploy_templates?sort_key=steps {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0d2b4efd-c16e-4b5b-8da7-d5374372eb5f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/b827b6ef-6729-4bf8-b578-b44c0e73b2bc [{'path': '/name', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-29f32256-c22d-49d7-b859-44d7bc88d06c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/name' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/69c12f9d-83a8-4c7c-9c31-2dc8a525e266 [{'path': '/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-73441c9f-0318-43e8-9a8d-5c38ff334224 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/2884eace-f40a-49ea-9dc2-edf2371557fc [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f148ed25-6e43-4190-8c8d-770ded6dc0d8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/db31b473-45d4-414d-b677-162b06076984 [{'path': '/name', 'op': 'replace', 'value': None}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-761c61c3-134f-49ee-9e74-518d4bb54678 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Deploy template name cannot be None.\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/d359877d-9c2a-4f94-bb17-4ad20fb7a129 [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9f0cd29f-4521-482f-893f-5a2da556448e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'foo'. Value should be one of: deploy, management, raid, power, bios\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/CUSTOM_DT1 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'a78c218b-1ce4-402b-8b0d-aacd3d8c977d', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/a78c218b-1ce4-402b-8b0d-aacd3d8c977d Openstack-Request-Id: req-18838101-c02b-4839-a0b5-0a3f2732268d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "a78c218b-1ce4-402b-8b0d-aacd3d8c977d", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/a78c218b-1ce4-402b-8b0d-aacd3d8c977d", "rel": "self"}, {"href": "http://localhost/deploy_templates/a78c218b-1ce4-402b-8b0d-aacd3d8c977d", "rel": "bookmark"}], "extra": {}, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_driver.TestListDrivers.test_driver_vendor_passthru_get ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} GOT:{'nodes': [{'uuid': 'b458f8b1-53c3-4aef-b03f-331529c092da', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b458f8b1-53c3-4aef-b03f-331529c092da', 'rel': 'self'}, {'href': 'http://localhost/nodes/b458f8b1-53c3-4aef-b03f-331529c092da', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=1&marker=b458f8b1-53c3-4aef-b03f-331529c092da'} GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fd2a5c49-fb14-4bd8-ab14-ac2259ca92f7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:15.822257+00:00'} 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-2c317b9f-e1fa-44d4-8d08-7c0e08884c99 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "test", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": "2020-03-11T19:45:15.915744+00:00", "created_at": "2020-03-11T19:45:15.877860+00:00"} 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-abff4b25-d518-4278-b395-106c87ee0ee1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2ee9aa30-0ab8-4e69-b82d-11edca559862 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-88c4d9a0-7af3-4c3c-b40d-2a4431321326 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/chassis/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-834471df-6227-40b5-8040-9884bc05ca88 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "chassis-new-description", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": "2000-01-01T00:00:00+00:00", "created_at": "2020-03-11T19:45:16.156496+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'chassis-new-description', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': '2000-01-01T00:00:00+00:00', 'created_at': '2020-03-11T19:45:16.156496+00:00'} PATCH: /v1/chassis/da47f7b3-af0b-4684-8c89-6275f52ecb20 [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-27490ed3-90d9-4dc0-b39d-ecd49616d0f8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis da47f7b3-af0b-4684-8c89-6275f52ecb20 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-5c6948f5-3329-4b69-bc8a-7a7555d9a969 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'foo': 123}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-e2c70b89-c7af-4931-9baf-8fef187cefaa X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {"foo": 123}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:16.396433+00:00"}ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDeployTemplateObject.test_deploy_template_init ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDeployTemplateObject.test_deploy_template_init ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one ... ok PATCH: /v1/chassis/0db6c99c-b63a-4264-a8a4-ef1997ab0c18 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8019a62c-d1df-4d2b-9db9-739eda80044d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0db6c99c-b63a-4264-a8a4-ef1997ab0c18", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/0db6c99c-b63a-4264-a8a4-ef1997ab0c18", "rel": "self"}, {"href": "http://localhost/chassis/0db6c99c-b63a-4264-a8a4-ef1997ab0c18", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/0db6c99c-b63a-4264-a8a4-ef1997ab0c18/nodes", "rel": "self"}, {"href": "http://localhost/chassis/0db6c99c-b63a-4264-a8a4-ef1997ab0c18/nodes", "rel": "bookmark"}], "updated_at": "2020-03-11T19:45:15.799205+00:00", "created_at": "2020-03-11T19:45:15.769704+00:00"} GET: /v1/chassis/0db6c99c-b63a-4264-a8a4-ef1997ab0c18 {} GOT:{'uuid': '0db6c99c-b63a-4264-a8a4-ef1997ab0c18', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/0db6c99c-b63a-4264-a8a4-ef1997ab0c18', 'rel': 'self'}, {'href': 'http://localhost/chassis/0db6c99c-b63a-4264-a8a4-ef1997ab0c18', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/0db6c99c-b63a-4264-a8a4-ef1997ab0c18/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/0db6c99c-b63a-4264-a8a4-ef1997ab0c18/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-03-11T19:45:15.799205+00:00', 'created_at': '2020-03-11T19:45:15.769704+00:00'} POST: /v1/chassis/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7e9f634c-7774-48f1-8467-7b7d08c43c06 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': False, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': '2000-01-01T00:00:00+00:00'} GET: /v1/conductors {} GOT:{'conductors': [{'hostname': 'why care', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/why care', 'rel': 'self'}, {'href': 'http://localhost/conductors/why care', 'rel': 'bookmark'}]}, {'hostname': 'why not', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/why not', 'rel': 'self'}, {'href': 'http://localhost/conductors/why not', 'rel': 'bookmark'}]}]} GET: /v1/conductors?detail=true {} GOT:{'conductors': [{'hostname': 'why care', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/why care', 'rel': 'self'}, {'href': 'http://localhost/conductors/why care', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:16.082465+00:00', 'updated_at': '2020-03-11T19:45:16.081617+00:00'}, {'hostname': 'why not', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/why not', 'rel': 'self'}, {'href': 'http://localhost/conductors/why not', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:16.088808+00:00', 'updated_at': '2020-03-11T19:45:16.088329+00:00'}]} GET: /v1/conductors?sort_key=hostname {} GOT:{'conductors': [{'hostname': '20b3f6ea-2429-46a2-8bbd-aeb66d31fc96', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/20b3f6ea-2429-46a2-8bbd-aeb66d31fc96', 'rel': 'self'}, {'href': 'http://localhost/conductors/20b3f6ea-2429-46a2-8bbd-aeb66d31fc96', 'rel': 'bookmark'}]}, {'hostname': '94a8acab-c861-48f3-b3b0-e1b82d56c490', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/94a8acab-c861-48f3-b3b0-e1b82d56c490', 'rel': 'self'}, {'href': 'http://localhost/conductors/94a8acab-c861-48f3-b3b0-e1b82d56c490', 'rel': 'bookmark'}]}, {'hostname': 'a141ddf4-fd1f-46f6-a888-0d7b737ba40f', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/a141ddf4-fd1f-46f6-a888-0d7b737ba40f', 'rel': 'self'}, {'href': 'http://localhost/conductors/a141ddf4-fd1f-46f6-a888-0d7b737ba40f', 'rel': 'bookmark'}]}, {'hostname': 'ac387fe7-efe5-419a-880a-0e162b051923', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/ac387fe7-efe5-419a-880a-0e162b051923', 'rel': 'self'}, {'href': 'http://localhost/conductors/ac387fe7-efe5-419a-880a-0e162b051923', 'rel': 'bookmark'}]}, {'hostname': 'fa1a68ac-997c-4b2b-84b7-736625d1813a', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/fa1a68ac-997c-4b2b-84b7-736625d1813a', 'rel': 'self'}, {'href': 'http://localhost/conductors/fa1a68ac-997c-4b2b-84b7-736625d1813a', 'rel': 'bookmark'}]}]} GET: /v1/conductors?sort_key=alive {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-182dc146-1123-478d-95d7-66ecee08ac92 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value alive is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/conductors?sort_key=drivers {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4ded2a4f-516c-4c31-82d6-18c28b20fa76 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value drivers is an invalid field for sorting\", \"debuginfo\": null}"} DELETE: /v1/deploy_templates/CUSTOM_DT1.json GOT:Response: 204 No Content Openstack-Request-Id: req-f769e3fd-68b2-457e-8e18-16f0120dec27 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 DELETE: /v1/deploy_templates/34e962fb-e507-4e30-9be4-e6c77ab3c219 GOT:Response: 204 No Content Openstack-Request-Id: req-16faa730-18f8-4e82-b43d-53f82cf17d3d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 DELETE: /v1/deploy_templates/141e9e01-6fd9-4382-82e4-e7600d13e9a2.json GOT:Response: 204 No Content Openstack-Request-Id: req-b7b87a32-900d-49e0-ad1b-72fed0069f83 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 GET: /v1/deploy_templates?fields=uuid,steps {} GOT:{'deploy_templates': [{'uuid': 'c379169f-1db6-487c-8f04-aa35fb5710da', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/c379169f-1db6-487c-8f04-aa35fb5710da', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c379169f-1db6-487c-8f04-aa35fb5710da', 'rel': 'bookmark'}]}, {'uuid': 'fbf1f13f-d71c-4765-b5c7-fcdb3b5679c9', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/fbf1f13f-d71c-4765-b5c7-fcdb3b5679c9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/fbf1f13f-d71c-4765-b5c7-fcdb3b5679c9', 'rel': 'bookmark'}]}, {'uuid': '35ff6ead-6e84-41e0-8f53-3a60f3cad50c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/35ff6ead-6e84-41e0-8f53-3a60f3cad50c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/35ff6ead-6e84-41e0-8f53-3a60f3cad50c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,steps&limit=3&marker=35ff6ead-6e84-41e0-8f53-3a60f3cad50c'}ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps ... ok 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 {} GOT:{'chassis': [{'uuid': '70f01fb4-65b2-43cf-bfcf-b2ef980de3da', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/70f01fb4-65b2-43cf-bfcf-b2ef980de3da', 'rel': 'self'}, {'href': 'http://localhost/chassis/70f01fb4-65b2-43cf-bfcf-b2ef980de3da', 'rel': 'bookmark'}]}, {'uuid': 'bbb37dfe-5743-4328-8870-8f8db3f71408', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/bbb37dfe-5743-4328-8870-8f8db3f71408', 'rel': 'self'}, {'href': 'http://localhost/chassis/bbb37dfe-5743-4328-8870-8f8db3f71408', 'rel': 'bookmark'}]}, {'uuid': '22219d53-5f32-4334-b4b0-4a7e171513ab', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/22219d53-5f32-4334-b4b0-4a7e171513ab', 'rel': 'self'}, {'href': 'http://localhost/chassis/22219d53-5f32-4334-b4b0-4a7e171513ab', 'rel': 'bookmark'}]}, {'uuid': '60cca149-c88c-46ea-aa3f-0ecf7e56026d', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/60cca149-c88c-46ea-aa3f-0ecf7e56026d', 'rel': 'self'}, {'href': 'http://localhost/chassis/60cca149-c88c-46ea-aa3f-0ecf7e56026d', 'rel': 'bookmark'}]}, {'uuid': '0b5cca75-2b66-451b-8611-8a72a592fb2d', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/0b5cca75-2b66-451b-8611-8a72a592fb2d', 'rel': 'self'}, {'href': 'http://localhost/chassis/0b5cca75-2b66-451b-8611-8a72a592fb2d', 'rel': 'bookmark'}]}]} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis?sort_key=uuid {} GOT:{'chassis': [{'uuid': '3019c127-a064-40a1-9a1d-ca13684d5471', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/3019c127-a064-40a1-9a1d-ca13684d5471', 'rel': 'self'}, {'href': 'http://localhost/chassis/3019c127-a064-40a1-9a1d-ca13684d5471', 'rel': 'bookmark'}]}, {'uuid': '4ed20a06-098c-41cc-acb5-3a3ddbc1e36b', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/4ed20a06-098c-41cc-acb5-3a3ddbc1e36b', 'rel': 'self'}, {'href': 'http://localhost/chassis/4ed20a06-098c-41cc-acb5-3a3ddbc1e36b', 'rel': 'bookmark'}]}, {'uuid': '54612c8d-5296-4163-8e78-e60e3473089e', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/54612c8d-5296-4163-8e78-e60e3473089e', 'rel': 'self'}, {'href': 'http://localhost/chassis/54612c8d-5296-4163-8e78-e60e3473089e', 'rel': 'bookmark'}]}]} GET: /v1/chassis?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c2ba14ef-45ed-41b7-b7bd-1930150522cb X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-95acace4-1f7b-4848-bd01-7c79e346cf72 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/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-9bc2f629-5624-4a85-8f98-09db757e339a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "bar2"}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}], "updated_at": "2020-03-11T19:45:15.807790+00:00", "created_at": "2020-03-11T19:45:15.768563+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'bar2'}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-03-11T19:45:15.807790+00:00', 'created_at': '2020-03-11T19:45:15.768563+00:00'} 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-2a272821-29ca-43d9-8117-a0f56d589130 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/09c79579-ef62-4501-9f08-101b876592b7 [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-200d9f0b-7644-4be8-8e95-e50931889008 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "09c79579-ef62-4501-9f08-101b876592b7", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/09c79579-ef62-4501-9f08-101b876592b7", "rel": "self"}, {"href": "http://localhost/chassis/09c79579-ef62-4501-9f08-101b876592b7", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/09c79579-ef62-4501-9f08-101b876592b7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/09c79579-ef62-4501-9f08-101b876592b7/nodes", "rel": "bookmark"}], "updated_at": "2020-03-11T19:45:15.972886+00:00", "created_at": "2020-03-11T19:45:15.945717+00:00"} GET: /v1/chassis/09c79579-ef62-4501-9f08-101b876592b7 {} GOT:{'uuid': '09c79579-ef62-4501-9f08-101b876592b7', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/09c79579-ef62-4501-9f08-101b876592b7', 'rel': 'self'}, {'href': 'http://localhost/chassis/09c79579-ef62-4501-9f08-101b876592b7', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/09c79579-ef62-4501-9f08-101b876592b7/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/09c79579-ef62-4501-9f08-101b876592b7/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-03-11T19:45:15.972886+00:00', 'created_at': '2020-03-11T19:45:15.945717+00:00'} PATCH: /v1/chassis/09c79579-ef62-4501-9f08-101b876592b7 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f1d7593-22df-40fd-8236-71a93d9ab38d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "09c79579-ef62-4501-9f08-101b876592b7", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/09c79579-ef62-4501-9f08-101b876592b7", "rel": "self"}, {"href": "http://localhost/chassis/09c79579-ef62-4501-9f08-101b876592b7", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/09c79579-ef62-4501-9f08-101b876592b7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/09c79579-ef62-4501-9f08-101b876592b7/nodes", "rel": "bookmark"}], "updated_at": "2020-03-11T19:45:16.017250+00:00", "created_at": "2020-03-11T19:45:15.945717+00:00"}ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error ... 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_conductor.TestListConductors.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent ... ok GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': 'a9384f08-50e2-4e05-b8bf-44fac2d2b00f', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/a9384f08-50e2-4e05-b8bf-44fac2d2b00f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a9384f08-50e2-4e05-b8bf-44fac2d2b00f', 'rel': 'bookmark'}]}, {'uuid': '1d127d8c-5f34-49f0-827b-d790e69a0358', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/1d127d8c-5f34-49f0-827b-d790e69a0358', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1d127d8c-5f34-49f0-827b-d790e69a0358', 'rel': 'bookmark'}]}, {'uuid': '894cabe3-81eb-4d66-acbf-bd268f1b2f77', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/894cabe3-81eb-4d66-acbf-bd268f1b2f77', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/894cabe3-81eb-4d66-acbf-bd268f1b2f77', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=894cabe3-81eb-4d66-acbf-bd268f1b2f77'} GET: /v1/deploy_templates?detail=True {} GOT:{'deploy_templates': [{'uuid': 'c57f85e4-6612-4e9e-b29a-817bfc4dd884', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/c57f85e4-6612-4e9e-b29a-817bfc4dd884', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c57f85e4-6612-4e9e-b29a-817bfc4dd884', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:16.769454+00:00', 'updated_at': None}]} GET: /v1/deploy_templates?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fd37c852-eca1-403e-ac05-70b9aee95976 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/deploy_templates?detail=False&fields=steps {} GOT:{'deploy_templates': [{'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/fb762086-e4c9-464b-97c5-132a4abb8062', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/fb762086-e4c9-464b-97c5-132a4abb8062', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates {} GOT:{'deploy_templates': []} GET: /v1/deploy_templates?fields=uuid,steps {} GOT:{'deploy_templates': [{'uuid': '494c7b4c-4bd0-4d02-a66d-b33616881110', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/494c7b4c-4bd0-4d02-a66d-b33616881110', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/494c7b4c-4bd0-4d02-a66d-b33616881110', 'rel': 'bookmark'}]}, {'uuid': '4a4246d3-b981-4085-9336-3d550b6c4b67', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/4a4246d3-b981-4085-9336-3d550b6c4b67', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4a4246d3-b981-4085-9336-3d550b6c4b67', 'rel': 'bookmark'}]}, {'uuid': '727b3f93-2df1-482e-8a3a-85bbfd332a9c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/727b3f93-2df1-482e-8a3a-85bbfd332a9c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/727b3f93-2df1-482e-8a3a-85bbfd332a9c', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates/d60f6c73-1f1e-4f77-9985-e6b38c57a279.json {} GOT:{'uuid': 'd60f6c73-1f1e-4f77-9985-e6b38c57a279', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/d60f6c73-1f1e-4f77-9985-e6b38c57a279', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d60f6c73-1f1e-4f77-9985-e6b38c57a279', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:17.202931+00:00', 'updated_at': None} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': '8ebdd46d-e680-4ab9-9f80-93e74a86c9e6', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/8ebdd46d-e680-4ab9-9f80-93e74a86c9e6', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/8ebdd46d-e680-4ab9-9f80-93e74a86c9e6', 'rel': 'bookmark'}]}, {'uuid': '507669b5-bef0-49f3-90ab-bb2e949d7a77', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/507669b5-bef0-49f3-90ab-bb2e949d7a77', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/507669b5-bef0-49f3-90ab-bb2e949d7a77', 'rel': 'bookmark'}]}, {'uuid': '95dfe332-f34b-4095-8d0d-6553151cc321', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/95dfe332-f34b-4095-8d0d-6553151cc321', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/95dfe332-f34b-4095-8d0d-6553151cc321', 'rel': 'bookmark'}]}, {'uuid': '06b8153f-3a57-4e26-adad-7719cba4b878', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/06b8153f-3a57-4e26-adad-7719cba4b878', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/06b8153f-3a57-4e26-adad-7719cba4b878', 'rel': 'bookmark'}]}, {'uuid': 'b3d029c1-9b46-4fb6-9f2f-a41f1ddf9a26', 'name': 'CUSTOM_DT4', 'links': [{'href': 'http://localhost/v1/deploy_templates/b3d029c1-9b46-4fb6-9f2f-a41f1ddf9a26', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b3d029c1-9b46-4fb6-9f2f-a41f1ddf9a26', 'rel': 'bookmark'}]}]} PATCH: /v1/deploy_templates/42953c80-309e-4e00-b760-ea6b2edd1f90 [{'path': '/steps/1', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d53cfa8-3b28-4b84-8b4b-c6027b713fee X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove non-existent object '1'\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/2c4b91f6-ae73-498d-a89d-7647298788cf [{'path': '/steps/0', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fc98b6ac-56d6-4d4e-abda-98c2d614ba3a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: No deploy steps specified. A deploy template must have at least one deploy step..\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/044d9c40-cabf-4177-8c0b-4093887471ee [{'path': '/steps', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a50ad7cb-44ab-4d86-9b4b-465b8e9abad4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/steps' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/856a147b-cc4f-4dba-9474-b28580c69750 [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-24907ecc-a263-42cd-a273-d94efa35fb84 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template name must be a valid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface ... ok ironic.tests.unit.api.controllers.v1.test_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_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_driver.TestDriverProperties.test_driver_properties_invalid_driver_name ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_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_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_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods ... ok GET: /v1/deploy_templates/a78c218b-1ce4-402b-8b0d-aacd3d8c977d {} GOT:{'uuid': 'a78c218b-1ce4-402b-8b0d-aacd3d8c977d', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/a78c218b-1ce4-402b-8b0d-aacd3d8c977d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/a78c218b-1ce4-402b-8b0d-aacd3d8c977d', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '06396647-410c-4876-a163-0608eaa92b27', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': [{'bar': 'baz'}]}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/06396647-410c-4876-a163-0608eaa92b27 Openstack-Request-Id: req-8adc4046-4686-4d94-97fc-65b45ca16771 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "06396647-410c-4876-a163-0608eaa92b27", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/06396647-410c-4876-a163-0608eaa92b27", "rel": "self"}, {"href": "http://localhost/deploy_templates/06396647-410c-4876-a163-0608eaa92b27", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:16.588549+00:00", "updated_at": null} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/7dc6407e-7942-463e-8ec4-1c32f93e9499 Openstack-Request-Id: req-24176293-74cc-4569-a620-bd4d12a91f28 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "7dc6407e-7942-463e-8ec4-1c32f93e9499", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/7dc6407e-7942-463e-8ec4-1c32f93e9499", "rel": "self"}, {"href": "http://localhost/deploy_templates/7dc6407e-7942-463e-8ec4-1c32f93e9499", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:16.654278+00:00", "updated_at": null} GET: /v1/deploy_templates/7dc6407e-7942-463e-8ec4-1c32f93e9499 {} GOT:{'uuid': '7dc6407e-7942-463e-8ec4-1c32f93e9499', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/7dc6407e-7942-463e-8ec4-1c32f93e9499', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/7dc6407e-7942-463e-8ec4-1c32f93e9499', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:16.654278+00:00', 'updated_at': None} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '86538b41-e96d-42f1-8cb2-9c74ca9ca6c3', 'steps': {}, 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-76f28eac-8ae7-4633-89a1-3d7877bfb480 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'name': 'CUSTOM_DT1', 'uuid': '86538b41-e96d-42f1-8cb2-9c74ca9ca6c3', 'steps': {}, 'extra': {}}'. Value not a valid list: {}\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '3285afe6-cdaa-4acc-b1f1-c5dce694875d', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': -1}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6fe7b277-00ea-4cd4-83cf-ceb7e560d9b9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute priority. Value: '-1'. Value should be greater or equal to 0\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'c34da907-aa67-4736-9973-39454b668c13', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-164913b9-69a4-4f48-81dc-ed2f6930bcc5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute step. Value: '42'. Wrong type. Expected '', got ''\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '15e10416-3c52-47ac-9320-d331f300b8cf', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': '42'}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/15e10416-3c52-47ac-9320-d331f300b8cf Openstack-Request-Id: req-3079c37d-6b67-4eb7-ba96-e46addd7555b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "15e10416-3c52-47ac-9320-d331f300b8cf", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 42}], "links": [{"href": "http://localhost/v1/deploy_templates/15e10416-3c52-47ac-9320-d331f300b8cf", "rel": "self"}, {"href": "http://localhost/deploy_templates/15e10416-3c52-47ac-9320-d331f300b8cf", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:16.936165+00:00", "updated_at": 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/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {} GOT:foo PUT: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-5dc245be-f1bf-4b2a-a765-5460818c8fbb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null GET: /v1/drivers {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]}]} 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'}]}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_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_drivers_no_active_conductor ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestAttachDetachVif.test_vif_detach_node_locked ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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.TestCheckCleanSteps.test__check_clean_steps_not_list ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource ... ok GET: /v1/chassis/09c79579-ef62-4501-9f08-101b876592b7 {} GOT:{'uuid': '09c79579-ef62-4501-9f08-101b876592b7', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/09c79579-ef62-4501-9f08-101b876592b7', 'rel': 'self'}, {'href': 'http://localhost/chassis/09c79579-ef62-4501-9f08-101b876592b7', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/09c79579-ef62-4501-9f08-101b876592b7/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/09c79579-ef62-4501-9f08-101b876592b7/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-03-11T19:45:16.017250+00:00', 'created_at': '2020-03-11T19:45:15.945717+00:00'} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'new', 'op': 'replace'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-cc9cf3c4-f076-4e76-a65d-8ca69782151e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 1334} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-47544be5-2665-4896-8e09-d50dde360b49 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: '1334'. Value should be string\", \"debuginfo\": null}"} GET: /v1/conductors {} GOT:{'conductors': [{'hostname': '2daac24c-d23d-4228-92e5-aa04190a4f10', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/2daac24c-d23d-4228-92e5-aa04190a4f10', 'rel': 'self'}, {'href': 'http://localhost/conductors/2daac24c-d23d-4228-92e5-aa04190a4f10', 'rel': 'bookmark'}]}, {'hostname': '4ac3b71a-d5ba-4634-8f5a-c966faf57379', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/4ac3b71a-d5ba-4634-8f5a-c966faf57379', 'rel': 'self'}, {'href': 'http://localhost/conductors/4ac3b71a-d5ba-4634-8f5a-c966faf57379', 'rel': 'bookmark'}]}, {'hostname': '5de0576f-5e95-4e11-9bfe-9f52831fdb9e', 'conductor_group': '', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/5de0576f-5e95-4e11-9bfe-9f52831fdb9e', 'rel': 'self'}, {'href': 'http://localhost/conductors/5de0576f-5e95-4e11-9bfe-9f52831fdb9e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=5de0576f-5e95-4e11-9bfe-9f52831fdb9e'} GET: /v1/conductors?fields=hostname,alive {} GOT:{'conductors': [{'hostname': 'rocky.rocks', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}]}, {'hostname': 'stein.rocks', 'alive': True, 'links': [{'href': 'http://localhost/v1/conductors/stein.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/stein.rocks', 'rel': 'bookmark'}]}]} GET: /v1/conductors/rocky.rocks {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d0eba1b2-1ebd-4603-bc1d-ecf732f743af X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://foo/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://foo/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:16.440245+00:00', 'updated_at': '2020-03-11T19:45:16.439078+00:00'} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://foo/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://foo/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:16.440245+00:00', 'updated_at': '2020-03-11T19:45:16.439078+00:00'} GET: /conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://foo/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://foo/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:16.440245+00:00', 'updated_at': '2020-03-11T19:45:16.439078+00:00'} DELETE: /v1/deploy_templates/CUSTOM_DT1 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} GET: /v1/deploy_templates/c02fd755-2d3f-4af2-bac2-c8d41ef201c3 {} GOT:{'uuid': 'c02fd755-2d3f-4af2-bac2-c8d41ef201c3', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': [], 'password': '******'}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/c02fd755-2d3f-4af2-bac2-c8d41ef201c3', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c02fd755-2d3f-4af2-bac2-c8d41ef201c3', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:16.634662+00:00', 'updated_at': None} GET: /v1/deploy_templates?sort_key=uuid {} GOT:{'deploy_templates': [{'uuid': '56598cb7-bf48-454a-b9a4-d581e95aee4e', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/56598cb7-bf48-454a-b9a4-d581e95aee4e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/56598cb7-bf48-454a-b9a4-d581e95aee4e', 'rel': 'bookmark'}]}, {'uuid': '68bf62e7-d968-4f97-8b9c-cef355deb9a4', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/68bf62e7-d968-4f97-8b9c-cef355deb9a4', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/68bf62e7-d968-4f97-8b9c-cef355deb9a4', 'rel': 'bookmark'}]}, {'uuid': 'fabc02d1-e8da-4e6b-a4f1-e8310b036c77', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/fabc02d1-e8da-4e6b-a4f1-e8310b036c77', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/fabc02d1-e8da-4e6b-a4f1-e8310b036c77', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?sort_key=name&detail=False {} GOT:{'deploy_templates': [{'uuid': 'e4142115-93cc-44be-a742-339f0919a99e', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/e4142115-93cc-44be-a742-339f0919a99e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e4142115-93cc-44be-a742-339f0919a99e', 'rel': 'bookmark'}]}, {'uuid': 'f5caeafc-c66a-47b9-971e-6b8c9014647f', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/f5caeafc-c66a-47b9-971e-6b8c9014647f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/f5caeafc-c66a-47b9-971e-6b8c9014647f', 'rel': 'bookmark'}]}, {'uuid': 'f71fbfdd-d916-45fc-8a47-b5adaa91a0ce', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/f71fbfdd-d916-45fc-8a47-b5adaa91a0ce', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/f71fbfdd-d916-45fc-8a47-b5adaa91a0ce', 'rel': 'bookmark'}]}]} PATCH: /v1/deploy_templates/95b2fde6-b1f3-429f-9a0e-8f2fa2aeb2c4 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d3abab2d-d95f-4afb-a2bb-73d3d4b18877 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/c7426d37-a57a-49c9-8c4b-ccd211d66443 [{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}]ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait ... ok GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'extra': {'foo': 123}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:16.396433+00:00'} 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-f284b6a2-e449-429e-b899-f1479ddb8eef X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-19fe0404-26fc-4528-9c44-e4619b89fb88 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'амо'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-54c62257-45d2-46a0-bc6d-751864998c9e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "\u0430\u043c\u043e", "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": "2020-03-11T19:45:16.566141+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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': None, 'created_at': '2020-03-11T19:45:16.566141+00:00'} GET: /v1/conductors {} GOT:{'conductors': []} GET: /v1/conductors/rocky.rocks {} GOT:{'hostname': 'rocky.rocks', 'conductor_group': '', 'alive': True, 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/rocky.rocks', 'rel': 'self'}, {'href': 'http://localhost/conductors/rocky.rocks', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:16.703148+00:00', 'updated_at': '2020-03-11T19:45:16.700959+00:00'} DELETE: /v1/deploy_templates/CUSTOM_DT1 GOT:Response: 204 No Content Openstack-Request-Id: req-04db8b42-65fa-4621-a06d-0b2b499af1de X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 DELETE: /v1/deploy_templates/c235b32e-2a93-406c-bbc1-5434cf1ba9b6 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': 'e2b7ae1e-8fc5-4e1d-9b34-b99e55110866', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/e2b7ae1e-8fc5-4e1d-9b34-b99e55110866', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e2b7ae1e-8fc5-4e1d-9b34-b99e55110866', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?detail=False {} GOT:{'deploy_templates': [{'uuid': 'e2b7ae1e-8fc5-4e1d-9b34-b99e55110866', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/e2b7ae1e-8fc5-4e1d-9b34-b99e55110866', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e2b7ae1e-8fc5-4e1d-9b34-b99e55110866', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"} GET: /v1/deploy_templates?fields=name&limit=2 {} GOT:{'deploy_templates': [{'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/5d688b64-d804-40b1-8391-f4b3446d1126', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/5d688b64-d804-40b1-8391-f4b3446d1126', 'rel': 'bookmark'}]}, {'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/6c01ed16-ec3c-4a03-964d-572adb3bb575', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/6c01ed16-ec3c-4a03-964d-572adb3bb575', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=6c01ed16-ec3c-4a03-964d-572adb3bb575'} GET: /v1/deploy_templates/f591e5af-a3a6-4e9a-86f2-d6b6d6ef7ae8?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-629b6923-7e05-400a-8425-cc6ba470f480 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/deploy_templates/14641588-a079-4c92-8722-89f2bc21af87 {} GOT:{'uuid': '14641588-a079-4c92-8722-89f2bc21af87', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/14641588-a079-4c92-8722-89f2bc21af87', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/14641588-a079-4c92-8722-89f2bc21af87', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:17.291604+00:00', 'updated_at': None} GET: /v1/deploy_templates/dfcd72d4-8272-4e14-9f7c-f6bf844c46a9 {} GOT:{'uuid': 'dfcd72d4-8272-4e14-9f7c-f6bf844c46a9', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/dfcd72d4-8272-4e14-9f7c-f6bf844c46a9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/dfcd72d4-8272-4e14-9f7c-f6bf844c46a9', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:17.363561+00:00', 'updated_at': None} GET: /v1/deploy_templates/dfcd72d4-8272-4e14-9f7c-f6bf844c46a9 {} GOT:{'uuid': 'dfcd72d4-8272-4e14-9f7c-f6bf844c46a9', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/dfcd72d4-8272-4e14-9f7c-f6bf844c46a9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/dfcd72d4-8272-4e14-9f7c-f6bf844c46a9', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:17.363561+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra ... ok PATCH: /v1/deploy_templates/CUSTOM_DT1 [{'path': '/steps', 'value': [{'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}], 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b01e87e8-b862-4b1b-9117-d3956018d84f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "aee59193-4e8f-48a6-9e3a-15fbbd327714", "name": "CUSTOM_DT1", "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}], "links": [{"href": "http://localhost/v1/deploy_templates/aee59193-4e8f-48a6-9e3a-15fbbd327714", "rel": "self"}, {"href": "http://localhost/deploy_templates/aee59193-4e8f-48a6-9e3a-15fbbd327714", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:17.712617+00:00", "updated_at": null} PATCH: /v1/deploy_templates/7ef63644-8856-40e8-8495-753a8a72a41a [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c2ca5d96-eeb2-4430-89e6-cae8c501f6c9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 7ef63644-8856-40e8-8495-753a8a72a41a could not be found.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '75c65b46-cd05-4e22-ba2b-320d1f92cde0', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}, 'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b5e3ebe1-84e1-4bb9-8e1f-65ae5cebb498 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument template: foo\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'b3fc83d8-f3c7-4fc0-8681-07034818d02a', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-102ca643-d810-4dd0-a03e-667fc2d373e5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'name': 'CUSTOM_DT1', 'uuid': 'b3fc83d8-f3c7-4fc0-8681-07034818d02a', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}}'. Value not a valid dict: []\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '15decc62-8904-4c19-9cea-c132bf0a0c49', 'steps': [{'interface': [3], 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6df6e593-9100-4bc3-bc0d-2ddf01f10bac X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: '[3]'. unhashable type: 'list'\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '67d0a976-3313-4a8c-a555-fc47a19212da', 'steps': [{'interface': 'foo', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bf87b582-7cb6-4f83-8b7c-761549963398 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'foo'. Value should be one of: management, bios, power, raid, deploy\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '2aec8ffb-5435-4220-8e01-290162d92c92', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ed041c3c-5663-49b6-afbc-b4f378cf695a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute steps. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '24053bb2-7609-43e9-8315-1e0c7503dcc2', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2143ec04-abab-477b-8fd8-a47ab8b5fd16 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute args. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'd1a96cd1-4e60-4dd8-b972-a77da02b925d', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b4124953-3c05-4492-badd-a425b406480d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} GET: /v1/drivers/driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-45d9ce6d-c0d0-422b-aa6d-c75af88dbf28 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"} GET: /v1/drivers/test/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/bad_driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5f2b2843-b788-4134-8a45-083e5837fa2e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): bad_driver.\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type {} 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'}]} DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-1a8a68f3-a439-44bb-9be7-2ec2892c2866 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 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-5c42b2c1-30e7-40bd-bb27-1ffba3a08530 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} GOT:{'foo': 'bar'} GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} GOT:{'foo': 'bar'} 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': []}]}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_links ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events ... ok ironic.tests.unit.api.controllers.v1.test_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.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_detach_by_node_name ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_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.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.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_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 ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node ... 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.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 GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /v1/drivers?detail=True {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-370e3459-cb68-45e4-89a7-acf63b167280 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {} GOT:{'drivers': []} GET: /v1/drivers?type=working {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-41caca6d-8e29-4659-99b8-70c45e7b432f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"type\\\" filter must be one of \\\"classic\\\" or \\\"dynamic\\\", if specified.\", \"debuginfo\": null}"} GET: /v1/drivers?type=classic {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-613ea3b7-dfd9-4bcc-bd7c-160f2094800a X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/events {'events': [{'INVALID': 'fake.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df140150-a55a-4cb2-8c95-219f1b699715 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: event\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.delete_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-efac3466-926d-4121-96d7-b1e88e999b04 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'], 'binding:vnic_type': 'baremetal'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a3bb0896-d9f9-456a-9599-6beb37931857 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute events. Value: '[{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'], 'binding:vnic_type': 'baremetal'}]'. Wrong type. Expected '', got ''\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': 'PORT_ID_SHOULD_BE_UUID', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f2fe21e7-632c-44f5-8152-205d9325c3ed X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Event validation failure for port_id. Expected a UUID but received PORT_ID_SHOULD_BE_UUID.\", \"debuginfo\": null}"} POST: /v1/nodes/node-39/vifs {'id': '4997b1bd-6d34-4db9-8fb6-ce301d008b33'} GOT:Response: 204 No Content Openstack-Request-Id: req-61b2aad1-d04d-40ca-a554-a2c633b938b7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/53f9609f-00c5-4e4f-94e7-826b059fe328 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-426c4108-9add-4c6f-8ef5-fb6de472df13 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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:{'virtualization': {'name': 'virtualization', 'value': 'on', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:18.240339+00:00', 'updated_at': None}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0742df91-8531-46c1-945c-da301f2e4f23 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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.json GOT:Response: 204 No Content Openstack-Request-Id: req-237a0a29-58df-4650-8329-baf0432159b9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 202 Accepted Openstack-Request-Id: req-305cbb0a-67bc-40a6-8483-2d63aad879ea X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e1edd8d1-bb52-4402-840d-d6e4048f6d58 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d0bf937e-7ee3-47f6-bf7d-61d2b1d44dcd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/nodes/?limit=3 {} GOT:{'nodes': [{'uuid': 'e0ada73b-6c66-4e3a-a8af-11deebe24eaf', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e0ada73b-6c66-4e3a-a8af-11deebe24eaf', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0ada73b-6c66-4e3a-a8af-11deebe24eaf', 'rel': 'bookmark'}]}, {'uuid': 'd1c81352-c0a7-4c5e-83b8-144534ced726', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d1c81352-c0a7-4c5e-83b8-144534ced726', 'rel': 'self'}, {'href': 'http://localhost/nodes/d1c81352-c0a7-4c5e-83b8-144534ced726', 'rel': 'bookmark'}]}, {'uuid': '82d73631-661b-4498-8c63-82754b9eae8e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/82d73631-661b-4498-8c63-82754b9eae8e', 'rel': 'self'}, {'href': 'http://localhost/nodes/82d73631-661b-4498-8c63-82754b9eae8e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=3&marker=82d73631-661b-4498-8c63-82754b9eae8e'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f29d332a-deea-4a7f-8241-3ca88f79b4b7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: can't insert outside of list\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/929ea629-20d7-47e1-854d-ca9f7cf083e0 [{'path': '/foo', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bf47c39d-eaa8-4f29-bb13-4a547898e839 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/foo', 'op': 'remove'}'. Reason: can't remove non-existent object 'foo'\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/49ed52ef-0b35-4d57-9fef-b02c1ac4465f [{'path': '/steps/1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3269255d-3620-4d65-a18d-08ff0f34a397 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "49ed52ef-0b35-4d57-9fef-b02c1ac4465f", "name": "CUSTOM_DT2", "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/49ed52ef-0b35-4d57-9fef-b02c1ac4465f", "rel": "self"}, {"href": "http://localhost/deploy_templates/49ed52ef-0b35-4d57-9fef-b02c1ac4465f", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:17.150381+00:00", "updated_at": null} PATCH: /v1/deploy_templates/d1434916-195b-4571-959c-bece72fa8a5f [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7b122c17-c0a1-443a-b138-378801aa61b7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/8bc006de-ab89-47b7-a4e5-b871b5332a7a [{'path': '/steps', 'op': 'replace', 'value': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '0'}, 'priority': 0}, {'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '1'}, 'priority': 1}]}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-706efc00-0446-4c7d-ab0e-995fcffc878e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A deploy template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/da6c5e40-b4d2-4a02-985b-173412e5f1ee [{'path': '/steps', 'op': 'replace', 'value': []}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5ea8b2d7-3a2b-4b59-9106-ce15d053a009 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: No deploy steps specified. A deploy template must have at least one deploy step..\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/4e284d84-1fc7-40be-80bb-d78fed58d468 [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b48b7f48-643a-4f09-9f14-af2e46bccc3a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template name must be a valid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/9b76e2d3-1b5e-4d54-a44f-8a41c127fb77 [{'path': '/steps/0', 'value': {'interface': 'raid', 'step': 'create_configuration0', 'args': {}, 'priority': 11}, 'op': 'replace'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'step': 'create_configuration1', 'args': {}, 'priority': 11}, 'op': 'replace'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'step': 'create_configuration2', 'args': {}, 'priority': 11}, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b96bfcc-7d1b-4ac7-be63-fe2592ab142f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "9b76e2d3-1b5e-4d54-a44f-8a41c127fb77", "name": "CUSTOM_DT2", "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 11}], "links": [{"href": "http://localhost/v1/deploy_templates/9b76e2d3-1b5e-4d54-a44f-8a41c127fb77", "rel": "self"}, {"href": "http://localhost/deploy_templates/9b76e2d3-1b5e-4d54-a44f-8a41c127fb77", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:17.522396+00:00", "updated_at": null} PATCH: /v1/deploy_templates/CUSTOM_DT1.json [{'path': '/steps/0/interface', 'value': 'bios', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7330bb4-fbb1-44fd-96f6-ffde979b7632 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "bb9abfaa-45dc-4871-bcf5-a7d9ee598379", "name": "CUSTOM_DT1", "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/bb9abfaa-45dc-4871-bcf5-a7d9ee598379", "rel": "self"}, {"href": "http://localhost/deploy_templates/bb9abfaa-45dc-4871-bcf5-a7d9ee598379", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:17.593327+00:00", "updated_at": null} PATCH: /v1/deploy_templates/b7d69d63-092b-46ef-ac88-cde67ca351bb [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a750602-032f-42eb-b678-eebe42833100 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "b7d69d63-092b-46ef-ac88-cde67ca351bb", "name": "CUSTOM_DT2", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/b7d69d63-092b-46ef-ac88-cde67ca351bb", "rel": "self"}, {"href": "http://localhost/deploy_templates/b7d69d63-092b-46ef-ac88-cde67ca351bb", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:17.649395+00:00", "updated_at": null} PATCH: /v1/deploy_templates/79795ac6-46e5-4ce3-bc65-e0e96c030aa8 [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cfcf71a-76f3-4866-b66b-4381912118df X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "79795ac6-46e5-4ce3-bc65-e0e96c030aa8", "name": "HW_CPU_X86_VMX", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/79795ac6-46e5-4ce3-bc65-e0e96c030aa8", "rel": "self"}, {"href": "http://localhost/deploy_templates/79795ac6-46e5-4ce3-bc65-e0e96c030aa8", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:17.735878+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step ... ok GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e96dea75-c424-4c51-a2ad-c444e974c1fa X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"} POST: /v1/events {'events': [{'event': 'valid.event'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-8ee18d24-3328-41cd-9b2e-fca4f9e1b64f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 POST: /v1/events {'events': [{'event': 'valid.event1'}, {'event': 'valid.event2'}, {'event': 'valid.event3'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-70f95bc5-862b-4664-8839-782a3026b0f4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT']}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-53e878b4-b8c7-411d-8d46-f8e4ec9e7f10 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute events. Value: '[{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT']}]'. Wrong type. Expected '', got ''\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': ['status', 'SHOULD', 'BE', 'TEXT'], 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1760aae3-eb3e-4a71-82fa-8dd86ad018ee X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute events. Value: '[{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': ['status', 'SHOULD', 'BE', 'TEXT'], 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]'. Wrong type. Expected '', got ''\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.unbind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-e9510456-47bd-479a-bbfe-73245395e149 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/e23861f2-e443-407f-a60c-3d9105e0d593 GOT:Response: 204 No Content Openstack-Request-Id: req-a95284b9-e74e-4cfa-bf83-14aaf0f970a2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 DELETE: /v1/nodes/node-39/vifs/85ec8a76-7256-42df-b0e5-d791f07a4421 GOT:Response: 204 No Content Openstack-Request-Id: req-d7793016-8175-4433-9095-c15dd165b6ee X-Openstack-Ironic-Api-Maximum-Version: 1.56 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": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:{'bios': [{'name': 'virtualization', 'value': 'on', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:20.590725+00:00', 'updated_at': None}]} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 204 No Content Openstack-Request-Id: req-c68f3ed8-28f0-4ecd-b105-86971392bc0d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 DELETE: /v1/nodes/foo.1 GOT:Response: 204 No Content Openstack-Request-Id: req-842da6d0-c66d-4f14-9868-c79b14803281 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2356d1de-6c26-4e84-b084-673b9a672628 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_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.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.TestDelete.test_delete_volume_targets_subresource ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query ... ok GET: /v1/nodes?fields=driver_info,uuid {} GOT:{'nodes': [{'uuid': 'd6cdc98e-ddbf-49ea-a970-67c51f8c35f8', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/d6cdc98e-ddbf-49ea-a970-67c51f8c35f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/d6cdc98e-ddbf-49ea-a970-67c51f8c35f8', 'rel': 'bookmark'}]}, {'uuid': '622ddac4-f380-4438-ac23-212f81ffc07b', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/622ddac4-f380-4438-ac23-212f81ffc07b', 'rel': 'self'}, {'href': 'http://localhost/nodes/622ddac4-f380-4438-ac23-212f81ffc07b', 'rel': 'bookmark'}]}, {'uuid': 'a9a90e45-42fb-436e-8552-9463ade090ed', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/a9a90e45-42fb-436e-8552-9463ade090ed', 'rel': 'self'}, {'href': 'http://localhost/nodes/a9a90e45-42fb-436e-8552-9463ade090ed', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=a9a90e45-42fb-436e-8552-9463ade090ed'} GET: /v1/nodes?instance_uuid=bb020e77-42bd-44d3-af23-1d67a2f408a0 {} GOT:{'nodes': [{'uuid': '49c804a9-9bec-4830-a97d-bd8c0e7bbfcc', 'instance_uuid': 'bb020e77-42bd-44d3-af23-1d67a2f408a0', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/49c804a9-9bec-4830-a97d-bd8c0e7bbfcc', 'rel': 'self'}, {'href': 'http://localhost/nodes/49c804a9-9bec-4830-a97d-bd8c0e7bbfcc', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?sort_key=resource_class {} GOT:{'nodes': [{'uuid': '7c4ae91f-1e03-4813-9857-72b732797459', '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/7c4ae91f-1e03-4813-9857-72b732797459', 'rel': 'self'}, {'href': 'http://localhost/nodes/7c4ae91f-1e03-4813-9857-72b732797459', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7c4ae91f-1e03-4813-9857-72b732797459/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7c4ae91f-1e03-4813-9857-72b732797459/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7c4ae91f-1e03-4813-9857-72b732797459/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7c4ae91f-1e03-4813-9857-72b732797459/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:19.789255+00:00'}, {'uuid': 'b08bdcbe-ebf7-4e60-82c4-fd11541a4d0d', '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/b08bdcbe-ebf7-4e60-82c4-fd11541a4d0d', 'rel': 'self'}, {'href': 'http://localhost/nodes/b08bdcbe-ebf7-4e60-82c4-fd11541a4d0d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/b08bdcbe-ebf7-4e60-82c4-fd11541a4d0d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b08bdcbe-ebf7-4e60-82c4-fd11541a4d0d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b08bdcbe-ebf7-4e60-82c4-fd11541a4d0d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b08bdcbe-ebf7-4e60-82c4-fd11541a4d0d/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:19.779031+00:00'}, {'uuid': 'f472d58a-b48f-4758-a604-cbe3f639cee6', '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/f472d58a-b48f-4758-a604-cbe3f639cee6', 'rel': 'self'}, {'href': 'http://localhost/nodes/f472d58a-b48f-4758-a604-cbe3f639cee6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/f472d58a-b48f-4758-a604-cbe3f639cee6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f472d58a-b48f-4758-a604-cbe3f639cee6/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f472d58a-b48f-4758-a604-cbe3f639cee6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f472d58a-b48f-4758-a604-cbe3f639cee6/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:19.769345+00:00'}]} GET: /v1/nodes?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bee7ba75-00ad-4b68-b885-ff2047f01703 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/nodes?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7fa8827a-9bfa-419e-afd7-5f833a9d741f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/nodes/detail?instance_uuid=ab0ff622-52de-497b-8fa0-61c8dabfcafd {} GOT:{'nodes': [{'uuid': 'd24ebb5d-fa5b-4c4e-8138-69fb11aecc1f', 'instance_uuid': 'ab0ff622-52de-497b-8fa0-61c8dabfcafd', '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/d24ebb5d-fa5b-4c4e-8138-69fb11aecc1f', 'rel': 'self'}, {'href': 'http://localhost/nodes/d24ebb5d-fa5b-4c4e-8138-69fb11aecc1f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/d24ebb5d-fa5b-4c4e-8138-69fb11aecc1f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d24ebb5d-fa5b-4c4e-8138-69fb11aecc1f/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:20.048580+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host ... ok POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'c2e22aaa-d10f-434b-aa45-6ca0bb672fa7', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/c2e22aaa-d10f-434b-aa45-6ca0bb672fa7 Openstack-Request-Id: req-aee34ce5-6a8f-4fc0-9e3c-502aa50a4dd2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "c2e22aaa-d10f-434b-aa45-6ca0bb672fa7", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/c2e22aaa-d10f-434b-aa45-6ca0bb672fa7", "rel": "self"}, {"href": "http://localhost/deploy_templates/c2e22aaa-d10f-434b-aa45-6ca0bb672fa7", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:17.827328+00:00", "updated_at": null} GET: /v1/deploy_templates/c2e22aaa-d10f-434b-aa45-6ca0bb672fa7 {} GOT:{'uuid': 'c2e22aaa-d10f-434b-aa45-6ca0bb672fa7', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/c2e22aaa-d10f-434b-aa45-6ca0bb672fa7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/c2e22aaa-d10f-434b-aa45-6ca0bb672fa7', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:17.827328+00:00', 'updated_at': None} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'cc611154-a36b-45e9-afef-8b45afa04f38', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2a9d2f91-e8ec-41b7-9ccc-ef0a1f82b7dd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 42, 'uuid': 'a9258959-9274-40db-a1d0-91f75734b331', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-848c8b12-8abc-49fb-8579-b1061590b62d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute name. Value: '42'. Wrong type. Expected '', got ''\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '9c3ae6ec-090d-44a1-a9fe-828e5a6c4494', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict', 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d30bbc57-bdfb-4ac9-a594-f6848bc7279c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'name': 'CUSTOM_DT1', 'uuid': '9c3ae6ec-090d-44a1-a9fe-828e5a6c4494', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict', 'priority': 10}], 'extra': {}}'. Value not a valid dict: not a dict\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '9d08c165-40c8-4e18-b0ec-afd2da0839ba', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10, 'foo': 'bar'}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-17e1c458-0b9f-4ce7-9883-42a82e9f5ef1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument template.steps: foo\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '580e24b9-3c19-4cad-84db-c160025ef6b0', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 'not a number'}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8e69b279-3030-4b20-870d-9e091ea68d57 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'name': 'CUSTOM_DT1', 'uuid': '580e24b9-3c19-4cad-84db-c160025ef6b0', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 'not a number'}], 'extra': {}}'. invalid literal for int() with base 10: 'not a number'\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'not-a-trait', 'uuid': 'aac823c4-df20-48cb-b2f9-1bb384eb2e55', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8a5999f3-1d46-4b73-964a-3ba1406e3b0d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template name must be a valid 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}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '3db30223-58b3-4112-af44-370e33830b05', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8c72318e-e38b-44ce-9ca0-312d0a5b4936 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute priority. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '98ae6a4f-8229-403e-8bf3-8682741011de', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a48549a0-ce34-4d73-80f0-c3af956bd2dc X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute step. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'HW_CPU_X86_VMX', 'uuid': '6cf85285-c3ac-49a0-8ef9-991be7979267', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/6cf85285-c3ac-49a0-8ef9-991be7979267 Openstack-Request-Id: req-ea3c25d5-8fe5-4308-ab32-a47616693549 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6cf85285-c3ac-49a0-8ef9-991be7979267", "name": "HW_CPU_X86_VMX", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/6cf85285-c3ac-49a0-8ef9-991be7979267", "rel": "self"}, {"href": "http://localhost/deploy_templates/6cf85285-c3ac-49a0-8ef9-991be7979267", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:18.449035+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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.TestListDrivers.test_drivers_type_filter_classic ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_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_event.TestPost.test_events_unsupported_api_version ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property ... ok ironic.tests.unit.api.controllers.v1.test_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_expose.TestExposedAPIMethodsCheckPolicy.test_driver_api_policy ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_driver_api_policy ... ok ironic.tests.unit.api.controllers.v1.test_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 ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach ... 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.TestAttachDetachVif.test_vif_detach_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestBIOS.test_get_one_bios_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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.TestDelete.test_delete_node_not_found_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource ... ok GET: /deploy_templates/dfcd72d4-8272-4e14-9f7c-f6bf844c46a9 {} GOT:{'uuid': 'dfcd72d4-8272-4e14-9f7c-f6bf844c46a9', 'name': 'CUSTOM_DT1', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'links': [{'href': 'http://localhost/v1/deploy_templates/dfcd72d4-8272-4e14-9f7c-f6bf844c46a9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/dfcd72d4-8272-4e14-9f7c-f6bf844c46a9', 'rel': 'bookmark'}], 'extra': {}, 'created_at': '2020-03-11T19:45:17.363561+00:00', 'updated_at': None} PATCH: /v1/deploy_templates/cfee2d2b-1066-4482-82cd-26907cd28bd3 [{'path': '/steps/0', 'value': {'interface': 'raid', 'step': 'create_configuration0', 'args': {}, 'priority': 10}, 'op': 'add'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'step': 'create_configuration1', 'args': {}, 'priority': 10}, 'op': 'add'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'step': 'create_configuration2', 'args': {}, 'priority': 10}, 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-614fcaa1-1de7-4a19-8352-bbbb76badaf7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "cfee2d2b-1066-4482-82cd-26907cd28bd3", "name": "CUSTOM_DT1", "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/cfee2d2b-1066-4482-82cd-26907cd28bd3", "rel": "self"}, {"href": "http://localhost/deploy_templates/cfee2d2b-1066-4482-82cd-26907cd28bd3", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:17.475529+00:00", "updated_at": null} PATCH: /v1/deploy_templates/eb9fb403-888e-4d34-b05a-97b8f327e71e [{'path': '/steps/0', 'op': 'replace', 'value': {'interface': 'foo', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7bf74b95-ae56-4478-acc5-d52c9e823311 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute interface. Value: 'foo'. Value should be one of: deploy, bios, management, power, raid\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/cd384f8d-6905-4025-b258-b592a0393c8a [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-3c44158f-93e4-4b8f-a94b-0403852f12d3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID cd384f8d-6905-4025-b258-b592a0393c8a already exists.\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/f4866e7b-6170-40b4-a304-c5d86deb15ad [{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ac790030-974e-4cb2-afff-0068f15810af X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: list assignment index out of range\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/f8efaae3-c865-4ffe-ae20-8ab77ea1be23 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-75692ac6-2c0f-44a4-930b-6ad06199f136 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "f8efaae3-c865-4ffe-ae20-8ab77ea1be23", "name": "CUSTOM_DT2", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/f8efaae3-c865-4ffe-ae20-8ab77ea1be23", "rel": "self"}, {"href": "http://localhost/deploy_templates/f8efaae3-c865-4ffe-ae20-8ab77ea1be23", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:17.779859+00:00", "updated_at": null} PATCH: /v1/deploy_templates/e7519170-fafe-4754-92eb-15d60e70e8dd [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} PATCH: /v1/deploy_templates/6b2e93db-b05f-4cb2-aff8-55c98b2e3146 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-30fb9a1a-6091-4460-8812-5b46956ccaeb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template name must be a valid 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}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'd00ee9eb-2895-4602-a6c9-da45a7ac2c0e', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '180a732b-d591-43ba-b0fc-6bf368a0a960', 'steps': [], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-79ce6826-9396-4d2b-bd69-8df1a867edd3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: No deploy steps specified. A deploy template must have at least one deploy step..\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '2675f733-8ad3-4d49-ae95-61f24ec510d2', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': 42} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-312e6e09-d6c8-4280-8333-3306c9629d43 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute template. Value: '{'name': 'CUSTOM_DT1', 'uuid': '2675f733-8ad3-4d49-ae95-61f24ec510d2', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': 42}'. Value not a valid dict: 42\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': None, 'uuid': 'b160a5b0-c84d-45d4-ba01-db7a88173c50', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5c4d1caa-d6af-4eb1-aa3c-d46a99123827 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Deploy template name cannot be None.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found ... ok ironic.tests.unit.api.controllers.v1.test_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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-685b82b4-ef4f-49a9-81d9-003d6904895a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e8ba9313-af7f-4e2f-93f9-1c9f4d0389f9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8d23494a-e04a-4ef9-a301-7f40572c472b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c01fc112-df6e-42f5-b756-0fe697a7dc03 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:21.404495+00:00'}]} GET: /v1/nodes/detail?associated=true {} GOT:{'nodes': [{'uuid': 'a908d75d-743d-44aa-b5a2-02045ba251e2', 'instance_uuid': 'ad2b51ba-b7d2-4ddb-9a14-72f9976fb513', '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/a908d75d-743d-44aa-b5a2-02045ba251e2', 'rel': 'self'}, {'href': 'http://localhost/nodes/a908d75d-743d-44aa-b5a2-02045ba251e2', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a908d75d-743d-44aa-b5a2-02045ba251e2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a908d75d-743d-44aa-b5a2-02045ba251e2/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:21.613160+00:00'}, {'uuid': 'fabcf122-f3f9-46d6-ab60-928c04372f42', 'instance_uuid': '2a255a44-8526-493c-aab6-1d5f965b5e3e', '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/fabcf122-f3f9-46d6-ab60-928c04372f42', 'rel': 'self'}, {'href': 'http://localhost/nodes/fabcf122-f3f9-46d6-ab60-928c04372f42', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/fabcf122-f3f9-46d6-ab60-928c04372f42/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fabcf122-f3f9-46d6-ab60-928c04372f42/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:21.627310+00:00'}, {'uuid': '038c4b98-36ca-4b51-9a65-db34a7f4c9c2', 'instance_uuid': '8858de25-3c0e-4a7f-9699-969a64a9b410', '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/038c4b98-36ca-4b51-9a65-db34a7f4c9c2', 'rel': 'self'}, {'href': 'http://localhost/nodes/038c4b98-36ca-4b51-9a65-db34a7f4c9c2', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/038c4b98-36ca-4b51-9a65-db34a7f4c9c2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/038c4b98-36ca-4b51-9a65-db34a7f4c9c2/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:21.640680+00:00'}, {'uuid': 'd96a24c9-34a6-4dea-9f32-32aebe55e3f0', 'instance_uuid': '2daf86fc-cd67-4156-b07a-2337ba728f9e', '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/d96a24c9-34a6-4dea-9f32-32aebe55e3f0', 'rel': 'self'}, {'href': 'http://localhost/nodes/d96a24c9-34a6-4dea-9f32-32aebe55e3f0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/d96a24c9-34a6-4dea-9f32-32aebe55e3f0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d96a24c9-34a6-4dea-9f32-32aebe55e3f0/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:21.650761+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_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_description_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault ... ok 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-4ecd444b-5513-410f-aadb-3c48d3207c61 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\", \"debuginfo\": null}"} POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-75323e3d-b54f-4a3e-bb95-181ba2adce68 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"return_key": "return_value"} GET: /v1/drivers?type=classic {} GOT:{'drivers': []} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:{'foo': 'description of foo'} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2f1fcde1-7cad-4b53-b772-f0378b8698e7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'valid.event'}]} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-81699c93-b5b9-432d-adfc-689741b47b3c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.unbind_port', 'UNKNOWN': 'EVENT_PROPERTY'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e28e850b-9f81-46d0-bd06-44495134467a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"UNKNOWN are invalid keys\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'c1dfed24-5d72-4cc0-a76c-d35e720986c2'} GOT:Response: 204 No Content Openstack-Request-Id: req-994762be-ca0a-43c6-a0cc-d07a10c49c47 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': '035d42f5-12d9-444b-9500-cb1c7a56d07c'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c5f52ff8-9e2e-4427-a57b-8ca797db5d8d X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/doesntexist/vifs/4c9ae3af-2646-4ef7-b403-c817e2eb0465 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bad4bae2-ea43-4b1e-9c91-e70e570b7438 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:{'vifs': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3af6d6fe-c7a4-466f-afe9-50300005301e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/foo/maintenance GOT:Response: 202 Accepted Openstack-Request-Id: req-d655da29-6cae-4a04-90f8-abafc3b63e49 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2edfdff0-5038-4bdc-bc0e-4ba2a2749dbf X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1a2e1f85-d6aa-4f38-9d6d-2071492f6f3d X-Openstack-Ironic-Api-Maximum-Version: 1.56 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?associated=true {} GOT:{'nodes': [{'uuid': '3f6161cd-baa5-4ec2-8219-23cea7abf89f', 'instance_uuid': 'e90f17df-3f6e-4187-a729-8e2042837a87', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3f6161cd-baa5-4ec2-8219-23cea7abf89f', 'rel': 'self'}, {'href': 'http://localhost/nodes/3f6161cd-baa5-4ec2-8219-23cea7abf89f', 'rel': 'bookmark'}]}, {'uuid': '8190cfff-09dd-4c5b-ab73-f869e2192eff', 'instance_uuid': '4912922a-93a2-4519-abc8-fa34c84db912', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8190cfff-09dd-4c5b-ab73-f869e2192eff', 'rel': 'self'}, {'href': 'http://localhost/nodes/8190cfff-09dd-4c5b-ab73-f869e2192eff', 'rel': 'bookmark'}]}, {'uuid': '2359986e-a549-4c4b-af31-76d7bac21fe5', 'instance_uuid': 'f03464f5-cada-45e2-9583-544ace1d1673', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2359986e-a549-4c4b-af31-76d7bac21fe5', 'rel': 'self'}, {'href': 'http://localhost/nodes/2359986e-a549-4c4b-af31-76d7bac21fe5', 'rel': 'bookmark'}]}, {'uuid': 'f4a383e4-97b4-490b-a7a5-9d92e780ca92', 'instance_uuid': '4565ef1f-a934-4d63-b5a8-e43bcd4a27fc', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f4a383e4-97b4-490b-a7a5-9d92e780ca92', 'rel': 'self'}, {'href': 'http://localhost/nodes/f4a383e4-97b4-490b-a7a5-9d92e780ca92', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=True {} GOT:{'nodes': [{'uuid': '3f6161cd-baa5-4ec2-8219-23cea7abf89f', 'instance_uuid': 'e90f17df-3f6e-4187-a729-8e2042837a87', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3f6161cd-baa5-4ec2-8219-23cea7abf89f', 'rel': 'self'}, {'href': 'http://localhost/nodes/3f6161cd-baa5-4ec2-8219-23cea7abf89f', 'rel': 'bookmark'}]}, {'uuid': '8190cfff-09dd-4c5b-ab73-f869e2192eff', 'instance_uuid': '4912922a-93a2-4519-abc8-fa34c84db912', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8190cfff-09dd-4c5b-ab73-f869e2192eff', 'rel': 'self'}, {'href': 'http://localhost/nodes/8190cfff-09dd-4c5b-ab73-f869e2192eff', 'rel': 'bookmark'}]}, {'uuid': '2359986e-a549-4c4b-af31-76d7bac21fe5', 'instance_uuid': 'f03464f5-cada-45e2-9583-544ace1d1673', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2359986e-a549-4c4b-af31-76d7bac21fe5', 'rel': 'self'}, {'href': 'http://localhost/nodes/2359986e-a549-4c4b-af31-76d7bac21fe5', 'rel': 'bookmark'}]}, {'uuid': 'f4a383e4-97b4-490b-a7a5-9d92e780ca92', 'instance_uuid': '4565ef1f-a934-4d63-b5a8-e43bcd4a27fc', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f4a383e4-97b4-490b-a7a5-9d92e780ca92', 'rel': 'self'}, {'href': 'http://localhost/nodes/f4a383e4-97b4-490b-a7a5-9d92e780ca92', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed ... ok GET: /v1/nodes/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-46182771-4ce8-45b8-ac7f-9c37b21d742b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0b9afe70-ae07-4f58-a29e-0ccbfdb23db9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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=conductor {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'conductor': 'fake.conductor'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c2d8c64c-22ce-4130-960e-f4778658887d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'network_interface': None} GET: /v1/nodes?conductor=like.shadows {} GOT:{'nodes': []} GET: /v1/nodes?conductor=like.shadows {} GOT:{'nodes': []} GET: /v1/nodes?conductor=fake.conductor {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6030ff93-4889-42a9-95b6-fb3b5517d08a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Some unexpected thing happened\", \"debuginfo\": null}"} GET: /v1/nodes?fault=power failure {} GOT:{'nodes': [{'uuid': '3857b630-4552-471e-aa69-2b2c396efb16', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3857b630-4552-471e-aa69-2b2c396efb16', 'rel': 'self'}, {'href': 'http://localhost/nodes/3857b630-4552-471e-aa69-2b2c396efb16', 'rel': 'bookmark'}]}]} GET: /v1/nodes?fault=clean failure {} GOT:{'nodes': [{'uuid': '1e5a6398-392c-48b8-9735-bf96b1b625a5', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?fault=power failure {} GOT:{'nodes': [{'uuid': '3857b630-4552-471e-aa69-2b2c396efb16', '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/3857b630-4552-471e-aa69-2b2c396efb16', 'rel': 'self'}, {'href': 'http://localhost/nodes/3857b630-4552-471e-aa69-2b2c396efb16', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/3857b630-4552-471e-aa69-2b2c396efb16/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/3857b630-4552-471e-aa69-2b2c396efb16/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/3857b630-4552-471e-aa69-2b2c396efb16/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/3857b630-4552-471e-aa69-2b2c396efb16/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/3857b630-4552-471e-aa69-2b2c396efb16/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/3857b630-4552-471e-aa69-2b2c396efb16/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/3857b630-4552-471e-aa69-2b2c396efb16/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/3857b630-4552-471e-aa69-2b2c396efb16/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:20.802038+00:00'}]} GET: /v1/nodes/detail?fault=clean failure {} GOT:{'nodes': [{'uuid': '1e5a6398-392c-48b8-9735-bf96b1b625a5', '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/1e5a6398-392c-48b8-9735-bf96b1b625a5', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e5a6398-392c-48b8-9735-bf96b1b625a5/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:20.812467+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_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_resource_class_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields ... ok POST: /v1/deploy_templates {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '1702116f-acb5-4d78-a2c9-f1d4496dbc32', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/1702116f-acb5-4d78-a2c9-f1d4496dbc32 Openstack-Request-Id: req-324783d3-529c-402c-92bf-c71c5071e7ba X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1702116f-acb5-4d78-a2c9-f1d4496dbc32", "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}], "links": [{"href": "http://localhost/v1/deploy_templates/1702116f-acb5-4d78-a2c9-f1d4496dbc32", "rel": "self"}, {"href": "http://localhost/deploy_templates/1702116f-acb5-4d78-a2c9-f1d4496dbc32", "rel": "bookmark"}], "extra": {}, "created_at": "2020-03-11T19:45:18.269758+00:00", "updated_at": null} POST: /v1/deploy_templates {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'fb81e09f-370c-4b9a-9d9d-2b58cad97f55', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-18b5a943-b499-4fa8-a314-93915b1b0879 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template name must be a valid 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}"} POST: /v1/deploy_templates {'uuid': '51acebe2-5aa9-468b-8106-46374ef14d2a', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ae9c0330-554a-4344-92d7-2d17191e3ec8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute name. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '398b3f85-fe49-4182-a167-5bfc4718f2de', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '0'}, 'priority': 0}, {'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '1'}, 'priority': 1}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4ef42e13-f2d2-4347-913d-73e36c3a2aed X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A deploy template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} 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-52dd10a8-fd43-4901-8557-d4a0ddc0aceb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null GET: /v1/drivers?detail=False {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-29cf940a-d908-4390-8d1d-42cc2aeccc05 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} GET: /v1/drivers/nope {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b3333a82-e15b-44f8-a933-22f8d2958970 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/properties {} GOT:{} GET: /drivers/fake-hardware-type/properties {} GOT:{} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_event.TestPost.test_events_invalid_event ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event ... ok GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '95a13c55-bb2b-4a56-bf66-2a672a937477', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/95a13c55-bb2b-4a56-bf66-2a672a937477', 'rel': 'self'}, {'href': 'http://localhost/nodes/95a13c55-bb2b-4a56-bf66-2a672a937477', 'rel': 'bookmark'}]}, {'uuid': 'ce829256-bc8f-42bd-a03f-8d7c9b146b43', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ce829256-bc8f-42bd-a03f-8d7c9b146b43', 'rel': 'self'}, {'href': 'http://localhost/nodes/ce829256-bc8f-42bd-a03f-8d7c9b146b43', 'rel': 'bookmark'}]}, {'uuid': '8c3c9ac4-f286-4332-8017-1cad683072ae', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8c3c9ac4-f286-4332-8017-1cad683072ae', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c3c9ac4-f286-4332-8017-1cad683072ae', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=3&marker=8c3c9ac4-f286-4332-8017-1cad683072ae'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f13bb5ad-d5f1-48c4-afdc-5e2e955b8b74 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {} 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?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cc84bdfe-963b-4319-89cc-5cf852f53503 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=boot_interface,console_interface,deploy_interface,inspect_interface,management_interface,power_interface,raid_interface,vendor_interface {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=automated_clean {} 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'}], 'automated_clean': True} GET: /v1/nodes?fields=uuid,instance_info {} GOT:{'nodes': [{'uuid': '79fa69ce-3d27-4a9f-9cab-89435a788bb5', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/79fa69ce-3d27-4a9f-9cab-89435a788bb5', 'rel': 'self'}, {'href': 'http://localhost/nodes/79fa69ce-3d27-4a9f-9cab-89435a788bb5', 'rel': 'bookmark'}]}, {'uuid': '7af84501-2aac-42cf-baac-9f9716d2700b', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/7af84501-2aac-42cf-baac-9f9716d2700b', 'rel': 'self'}, {'href': 'http://localhost/nodes/7af84501-2aac-42cf-baac-9f9716d2700b', 'rel': 'bookmark'}]}, {'uuid': '65f7953a-4fb8-411f-ac06-9060b625fafd', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/65f7953a-4fb8-411f-ac06-9060b625fafd', 'rel': 'self'}, {'href': 'http://localhost/nodes/65f7953a-4fb8-411f-ac06-9060b625fafd', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a9ebd0e4-28f3-44b9-bad1-d9a02f24ac5b X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-976bf26b-53d5-4e0c-8165-c9b7665b12e7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/nodes?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4e8f14dc-36b1-4291-bed6-4410d92611d1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-59ddfc8e-7b9e-4cd5-a676-fb332b3b94d0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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?driver=test {} GOT:{'nodes': []} GET: /v1/nodes/detail?resource_class=test {} GOT:{'nodes': []} GET: /v1/nodes?provision_state=test {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ed10b65f-70c6-4554-8785-7f27b08d016e X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/detail?resource_class=foo {} GOT:{'nodes': [{'uuid': 'b5a56027-5dad-499a-90bb-44c054f0a920', '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/b5a56027-5dad-499a-90bb-44c054f0a920', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5a56027-5dad-499a-90bb-44c054f0a920', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/b5a56027-5dad-499a-90bb-44c054f0a920/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5a56027-5dad-499a-90bb-44c054f0a920/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b5a56027-5dad-499a-90bb-44c054f0a920/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5a56027-5dad-499a-90bb-44c054f0a920/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:22.718465+00:00'}]} GET: /v1/nodes {} GOT:{'nodes': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:{'boot_device': 'pxe', 'persistent': True} GET: /v1/nodes?fields=name&limit=2 {} GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/d9e4db22-2f09-4af4-99c7-17192e15a703', 'rel': 'self'}, {'href': 'http://localhost/nodes/d9e4db22-2f09-4af4-99c7-17192e15a703', 'rel': 'bookmark'}]}, {'name': None, 'links': [{'href': 'http://localhost/v1/nodes/c24d5b38-25de-44c1-87c7-28984aa2278a', 'rel': 'self'}, {'href': 'http://localhost/nodes/c24d5b38-25de-44c1-87c7-28984aa2278a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=c24d5b38-25de-44c1-87c7-28984aa2278a'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} GET: /v1/nodes/spam/states/console {} GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:{'console_enabled': False, 'console_info': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-010c0b2e-fa4a-435c-9a90-01f8d213ec48 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=description {} 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'}], 'description': 'useful piece'} GET: /v1/nodes?conductor=rocky.rocks {} GOT:{'nodes': []} GET: /v1/nodes?conductor=fake.conductor {} GOT:{'nodes': [{'uuid': '205b3518-d599-40fb-8f99-6394cac354e4', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/205b3518-d599-40fb-8f99-6394cac354e4', 'rel': 'self'}, {'href': 'http://localhost/nodes/205b3518-d599-40fb-8f99-6394cac354e4', 'rel': 'bookmark'}]}, {'uuid': '5877396a-7828-4bd4-b63a-df6536ee1646', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5877396a-7828-4bd4-b63a-df6536ee1646', 'rel': 'self'}, {'href': 'http://localhost/nodes/5877396a-7828-4bd4-b63a-df6536ee1646', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor=fake.conductor {} GOT:{'nodes': [{'uuid': '5877396a-7828-4bd4-b63a-df6536ee1646', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5877396a-7828-4bd4-b63a-df6536ee1646', 'rel': 'self'}, {'href': 'http://localhost/nodes/5877396a-7828-4bd4-b63a-df6536ee1646', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor=rocky.rocks {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ca2931c6-02d6-43d0-98eb-c5fc33609eeb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.49\", \"debuginfo\": null}"} GET: /v1/nodes?description_contains=cat {} GOT:{'nodes': [{'uuid': '6a1fa346-934e-46a9-9833-14b922765ea4', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6a1fa346-934e-46a9-9833-14b922765ea4', 'rel': 'self'}, {'href': 'http://localhost/nodes/6a1fa346-934e-46a9-9833-14b922765ea4', 'rel': 'bookmark'}]}]} GET: /v1/nodes?description_contains=dog {} GOT:{'nodes': [{'uuid': 'df91c0cf-d060-4476-b7da-2083bca066f2', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/df91c0cf-d060-4476-b7da-2083bca066f2', 'rel': 'self'}, {'href': 'http://localhost/nodes/df91c0cf-d060-4476-b7da-2083bca066f2', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=ipmi {} GOT:{'nodes': [{'uuid': '9a6f60d6-2b6d-4d2b-a3d0-5aca4871fceb', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9a6f60d6-2b6d-4d2b-a3d0-5aca4871fceb', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a6f60d6-2b6d-4d2b-a3d0-5aca4871fceb', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=fake-hardware {} GOT:{'nodes': [{'uuid': '0c1419d4-bb9a-4d56-8f4a-b55bb7aacc5f', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0c1419d4-bb9a-4d56-8f4a-b55bb7aacc5f', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c1419d4-bb9a-4d56-8f4a-b55bb7aacc5f', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2e0e016b-de9d-44cb-81fb-e5b448b254f5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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=somefake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d63f046-1e19-4934-a702-8f585b011257 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-3e6cdf3e-3626-4c8a-8cec-4b475ae80f3b X-Openstack-Ironic-Api-Maximum-Version: 1.56 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?owner=fred {} GOT:{'nodes': [{'uuid': '9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1', 'rel': 'bookmark'}]}]} GET: /v1/nodes?owner=bob {} GOT:{'nodes': [{'uuid': '7d274c85-36d1-4638-bceb-6a96a91fb610', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610', 'rel': 'self'}, {'href': 'http://localhost/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?owner=fred {} GOT:{'nodes': [{'uuid': '9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1', '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/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c2dd078-2c1a-4cee-9086-4ed7bd2c48a1/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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': 'fred', 'updated_at': None, 'created_at': '2020-03-11T19:45:23.753084+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.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_nodes_by_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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_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_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 GET: /v1/nodes?provision_state=test {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-015684b1-e1cf-4753-a42b-b6c93d5a3c57 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\", \"debuginfo\": null}"} GET: /v1/nodes?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ba545e69-db7b-4e9a-80dc-9d6b717db616 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:21.265318+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=protected {} 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'}], 'protected': True} 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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:21.453091+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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': 'useful piece', 'updated_at': None, 'created_at': '2020-03-11T19:45:21.453091+00:00'} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type/properties {} GET: /drivers/fake-hardware-type/properties {} GET: /v1/drivers?type=dynamic {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}]}]} GET: /v1/drivers {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}]}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /v1/drivers?detail=True {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': None, 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': [], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}]} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} GET: /v1/drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} GET: /drivers/fake-hardware-type-2 {} GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} POST: /v1/events {'events': [{'event': 'invalid.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-148682e5-e05f-4461-bd8c-cd62ffb482a6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"invalid.event is not one of valid events: network.bind_port, network.delete_port, network.unbind_port.\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-dd84e5cc-bfa6-49fe-94c9-94c3b10f34e5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address ... ok ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_conductor_api_policy ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_conductor_api_policy ... 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_port_api_policy ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_port_api_policy ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value ... ok ironic.tests.unit.api.controllers.v1.test_node.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_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.TestCheckCleanSteps.test__check_clean_steps_step_not_dict ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_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 ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version ... ok GET: /v1/nodes/detail?resource_class=bar {} GOT:{'nodes': [{'uuid': '101d6a42-9b86-4861-a55b-88ed43461e89', '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/101d6a42-9b86-4861-a55b-88ed43461e89', 'rel': 'self'}, {'href': 'http://localhost/nodes/101d6a42-9b86-4861-a55b-88ed43461e89', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/101d6a42-9b86-4861-a55b-88ed43461e89/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/101d6a42-9b86-4861-a55b-88ed43461e89/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/101d6a42-9b86-4861-a55b-88ed43461e89/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/101d6a42-9b86-4861-a55b-88ed43461e89/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:22.731113+00:00'}]} GET: /v1/nodes?traits=CUSTOM_TRAIT_1 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7e042e3b-295f-4724-b2a6-2a8d9838e676 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=extra,instance_info {} GOT:{'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'extra': {}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]} GET: /v1/nodes/test.1 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'test.1', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:23.034591+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d2c733fc-9e25-47c6-b36e-4944642030f9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/spam/management/boot_device/supported {} GOT:{'supported_boot_devices': ['pxe']} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4471657f-95d4-4248-b680-45e6929461b4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:23.413878+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:23.413878+00:00'}]} GET: /v1/nodes/detail?owner=bob {} GOT:{'nodes': [{'uuid': '7d274c85-36d1-4638-bceb-6a96a91fb610', '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/7d274c85-36d1-4638-bceb-6a96a91fb610', 'rel': 'self'}, {'href': 'http://localhost/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7d274c85-36d1-4638-bceb-6a96a91fb610/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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': 'bob', 'updated_at': None, 'created_at': '2020-03-11T19:45:23.763062+00:00'}]} GET: /v1/nodes?owner=fred {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5b54b500-d3de-4413-b92b-67a3d76c633f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"} GET: /v1/nodes/detail?owner=fred {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-600b47f0-fd74-4e13-998f-6b18a298c1cb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"} GET: /v1/nodes?provision_state=available {} GOT:{'nodes': [{'uuid': '8cc6e7c1-df31-4ae5-909a-791956482b62', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8cc6e7c1-df31-4ae5-909a-791956482b62', 'rel': 'self'}, {'href': 'http://localhost/nodes/8cc6e7c1-df31-4ae5-909a-791956482b62', 'rel': 'bookmark'}]}]} GET: /v1/nodes?provision_state=deploying {} GOT:{'nodes': [{'uuid': '52132879-62f7-4214-b2ba-0a79ed07b669', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'deploying', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/52132879-62f7-4214-b2ba-0a79ed07b669', 'rel': 'self'}, {'href': 'http://localhost/nodes/52132879-62f7-4214-b2ba-0a79ed07b669', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=foo {} GOT:{'nodes': [{'uuid': '8687efd3-5443-430c-b14a-b1c38ed254c3', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8687efd3-5443-430c-b14a-b1c38ed254c3', 'rel': 'self'}, {'href': 'http://localhost/nodes/8687efd3-5443-430c-b14a-b1c38ed254c3', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=bar {} GOT:{'nodes': [{'uuid': '640f27b4-ca5e-414c-b962-53a91fd2639d', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/640f27b4-ca5e-414c-b962-53a91fd2639d', 'rel': 'self'}, {'href': 'http://localhost/nodes/640f27b4-ca5e-414c-b962-53a91fd2639d', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fc60e15e-fb94-4442-adca-a1f8ec873e99 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"} GET: /v1/nodes/detail?traits=CUSTOM_TRAIT_1 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fca0121d-fc9f-422b-9829-3280032f454b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=driver_info {} GOT:{'driver_info': {'fake_password': '******'}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]} GET: /v1/nodes/node.json.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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.489832+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class ... ok 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_links ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state ... ok POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': 'DEVICE_ID_SHOULD_BE_UUID', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a4d7abcf-3d4c-4101-a2d0-9532fd1ba1bf X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Event validation failure for device_id. Expected a UUID but received DEVICE_ID_SHOULD_BE_UUID.\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'INVALID_MAC_ADDRESS', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9dbb7612-f4d9-467c-b715-b6bf81c4d8a8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Event validation failure for mac_address. Expected a MAC address but received INVALID_MAC_ADDRESS.\", \"debuginfo\": null}"} POST: /v1/nodes/node-39/vifs {'id': '66d01cd1-a88a-4359-a9dd-81b15a67d925'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-529225d2-6388-4652-ae8d-8a499962112f X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-2e132c97-2eaa-4ad5-8928-c51bcdc3ab73 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received invalid%id^.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '19eed999-ad12-460a-b58a-8b644318fb1b'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0a32262e-c3a3-4793-88c8-1c6562892355 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} POST: /v1/nodes/doesntexist/vifs {'id': 'b7b20472-f9d1-413a-97b9-7b429c38b63c'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-92fea145-328c-41a8-b0e1-aa16431ee040 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-214fe18f-1354-4617-9301-c85086f0ad10 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is associated with instance aaaaaaaa-1111-bbbb-2222-cccccccccccc.\", \"debuginfo\": null}"} GET: /v1/nodes?associated=blah {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9a424856-2178-4cf4-abc2-926f70f04ea5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {} 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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:21.213392+00:00'}]} GET: /v1/nodes?detail=False&fields=name {} GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes/spam/management/boot_device {} GOT:{'boot_device': 'pxe', 'persistent': True} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'conductor_group': ''} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1904c8a8-4d06-4ef0-bea2-234613d08269 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.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_nodes_by_fault_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:21.568772+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:21.568772+00:00'} GET: /v1/nodes/36645544-73b9-4b35-b857-994616efb74c {} GOT:{'uuid': '36645544-73b9-4b35-b857-994616efb74c', '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/36645544-73b9-4b35-b857-994616efb74c', 'rel': 'self'}, {'href': 'http://foo/nodes/36645544-73b9-4b35-b857-994616efb74c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/36645544-73b9-4b35-b857-994616efb74c/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/36645544-73b9-4b35-b857-994616efb74c/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:21.696681+00:00'} GET: /v1/nodes/36645544-73b9-4b35-b857-994616efb74c {} GOT:{'uuid': '36645544-73b9-4b35-b857-994616efb74c', '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/36645544-73b9-4b35-b857-994616efb74c', 'rel': 'self'}, {'href': 'http://foo/nodes/36645544-73b9-4b35-b857-994616efb74c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/36645544-73b9-4b35-b857-994616efb74c/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/36645544-73b9-4b35-b857-994616efb74c/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:21.696681+00:00'} GET: /nodes/36645544-73b9-4b35-b857-994616efb74c {} GOT:{'uuid': '36645544-73b9-4b35-b857-994616efb74c', '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/36645544-73b9-4b35-b857-994616efb74c', 'rel': 'self'}, {'href': 'http://foo/nodes/36645544-73b9-4b35-b857-994616efb74c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/36645544-73b9-4b35-b857-994616efb74c/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/36645544-73b9-4b35-b857-994616efb74c/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:21.696681+00:00'} GET: /v1/nodes?associated=true&maintenance=false {} GOT:{'nodes': [{'uuid': 'fc09a5fe-3200-49cf-bfe8-f423a59c97b5', 'instance_uuid': '9e959b2e-d1f9-4235-8653-262ff7fb9b89', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/fc09a5fe-3200-49cf-bfe8-f423a59c97b5', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc09a5fe-3200-49cf-bfe8-f423a59c97b5', 'rel': 'bookmark'}]}, {'uuid': '6530cfd6-6166-46be-8ea3-52a128bb445a', 'instance_uuid': 'ef6a11a7-c0e8-4c15-94c3-a2408b3768ee', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6530cfd6-6166-46be-8ea3-52a128bb445a', 'rel': 'self'}, {'href': 'http://localhost/nodes/6530cfd6-6166-46be-8ea3-52a128bb445a', 'rel': 'bookmark'}]}, {'uuid': '9de3fac8-9898-4407-b14f-65c162c0bf46', 'instance_uuid': 'faf84b50-a2f3-43da-bed2-1bb5565dff2b', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9de3fac8-9898-4407-b14f-65c162c0bf46', 'rel': 'self'}, {'href': 'http://localhost/nodes/9de3fac8-9898-4407-b14f-65c162c0bf46', 'rel': 'bookmark'}]}, {'uuid': '7576f699-741a-4ba7-a014-7b5870bc4382', 'instance_uuid': '368b0433-cd2f-42a6-a79e-611dd10353e2', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7576f699-741a-4ba7-a014-7b5870bc4382', 'rel': 'self'}, {'href': 'http://localhost/nodes/7576f699-741a-4ba7-a014-7b5870bc4382', '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_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_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_next_link_with_association_with_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail ... ok GET: /v1/nodes?associated=true&maintenance=true {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '8fb43f27-0198-4724-bbca-aa90d1340af4', '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': '8fb43f27-0198-4724-bbca-aa90d1340af4', 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=true&maintenance=blah {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8328b899-db98-45ba-bc16-5d9e03cbae09 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute maintenance. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '69fd14c1-3528-4c57-99fc-b54a41e74159', 'instance_uuid': None, 'name': 'node-0', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/69fd14c1-3528-4c57-99fc-b54a41e74159', 'rel': 'self'}, {'href': 'http://localhost/nodes/69fd14c1-3528-4c57-99fc-b54a41e74159', 'rel': 'bookmark'}]}, {'uuid': '51f96b77-e873-40a5-a623-e94f0a9cc88e', 'instance_uuid': None, 'name': 'node-1', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/51f96b77-e873-40a5-a623-e94f0a9cc88e', 'rel': 'self'}, {'href': 'http://localhost/nodes/51f96b77-e873-40a5-a623-e94f0a9cc88e', 'rel': 'bookmark'}]}, {'uuid': 'a1bc98b4-7490-4c9d-8d7c-b63bce42999f', 'instance_uuid': None, 'name': 'node-2', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a1bc98b4-7490-4c9d-8d7c-b63bce42999f', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1bc98b4-7490-4c9d-8d7c-b63bce42999f', 'rel': 'bookmark'}]}, {'uuid': '2068fe55-d001-4a22-b54f-6bc19f2c8ad4', 'instance_uuid': None, 'name': 'node-3', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2068fe55-d001-4a22-b54f-6bc19f2c8ad4', 'rel': 'self'}, {'href': 'http://localhost/nodes/2068fe55-d001-4a22-b54f-6bc19f2c8ad4', 'rel': 'bookmark'}]}, {'uuid': '96cafc5d-addb-40c2-ae35-46ab0acb76e9', 'instance_uuid': None, 'name': 'node-4', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/96cafc5d-addb-40c2-ae35-46ab0acb76e9', 'rel': 'self'}, {'href': 'http://localhost/nodes/96cafc5d-addb-40c2-ae35-46ab0acb76e9', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?limit=3&associated=true {} GOT:{'nodes': [{'uuid': '01af6436-ad54-4fe2-9d48-f54fa1435cfb', 'instance_uuid': '5ffcf884-5f9c-492c-906d-68095bd36c51', '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/01af6436-ad54-4fe2-9d48-f54fa1435cfb', 'rel': 'self'}, {'href': 'http://localhost/nodes/01af6436-ad54-4fe2-9d48-f54fa1435cfb', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/01af6436-ad54-4fe2-9d48-f54fa1435cfb/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/01af6436-ad54-4fe2-9d48-f54fa1435cfb/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:22.578734+00:00'}, {'uuid': 'ebefa2c4-a3f8-4d51-a721-d9d234f52e95', 'instance_uuid': '49976582-edfe-41ff-b642-cf1d2ed4e028', '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/ebefa2c4-a3f8-4d51-a721-d9d234f52e95', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebefa2c4-a3f8-4d51-a721-d9d234f52e95', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ebefa2c4-a3f8-4d51-a721-d9d234f52e95/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebefa2c4-a3f8-4d51-a721-d9d234f52e95/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:22.587576+00:00'}, {'uuid': '8b051cf1-9abb-4b80-a33b-0698812d563a', 'instance_uuid': '00c91de1-c6d3-4774-99c4-c6a17e0f1e10', '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/8b051cf1-9abb-4b80-a33b-0698812d563a', 'rel': 'self'}, {'href': 'http://localhost/nodes/8b051cf1-9abb-4b80-a33b-0698812d563a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8b051cf1-9abb-4b80-a33b-0698812d563a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8b051cf1-9abb-4b80-a33b-0698812d563a/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:22.596377+00:00'}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=8b051cf1-9abb-4b80-a33b-0698812d563a'} 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': '', 'automated_clean': False, 'updated_at': None, 'created_at': '2020-03-11T19:45:22.749316+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid ... ok GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:23.665786+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': ['CUSTOM_1'], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.665786+00:00'}]} GET: /v1/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729 {} GOT:{'uuid': '642e5745-0d02-4d1f-88b2-0e2d5d447729', '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/642e5745-0d02-4d1f-88b2-0e2d5d447729', 'rel': 'self'}, {'href': 'http://localhost/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.815473+00:00'} GET: /v1/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729 {} GOT:{'uuid': '642e5745-0d02-4d1f-88b2-0e2d5d447729', '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/642e5745-0d02-4d1f-88b2-0e2d5d447729', 'rel': 'self'}, {'href': 'http://localhost/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.815473+00:00'} GET: /nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729 {} GOT:{'uuid': '642e5745-0d02-4d1f-88b2-0e2d5d447729', '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/642e5745-0d02-4d1f-88b2-0e2d5d447729', 'rel': 'self'}, {'href': 'http://localhost/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/642e5745-0d02-4d1f-88b2-0e2d5d447729/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.815473+00:00'} GET: /v1/nodes?maintenance=true {} GOT:{'nodes': [{'uuid': '7a5c68a3-0f26-4fb3-9cb4-b17778e1a422', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/7a5c68a3-0f26-4fb3-9cb4-b17778e1a422', 'rel': 'self'}, {'href': 'http://localhost/nodes/7a5c68a3-0f26-4fb3-9cb4-b17778e1a422', 'rel': 'bookmark'}]}, {'uuid': '79e1d118-617e-47d3-8863-49026c03a275', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/79e1d118-617e-47d3-8863-49026c03a275', 'rel': 'self'}, {'href': 'http://localhost/nodes/79e1d118-617e-47d3-8863-49026c03a275', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=allocation_uuid {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'allocation_uuid': '2dc9535a-fbdf-4238-a8da-bb8daa390274'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:24.622991+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': '2015-03-18T19:20:00+00:00', 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:24.622991+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:24.678476+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:24.678476+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': '2020-03-11T19:45:24.734051+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.734051+00:00'}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_node_by_instance_uuid_wrong_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_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, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2020-03-11T19:45:22.844882+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': '', 'automated_clean': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:22.844882+00:00'} GET: /v1/nodes?instance_uuid=3fc5b86e-92bc-49a7-8b84-f6c20f58156b {} GOT:{'nodes': [{'uuid': 'ef3fb20e-e7be-4ee0-a843-eed2f9a16689', 'instance_uuid': '3fc5b86e-92bc-49a7-8b84-f6c20f58156b', 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ef3fb20e-e7be-4ee0-a843-eed2f9a16689', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef3fb20e-e7be-4ee0-a843-eed2f9a16689', 'rel': 'bookmark'}]}]} GET: /v1/nodes?instance_uuid=fake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-70ae61e2-fbc5-468f-a511-bd487edc9151 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute instance_uuid. Value: 'fake'. unable to convert to uuid. Error: Expected a UUID but received fake.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'inspecting', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.189894+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'inspect wait', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.189894+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 GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fe3074cb-ed65-4278-8188-6ba0f68e8fc8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?conductor_group=group1 {} GOT:{'nodes': [{'uuid': 'b20f899a-5682-4a93-80fd-664264125a7e', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b20f899a-5682-4a93-80fd-664264125a7e', 'rel': 'self'}, {'href': 'http://localhost/nodes/b20f899a-5682-4a93-80fd-664264125a7e', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor_group=group2 {} GOT:{'nodes': [{'uuid': '0961eaed-6544-412d-a97e-82884c171a99', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0961eaed-6544-412d-a97e-82884c171a99', 'rel': 'self'}, {'href': 'http://localhost/nodes/0961eaed-6544-412d-a97e-82884c171a99', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?conductor_group=group1 {} GOT:{'nodes': [{'uuid': 'b20f899a-5682-4a93-80fd-664264125a7e', '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/b20f899a-5682-4a93-80fd-664264125a7e', 'rel': 'self'}, {'href': 'http://localhost/nodes/b20f899a-5682-4a93-80fd-664264125a7e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/b20f899a-5682-4a93-80fd-664264125a7e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b20f899a-5682-4a93-80fd-664264125a7e/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b20f899a-5682-4a93-80fd-664264125a7e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b20f899a-5682-4a93-80fd-664264125a7e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b20f899a-5682-4a93-80fd-664264125a7e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b20f899a-5682-4a93-80fd-664264125a7e/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b20f899a-5682-4a93-80fd-664264125a7e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b20f899a-5682-4a93-80fd-664264125a7e/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': 'group1', 'updated_at': None, 'created_at': '2020-03-11T19:45:21.868472+00:00'}]} GET: /v1/nodes/detail?conductor_group=group2 {} GOT:{'nodes': [{'uuid': '0961eaed-6544-412d-a97e-82884c171a99', '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/0961eaed-6544-412d-a97e-82884c171a99', 'rel': 'self'}, {'href': 'http://localhost/nodes/0961eaed-6544-412d-a97e-82884c171a99', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/0961eaed-6544-412d-a97e-82884c171a99/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0961eaed-6544-412d-a97e-82884c171a99/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0961eaed-6544-412d-a97e-82884c171a99/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0961eaed-6544-412d-a97e-82884c171a99/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0961eaed-6544-412d-a97e-82884c171a99/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0961eaed-6544-412d-a97e-82884c171a99/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0961eaed-6544-412d-a97e-82884c171a99/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0961eaed-6544-412d-a97e-82884c171a99/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': 'group2', 'updated_at': None, 'created_at': '2020-03-11T19:45:21.880088+00:00'}]} GET: /v1/nodes?fault=power failure {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-76584bec-5dfd-43d0-af42-4357a66a9834 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-2d20aee6-4c0e-42d2-a914-51b1bf1c0776 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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?resource_class=test {} GOT:{'nodes': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:22.483235+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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 GET: /v1/nodes?maintenance=false {} GOT:{'nodes': [{'uuid': '03b1f5d7-849d-4e89-9278-0307fbcfce46', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/03b1f5d7-849d-4e89-9278-0307fbcfce46', 'rel': 'self'}, {'href': 'http://localhost/nodes/03b1f5d7-849d-4e89-9278-0307fbcfce46', 'rel': 'bookmark'}]}, {'uuid': '63010c9e-fe2b-4d68-be54-9c4310dc52c4', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/63010c9e-fe2b-4d68-be54-9c4310dc52c4', 'rel': 'self'}, {'href': 'http://localhost/nodes/63010c9e-fe2b-4d68-be54-9c4310dc52c4', 'rel': 'bookmark'}]}, {'uuid': '67a85a34-86f9-490e-9302-a052948bc470', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/67a85a34-86f9-490e-9302-a052948bc470', 'rel': 'self'}, {'href': 'http://localhost/nodes/67a85a34-86f9-490e-9302-a052948bc470', 'rel': 'bookmark'}]}]} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '140ae4c6-bdbc-41e5-969d-c37be0605314', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/140ae4c6-bdbc-41e5-969d-c37be0605314', 'rel': 'self'}, {'href': 'http://localhost/nodes/140ae4c6-bdbc-41e5-969d-c37be0605314', 'rel': 'bookmark'}]}, {'uuid': '954520a0-c017-4831-b50d-7da85fb1ee8f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/954520a0-c017-4831-b50d-7da85fb1ee8f', 'rel': 'self'}, {'href': 'http://localhost/nodes/954520a0-c017-4831-b50d-7da85fb1ee8f', 'rel': 'bookmark'}]}, {'uuid': '1caa4f2b-0b95-418e-9564-907e0ea8f71e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1caa4f2b-0b95-418e-9564-907e0ea8f71e', 'rel': 'self'}, {'href': 'http://localhost/nodes/1caa4f2b-0b95-418e-9564-907e0ea8f71e', 'rel': 'bookmark'}]}, {'uuid': '7332702b-8715-442d-b182-4d09025e4f65', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7332702b-8715-442d-b182-4d09025e4f65', 'rel': 'self'}, {'href': 'http://localhost/nodes/7332702b-8715-442d-b182-4d09025e4f65', 'rel': 'bookmark'}]}, {'uuid': '847a53ab-0d66-4833-b0c2-7700beecd297', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/847a53ab-0d66-4833-b0c2-7700beecd297', 'rel': 'self'}, {'href': 'http://localhost/nodes/847a53ab-0d66-4833-b0c2-7700beecd297', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.156125+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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'updated_at': None, 'created_at': '2020-03-11T19:45:24.156125+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.210395+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:23.317852+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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:23.429389+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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': 'akindofmagic', 'updated_at': None, 'created_at': '2020-03-11T19:45:23.540851+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '2000-01-01T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error', 'raid_config': {'foo': 'bar'}, 'target_raid_config': {'foo': 'bar'}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:23.808823+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_one ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.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.TestPatch.test__update_changed_fields_lowers_conductor_group ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group ... ok 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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:22.573599+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=owner {} 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'}], 'owner': 'fred'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'storage_interface': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:{'supported_boot_devices': ['pxe']} GET: /v1/nodes/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?fields=traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-909361c9-b882-4f26-9823-de0859324bbd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.090468+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': '2020-03-11T19:45:23.090468+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.230157+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'foo': 'bar'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.230157+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name ... ok GET: /v1/nodes?instance_uuid=f8db9c00-02de-4acd-8594-dcea3212dbba {} GOT:{'nodes': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.830942+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2020-03-11T19:45:24.830942+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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.973326+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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'updated_at': None, 'created_at': '2020-03-11T19:45:25.096318+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.210395+00:00'} GET: /v1/nodes/fc85b442-8b84-448c-8e80-338ed322d352 {} GOT:{'uuid': 'fc85b442-8b84-448c-8e80-338ed322d352', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'active', '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/fc85b442-8b84-448c-8e80-338ed322d352', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc85b442-8b84-448c-8e80-338ed322d352', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/fc85b442-8b84-448c-8e80-338ed322d352/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc85b442-8b84-448c-8e80-338ed322d352/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/fc85b442-8b84-448c-8e80-338ed322d352/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc85b442-8b84-448c-8e80-338ed322d352/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/fc85b442-8b84-448c-8e80-338ed322d352/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc85b442-8b84-448c-8e80-338ed322d352/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/fc85b442-8b84-448c-8e80-338ed322d352/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/fc85b442-8b84-448c-8e80-338ed322d352/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': '', 'automated_clean': None, 'protected': True, 'protected_reason': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.263203+00:00'} GET: /v1/nodes/d05df052-0a23-40a8-bbb0-b9975e789f4f {} GOT:{'uuid': 'd05df052-0a23-40a8-bbb0-b9975e789f4f', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'active', '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/d05df052-0a23-40a8-bbb0-b9975e789f4f', 'rel': 'self'}, {'href': 'http://localhost/nodes/d05df052-0a23-40a8-bbb0-b9975e789f4f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/d05df052-0a23-40a8-bbb0-b9975e789f4f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d05df052-0a23-40a8-bbb0-b9975e789f4f/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/d05df052-0a23-40a8-bbb0-b9975e789f4f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/d05df052-0a23-40a8-bbb0-b9975e789f4f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/d05df052-0a23-40a8-bbb0-b9975e789f4f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/d05df052-0a23-40a8-bbb0-b9975e789f4f/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/d05df052-0a23-40a8-bbb0-b9975e789f4f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/d05df052-0a23-40a8-bbb0-b9975e789f4f/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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.288211+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': 'active', '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': '', 'automated_clean': None, 'protected': True, 'protected_reason': 'reason!', 'updated_at': None, 'created_at': '2020-03-11T19:45:24.323607+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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_sort_key ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_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_unassociated_nodes_with_limit ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:25.096318+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': '', 'automated_clean': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:25.212286+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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:25.212286+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': '', 'automated_clean': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:25.313277+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_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_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 GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:23.356710+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:23.356710+00:00'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.540702+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'fish', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:23.540702+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': '2020-03-11T19:45:23.669845+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2020-03-11T19:45:23.669845+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association ... 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': '2020-03-11T19:45:23.808823+00:00'} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.173488+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6b8ab347-a63b-4a05-916e-2c7a49c5a266 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} 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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': 'fake.conductor', 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.266647+00:00'} 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-ec9d1805-562a-4a82-b818-3f7cb0119e94 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:24.336277+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid ... ok GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.189319+00:00'}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': 'cinder', 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.189319+00:00'}]} GET: /v1/nodes/?limit=3&associated=True {} GOT:{'nodes': [{'uuid': '7efb876f-5c35-40c4-8752-92b8a6feb29a', 'instance_uuid': 'b0071a41-4d93-4ec5-843b-dffa15dd2f1b', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7efb876f-5c35-40c4-8752-92b8a6feb29a', 'rel': 'self'}, {'href': 'http://localhost/nodes/7efb876f-5c35-40c4-8752-92b8a6feb29a', 'rel': 'bookmark'}]}, {'uuid': '02e64a14-9fde-45ac-8441-2881ad529657', 'instance_uuid': '4c8252ff-42a2-4416-8af4-0fa5e1bdc981', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/02e64a14-9fde-45ac-8441-2881ad529657', 'rel': 'self'}, {'href': 'http://localhost/nodes/02e64a14-9fde-45ac-8441-2881ad529657', 'rel': 'bookmark'}]}, {'uuid': '1f371b6c-6240-48f9-b744-13268172d895', 'instance_uuid': 'c5a622c6-cb0c-413a-baa0-fa3ff1baf74d', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1f371b6c-6240-48f9-b744-13268172d895', 'rel': 'self'}, {'href': 'http://localhost/nodes/1f371b6c-6240-48f9-b744-13268172d895', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&associated=True&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=3&marker=1f371b6c-6240-48f9-b744-13268172d895'} 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': '', 'automated_clean': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.754880+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name ... 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': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.360934+00:00'} GET: /v1/nodes/123~123/ports {} GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected a logical name or UUID but received 123~123.\"}"} GET: /v1/nodes/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ab043f76-8e43-4882-8de2-3c78ff117497 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ports could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=uuid {} GOT:{'nodes': [{'uuid': '969574c9-adc2-4cdf-90e4-3286753d0c6c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/969574c9-adc2-4cdf-90e4-3286753d0c6c', 'rel': 'self'}, {'href': 'http://localhost/nodes/969574c9-adc2-4cdf-90e4-3286753d0c6c', 'rel': 'bookmark'}]}, {'uuid': 'a39d6f52-b463-4529-a584-9ac1088d3646', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a39d6f52-b463-4529-a584-9ac1088d3646', 'rel': 'self'}, {'href': 'http://localhost/nodes/a39d6f52-b463-4529-a584-9ac1088d3646', 'rel': 'bookmark'}]}, {'uuid': 'f21e00ca-8ea3-445b-9d21-973d57693af5', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f21e00ca-8ea3-445b-9d21-973d57693af5', 'rel': 'self'}, {'href': 'http://localhost/nodes/f21e00ca-8ea3-445b-9d21-973d57693af5', 'rel': 'bookmark'}]}]} GET: /v1/nodes?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dd0fbbb4-d1e5-42fc-a1c1-417bf6ccf323 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-8543181a-a948-442d-b32f-43609ed3d92a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-32f21157-9e9e-49cd-bf85-4ec819bb2819 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_info is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-70e8e0e7-7917-41e1-86a1-e3fe4ffb7437 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-5e237881-9915-4080-8547-12a1ff3a3122 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-0cc55381-0886-4c33-ae9c-1553cad12140 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-cebf4bec-e920-4ecf-95a5-c3bb1da0e299 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-fd74471e-2ef3-4990-b74e-d91d9d487496 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?associated=False&limit=2 {} GOT:{'nodes': [{'uuid': '638da753-3eef-44b6-abc6-272a2e39d5a7', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/638da753-3eef-44b6-abc6-272a2e39d5a7', 'rel': 'self'}, {'href': 'http://localhost/nodes/638da753-3eef-44b6-abc6-272a2e39d5a7', 'rel': 'bookmark'}]}, {'uuid': '463f9ac6-ef04-4bcc-a8d2-0b82c315c817', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/463f9ac6-ef04-4bcc-a8d2-0b82c315c817', 'rel': 'self'}, {'href': 'http://localhost/nodes/463f9ac6-ef04-4bcc-a8d2-0b82c315c817', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=instance_uuid,maintenance,power_state,provision_state,uuid,name&limit=2&marker=463f9ac6-ef04-4bcc-a8d2-0b82c315c817'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-73ec202c-8069-4364-b2e6-e61209bdb608 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_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_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_add_root ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:25.313277+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '2000-01-01T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:25.447383+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': '2020-03-11T19:45:25.447383+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:25.549183+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2020-03-11T19:45:25.549183+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_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_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_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.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_volume_connectors_subresource_noid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid ... ok 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-f28ed7b5-a884-458f-bd74-f974671b0d35 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:24.743586+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-42c8da71-a2c1-43d0-a97d-acdf5258446c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:24.867804+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'guido-van-rossum'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a7f1054b-0c0b-4c08-bca5-5d86854c274f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:25.113820+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b228d105-e562-438b-a6d6-447b34c95be7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-66ae21cd-ae99-432d-b7ed-e569a88a28fe X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2020-03-11T19:45:25.278249+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-2626cbc5-2d8a-43f7-af91-0cbff1757035 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f8e255a5-715f-45e0-af06-156b34edc146 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"}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_maintenance ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'automated_clean': True, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.836969+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.878731+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:24.878731+00:00'} GET: /v1/nodes/eggs/states {} GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '1971-03-09T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:{'portgroups': [{'uuid': 'd3ec5c50-401c-427c-9304-7a3ec4c201a3', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/d3ec5c50-401c-427c-9304-7a3ec4c201a3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d3ec5c50-401c-427c-9304-7a3ec4c201a3', 'rel': 'bookmark'}]}, {'uuid': 'd70b148a-114b-494c-8d1a-77251daf567f', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/d70b148a-114b-494c-8d1a-77251daf567f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d70b148a-114b-494c-8d1a-77251daf567f', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {}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_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_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource 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.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.TestListNodes.test_volume_targets_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:{'ports': [{'uuid': 'd45bf8e9-f905-4aa4-a4c5-d3dd960342fd', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/d45bf8e9-f905-4aa4-a4c5-d3dd960342fd', 'rel': 'self'}, {'href': 'http://localhost/ports/d45bf8e9-f905-4aa4-a4c5-d3dd960342fd', 'rel': 'bookmark'}]}, {'uuid': 'ff095838-4dd8-43a6-91e3-08c8731d7396', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/ff095838-4dd8-43a6-91e3-08c8731d7396', 'rel': 'self'}, {'href': 'http://localhost/ports/ff095838-4dd8-43a6-91e3-08c8731d7396', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} GOT:{'ports': [{'uuid': 'd45bf8e9-f905-4aa4-a4c5-d3dd960342fd', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/d45bf8e9-f905-4aa4-a4c5-d3dd960342fd', 'rel': 'self'}, {'href': 'http://localhost/ports/d45bf8e9-f905-4aa4-a4c5-d3dd960342fd', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=d45bf8e9-f905-4aa4-a4c5-d3dd960342fd'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:25.731642+00:00'} GET: /v1/nodes?sort_key=resource_class {} GOT:{'nodes': [{'uuid': 'b077fc79-c134-484c-848c-2703f61ffdb6', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b077fc79-c134-484c-848c-2703f61ffdb6', 'rel': 'self'}, {'href': 'http://localhost/nodes/b077fc79-c134-484c-848c-2703f61ffdb6', 'rel': 'bookmark'}]}, {'uuid': '7af3b58e-83a1-4f31-858a-3818bdf9b2d6', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7af3b58e-83a1-4f31-858a-3818bdf9b2d6', 'rel': 'self'}, {'href': 'http://localhost/nodes/7af3b58e-83a1-4f31-858a-3818bdf9b2d6', 'rel': 'bookmark'}]}, {'uuid': 'c0592cdb-7720-4300-93e8-fad3a6afddf9', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c0592cdb-7720-4300-93e8-fad3a6afddf9', 'rel': 'self'}, {'href': 'http://localhost/nodes/c0592cdb-7720-4300-93e8-fad3a6afddf9', 'rel': 'bookmark'}]}]} GET: /v1/nodes?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9ed26e0a-931e-429c-ba31-1ab305d6d0fe X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?associated=false {} GOT:{'nodes': [{'uuid': 'c0484b36-ad3b-424d-8cdc-24c71042a94e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c0484b36-ad3b-424d-8cdc-24c71042a94e', 'rel': 'self'}, {'href': 'http://localhost/nodes/c0484b36-ad3b-424d-8cdc-24c71042a94e', 'rel': 'bookmark'}]}, {'uuid': 'b0ec91a3-0a1f-4233-863c-554d0b015b23', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b0ec91a3-0a1f-4233-863c-554d0b015b23', 'rel': 'self'}, {'href': 'http://localhost/nodes/b0ec91a3-0a1f-4233-863c-554d0b015b23', 'rel': 'bookmark'}]}, {'uuid': '9bfdac12-50f5-4efe-baf1-df7584d51e34', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9bfdac12-50f5-4efe-baf1-df7584d51e34', 'rel': 'self'}, {'href': 'http://localhost/nodes/9bfdac12-50f5-4efe-baf1-df7584d51e34', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=FALSE {} GOT:{'nodes': [{'uuid': 'c0484b36-ad3b-424d-8cdc-24c71042a94e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c0484b36-ad3b-424d-8cdc-24c71042a94e', 'rel': 'self'}, {'href': 'http://localhost/nodes/c0484b36-ad3b-424d-8cdc-24c71042a94e', 'rel': 'bookmark'}]}, {'uuid': 'b0ec91a3-0a1f-4233-863c-554d0b015b23', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b0ec91a3-0a1f-4233-863c-554d0b015b23', 'rel': 'self'}, {'href': 'http://localhost/nodes/b0ec91a3-0a1f-4233-863c-554d0b015b23', 'rel': 'bookmark'}]}, {'uuid': '9bfdac12-50f5-4efe-baf1-df7584d51e34', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9bfdac12-50f5-4efe-baf1-df7584d51e34', 'rel': 'self'}, {'href': 'http://localhost/nodes/9bfdac12-50f5-4efe-baf1-df7584d51e34', 'rel': 'bookmark'}]}]} GET: /v1/nodes/validate?node=spam {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-640012b5-769d-4636-ae2d-5201db29de32 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/connectors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f2dab4ad-0887-48f8-8370-2730f4e5a12e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:{'targets': [{'uuid': 'a3fabe91-b856-4c99-801f-f7fa735582e1', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/a3fabe91-b856-4c99-801f-f7fa735582e1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a3fabe91-b856-4c99-801f-f7fa735582e1', 'rel': 'bookmark'}]}, {'uuid': '63aae50e-4c12-48a8-ba52-fbab56c46acb', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/63aae50e-4c12-48a8-ba52-fbab56c46acb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/63aae50e-4c12-48a8-ba52-fbab56c46acb', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} GOT:{'targets': [{'uuid': 'a3fabe91-b856-4c99-801f-f7fa735582e1', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/a3fabe91-b856-4c99-801f-f7fa735582e1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a3fabe91-b856-4c99-801f-f7fa735582e1', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,volume_type,boot_index,volume_id&limit=1&marker=a3fabe91-b856-4c99-801f-f7fa735582e1'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid ... 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-54e7208a-4471-4511-851a-525a47bf2ea9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6d0f0751-2d63-471c-bfac-fa1fd71a55c4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:24.790394+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c6338486-7c52-46d5-9d35-6edb99efef7f X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/9b7e0aae-c835-4ebc-a890-cbc0a8728ba4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3128a8fd-8020-4a19-b806-92f2da797512 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "9b7e0aae-c835-4ebc-a890-cbc0a8728ba4", "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/9b7e0aae-c835-4ebc-a890-cbc0a8728ba4", "rel": "self"}, {"href": "http://localhost/nodes/9b7e0aae-c835-4ebc-a890-cbc0a8728ba4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9b7e0aae-c835-4ebc-a890-cbc0a8728ba4/ports", "rel": "self"}, {"href": "http://localhost/nodes/9b7e0aae-c835-4ebc-a890-cbc0a8728ba4/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:25.013559+00:00"} 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-441312e7-1887-4014-96a0-dc2d3f6987dc X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/85e60f79-4600-4375-b341-236f361bdfce [{'path': '/allocation_uuid', 'op': 'replace', 'value': '13bf1a5f-e3fb-400b-8b84-1afc837dda2a'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-62a1af10-bd74-4561-b191-850877e90077 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/allocation_uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/ad61b390-1f52-4f65-b5b8-243fce8b7338 [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'f6f76674-f9a2-4eb8-be2b-e862cac7190b'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-aa80cd76-fbfe-4ea3-ae78-8ae76be0d751 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/allocation_uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/012bf008-64ad-446f-9eff-d00d36f308fb [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-af9f6b32-b7ec-4638-a63c-55cc345c26ea X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/conductor' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0280f1cf-84b9-4d1b-81a3-fb5ceba1ab60 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7fdf2511-5533-4e2b-afe6-12137e316335 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'foo', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-029833f7-65d9-4f9a-bd7c-01d6f2b39481 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 can not update the driver while the console is enabled. Please stop the console first.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'node-0'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d7a45af6-baed-49ab-b1c4-417fd9178eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"}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_chassis_uuid_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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_patch_deploy_step_forbidden ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_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_ports_subresource_no_port_id ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_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_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_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_internal_field ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface ... ok GOT:{'portgroups': [{'uuid': 'd3ec5c50-401c-427c-9304-7a3ec4c201a3', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/d3ec5c50-401c-427c-9304-7a3ec4c201a3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d3ec5c50-401c-427c-9304-7a3ec4c201a3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=d3ec5c50-401c-427c-9304-7a3ec4c201a3'} 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-f1a8d49e-cad2-4e29-b9fe-68a1ba3fb55a X-Openstack-Ironic-Api-Maximum-Version: 1.56 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=spam {} GOT:{} GET: /v1/nodes/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{} GET: /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:{'connectors': [{'uuid': '78ad9fbf-31dd-4324-83ed-5495b260a64a', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/78ad9fbf-31dd-4324-83ed-5495b260a64a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/78ad9fbf-31dd-4324-83ed-5495b260a64a', 'rel': 'bookmark'}]}, {'uuid': 'a371a54a-1c5a-454c-b418-1342c76d1e06', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/a371a54a-1c5a-454c-b418-1342c76d1e06', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a371a54a-1c5a-454c-b418-1342c76d1e06', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} GOT:{'connectors': [{'uuid': '78ad9fbf-31dd-4324-83ed-5495b260a64a', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/78ad9fbf-31dd-4324-83ed-5495b260a64a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/78ad9fbf-31dd-4324-83ed-5495b260a64a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=1&marker=78ad9fbf-31dd-4324-83ed-5495b260a64a'} 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-13668966-61a1-4171-a9ae-bc2d0c4a1e60 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.31 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:25.703480+00:00'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9451e679-6ea8-4f82-a047-74e3ea2dda01 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ea9042ed-a2d3-47b7-8e67-c6481348bc31 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'guido-van-rossum'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2b6f0472-aeac-4e69-880c-e472ebc41185 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "deadbeef-0000-1111-2222-333333333333", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:25.821961+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api ... ok ironic.tests.unit.api.controllers.v1.test_node.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_description ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description ... ok PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-def52c07-d8a8-4d17-807f-18ee7a130d1b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/last_error', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3fff031-f4bb-49b1-9be2-f42395b4444a X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23943c2f-aa6a-456c-99b5-77d05396ac83 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:26.055753+00:00"} 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-becd6318-d934-4392-8fbd-8f8318c25097 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/console_enabled' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/power_state', 'op': 'replace', 'value': 'fake-state'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b1b5e4ca-bfc9-4f6b-aba7-5ac2b5b20ce5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/771f50e9-a6b3-44df-bc4e-1508e7f5decf [{'path': '/storage_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35a8c7d3-b7ff-4580-a9a4-80d5b3d1bb70 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "771f50e9-a6b3-44df-bc4e-1508e7f5decf", "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/771f50e9-a6b3-44df-bc4e-1508e7f5decf", "rel": "self"}, {"href": "http://localhost/nodes/771f50e9-a6b3-44df-bc4e-1508e7f5decf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/771f50e9-a6b3-44df-bc4e-1508e7f5decf/ports", "rel": "self"}, {"href": "http://localhost/nodes/771f50e9-a6b3-44df-bc4e-1508e7f5decf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/771f50e9-a6b3-44df-bc4e-1508e7f5decf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/771f50e9-a6b3-44df-bc4e-1508e7f5decf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/771f50e9-a6b3-44df-bc4e-1508e7f5decf/volume", "rel": "self"}, {"href": "http://localhost/nodes/771f50e9-a6b3-44df-bc4e-1508e7f5decf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/771f50e9-a6b3-44df-bc4e-1508e7f5decf/states", "rel": "self"}, {"href": "http://localhost/nodes/771f50e9-a6b3-44df-bc4e-1508e7f5decf/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:26.185991+00:00"} PATCH: /v1/nodes/5c441bba-effe-44ec-af53-13680c465c31 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b478ce63-39c6-474a-9b8c-53d8b1a68886 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "5c441bba-effe-44ec-af53-13680c465c31", "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/5c441bba-effe-44ec-af53-13680c465c31", "rel": "self"}, {"href": "http://localhost/nodes/5c441bba-effe-44ec-af53-13680c465c31", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5c441bba-effe-44ec-af53-13680c465c31/ports", "rel": "self"}, {"href": "http://localhost/nodes/5c441bba-effe-44ec-af53-13680c465c31/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5c441bba-effe-44ec-af53-13680c465c31/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5c441bba-effe-44ec-af53-13680c465c31/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5c441bba-effe-44ec-af53-13680c465c31/volume", "rel": "self"}, {"href": "http://localhost/nodes/5c441bba-effe-44ec-af53-13680c465c31/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5c441bba-effe-44ec-af53-13680c465c31/states", "rel": "self"}, {"href": "http://localhost/nodes/5c441bba-effe-44ec-af53-13680c465c31/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": "", "automated_clean": null, "updated_at": null, "created_at": "2020-03-11T19:45:26.238275+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_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_in_inspecting_allowed ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason ... ok 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-c01d2093-70d2-4137-b9ff-e61d6b0d5786 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:25.466506+00:00"} PATCH: /v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772 [{'path': '/boot_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6694e7fe-1291-4c97-87f6-fe09964a9960 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "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/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/states", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:25.584192+00:00"} PATCH: /v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772 [{'path': '/console_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7fe4faf-5e72-4806-ae90-8dc2f2b326ee X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "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/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/states", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:25.584192+00:00"} PATCH: /v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772 [{'path': '/deploy_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5dce8204-364a-4496-bd56-8958896cd550 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "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/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/states", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:25.584192+00:00"} PATCH: /v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772 [{'path': '/inspect_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf8a8045-9ca7-4fc4-aa1b-9ecc0c9fcda8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "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/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/states", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:25.584192+00:00"} PATCH: /v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772 [{'path': '/management_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae08d572-5948-4948-9e2a-b6c082175736 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "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/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/states", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:25.584192+00:00"} PATCH: /v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772 [{'path': '/power_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac55a9ea-3e49-4864-8bb3-3b6cd1ac765d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "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/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/states", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:25.584192+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 GET: /v1/nodes/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9a7ad036-c2c0-449b-a839-6bf107f42f2a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/3bc99216-3b9b-449c-8d1c-81d8d2d0d77d [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-ff9500bc-27ab-48a5-a7cf-f456794cd018 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 3bc99216-3b9b-449c-8d1c-81d8d2d0d77d can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'i am invalid'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-748b55ee-7b6a-4017-8ebf-78202ce54a2d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name 'i am invalid'\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'maintenance'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a4461d08-5397-4f1a-b034-ba42b5eb6994 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-e8ba1c6c-4a3d-4f78-a8f0-fa3833d65718 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-9502445f-b214-4cd4-948e-181e918e3eab X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-408dd7c8-859a-43a3-8368-41e06988ca99 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-ceb16de5-8cd8-4534-97e7-639e2a44c1b3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-a8083eac-191f-4576-a635-259af7a963b2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-389c3277-242e-439d-beb4-d3568bb34641 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/cc41bcac-442e-48a7-8b6f-78dee2746cdb [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d715641-1f6d-405c-87e1-3cd83d9e0dd6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/64d68361-11de-445b-81fa-d10f1b891fda [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-603535d3-834d-4ccd-bf20-3d4bbf48c239 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/ports [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c72f5fab-fd61-43e2-a1de-b5180d56c932 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/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-dae57bf6-0340-4c16-b50b-a237e6435071 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/volume/connectors [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-875739cb-20ad-4c1e-839b-7578f28403bb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"debuginfo\": null}"}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_patch_volume_targets_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_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_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_maintenance_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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_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_reset_interfaces_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported ... ok PATCH: /v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772 [{'path': '/raid_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3d5444c3-2715-4073-9609-fe04003a9963 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "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/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/states", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:25.584192+00:00"} PATCH: /v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772 [{'path': '/vendor_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-165c3103-3ca5-4664-9133-88b4789e4d69 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "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/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/states", "rel": "self"}, {"href": "http://localhost/nodes/25cddcc2-2ad5-4ed1-b3af-5c4d4457f772/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:25.584192+00:00"} PATCH: /v1/nodes/51efbe3d-031d-41ce-8cc3-fcf03e03ba08 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a56c4c97-96a3-4e8a-98e4-e15b610d4944 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "51efbe3d-031d-41ce-8cc3-fcf03e03ba08", "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/51efbe3d-031d-41ce-8cc3-fcf03e03ba08", "rel": "self"}, {"href": "http://localhost/nodes/51efbe3d-031d-41ce-8cc3-fcf03e03ba08", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/51efbe3d-031d-41ce-8cc3-fcf03e03ba08/ports", "rel": "self"}, {"href": "http://localhost/nodes/51efbe3d-031d-41ce-8cc3-fcf03e03ba08/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/51efbe3d-031d-41ce-8cc3-fcf03e03ba08/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/51efbe3d-031d-41ce-8cc3-fcf03e03ba08/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/51efbe3d-031d-41ce-8cc3-fcf03e03ba08/volume", "rel": "self"}, {"href": "http://localhost/nodes/51efbe3d-031d-41ce-8cc3-fcf03e03ba08/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/51efbe3d-031d-41ce-8cc3-fcf03e03ba08/states", "rel": "self"}, {"href": "http://localhost/nodes/51efbe3d-031d-41ce-8cc3-fcf03e03ba08/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2020-03-11T19:45:26.764478+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_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_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.TestPatch.test_update_owner_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ... ok 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-155f9253-4648-4ae3-8ce4-f25b65ddca2e X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/2338f493-0dff-4d4a-9e36-ec535d6fad5c [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-348a85ca-b446-454b-af65-c3093ab4a352 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "2338f493-0dff-4d4a-9e36-ec535d6fad5c", "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/2338f493-0dff-4d4a-9e36-ec535d6fad5c", "rel": "self"}, {"href": "http://localhost/nodes/2338f493-0dff-4d4a-9e36-ec535d6fad5c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2338f493-0dff-4d4a-9e36-ec535d6fad5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/2338f493-0dff-4d4a-9e36-ec535d6fad5c/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2338f493-0dff-4d4a-9e36-ec535d6fad5c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2338f493-0dff-4d4a-9e36-ec535d6fad5c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2338f493-0dff-4d4a-9e36-ec535d6fad5c/volume", "rel": "self"}, {"href": "http://localhost/nodes/2338f493-0dff-4d4a-9e36-ec535d6fad5c/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2338f493-0dff-4d4a-9e36-ec535d6fad5c/states", "rel": "self"}, {"href": "http://localhost/nodes/2338f493-0dff-4d4a-9e36-ec535d6fad5c/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "updated_at": null, "created_at": "2020-03-11T19:45:26.634450+00:00"} PATCH: /v1/nodes/77875fd6-0808-48f4-924a-e26054dee82b [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-932380f5-6cc8-4214-af88-78d3127c9c1f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/3a629ff7-9ad8-49eb-bffe-0d4786970501 [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-037c8ff6-f979-4a1b-8308-91cc4c43e482 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "3a629ff7-9ad8-49eb-bffe-0d4786970501", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "active", "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/3a629ff7-9ad8-49eb-bffe-0d4786970501", "rel": "self"}, {"href": "http://localhost/nodes/3a629ff7-9ad8-49eb-bffe-0d4786970501", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/3a629ff7-9ad8-49eb-bffe-0d4786970501/ports", "rel": "self"}, {"href": "http://localhost/nodes/3a629ff7-9ad8-49eb-bffe-0d4786970501/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3a629ff7-9ad8-49eb-bffe-0d4786970501/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3a629ff7-9ad8-49eb-bffe-0d4786970501/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3a629ff7-9ad8-49eb-bffe-0d4786970501/volume", "rel": "self"}, {"href": "http://localhost/nodes/3a629ff7-9ad8-49eb-bffe-0d4786970501/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3a629ff7-9ad8-49eb-bffe-0d4786970501/states", "rel": "self"}, {"href": "http://localhost/nodes/3a629ff7-9ad8-49eb-bffe-0d4786970501/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": "", "automated_clean": null, "protected": true, "protected_reason": null, "updated_at": null, "created_at": "2020-03-11T19:45:26.884235+00:00"} PATCH: /v1/nodes/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f [{'path': '/protected', 'value': True, 'op': 'replace'}, {'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d59b05e-be62-4c59-9280-dbf68a25ce1c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "active", "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/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f", "rel": "self"}, {"href": "http://localhost/nodes/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f/ports", "rel": "self"}, {"href": "http://localhost/nodes/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f/volume", "rel": "self"}, {"href": "http://localhost/nodes/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f/states", "rel": "self"}, {"href": "http://localhost/nodes/eb6dc5a5-f51b-4844-8c4e-d1d62e56b64f/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "updated_at": null, "created_at": "2020-03-11T19:45:26.931223+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean ... 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-e2189c31-51e8-41bd-ab3a-59aca8e18aad X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/9696984f-b2ea-4c08-b3ee-c918f8253f5a [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-997d069d-25b5-40d6-9fca-f6a134c96644 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"9696984f-b2ea-4c08-b3ee-c918f8253f5a\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} PATCH: /v1/nodes/4f863f9c-5c96-4e4c-94ee-194c132fb345 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6cea6917-38f8-4b3b-ac31-4a3ca975a6b7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/ccafb47b-6d63-4f31-86e8-234c03f64421 [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-976d196f-193c-4016-a259-83dbc77800d4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "ccafb47b-6d63-4f31-86e8-234c03f64421", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "active", "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/ccafb47b-6d63-4f31-86e8-234c03f64421", "rel": "self"}, {"href": "http://localhost/nodes/ccafb47b-6d63-4f31-86e8-234c03f64421", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ccafb47b-6d63-4f31-86e8-234c03f64421/ports", "rel": "self"}, {"href": "http://localhost/nodes/ccafb47b-6d63-4f31-86e8-234c03f64421/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ccafb47b-6d63-4f31-86e8-234c03f64421/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ccafb47b-6d63-4f31-86e8-234c03f64421/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ccafb47b-6d63-4f31-86e8-234c03f64421/volume", "rel": "self"}, {"href": "http://localhost/nodes/ccafb47b-6d63-4f31-86e8-234c03f64421/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ccafb47b-6d63-4f31-86e8-234c03f64421/states", "rel": "self"}, {"href": "http://localhost/nodes/ccafb47b-6d63-4f31-86e8-234c03f64421/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "updated_at": null, "created_at": "2020-03-11T19:45:27.442874+00:00"} PATCH: /v1/nodes/c307a93c-cadd-41a1-befc-de063cda16db [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-204c2894-9286-4896-b399-89db84aa8b47 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "c307a93c-cadd-41a1-befc-de063cda16db", "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/c307a93c-cadd-41a1-befc-de063cda16db", "rel": "self"}, {"href": "http://localhost/nodes/c307a93c-cadd-41a1-befc-de063cda16db", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c307a93c-cadd-41a1-befc-de063cda16db/ports", "rel": "self"}, {"href": "http://localhost/nodes/c307a93c-cadd-41a1-befc-de063cda16db/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c307a93c-cadd-41a1-befc-de063cda16db/states", "rel": "self"}, {"href": "http://localhost/nodes/c307a93c-cadd-41a1-befc-de063cda16db/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2020-03-11T19:45:27.498579+00:00"} PATCH: /v1/nodes/b5e06cee-ebfd-4feb-bb63-5c87afb4414c [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0061729-ad39-45cf-822c-fa4a69a1edd1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "b5e06cee-ebfd-4feb-bb63-5c87afb4414c", "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/b5e06cee-ebfd-4feb-bb63-5c87afb4414c", "rel": "self"}, {"href": "http://localhost/nodes/b5e06cee-ebfd-4feb-bb63-5c87afb4414c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b5e06cee-ebfd-4feb-bb63-5c87afb4414c/ports", "rel": "self"}, {"href": "http://localhost/nodes/b5e06cee-ebfd-4feb-bb63-5c87afb4414c/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b5e06cee-ebfd-4feb-bb63-5c87afb4414c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b5e06cee-ebfd-4feb-bb63-5c87afb4414c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b5e06cee-ebfd-4feb-bb63-5c87afb4414c/volume", "rel": "self"}, {"href": "http://localhost/nodes/b5e06cee-ebfd-4feb-bb63-5c87afb4414c/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b5e06cee-ebfd-4feb-bb63-5c87afb4414c/states", "rel": "self"}, {"href": "http://localhost/nodes/b5e06cee-ebfd-4feb-bb63-5c87afb4414c/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:27.558938+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node 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_automated_clean_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version ... ok 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-ba7de8c7-cd77-4d21-a1b8-eef407602cfd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cf22dd8a-5575-47d3-8658-196d2f3c9ff9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/chassis_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'chassis_id'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9a1188d8-bde9-4771-9d73-f578b8900449 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa063c3f-d20a-4ab4-bede-ecba6f721b8b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.070662+00:00"} PATCH: /v1/nodes/node-57.1 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23a19c25-3995-43c7-97ee-439e44b71df5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.120613+00:00"} 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-6edea9b3-d7e0-4e45-9e92-a13529da04e0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/provision_updated_at', 'op': 'replace', 'value': '2000-01-01 00:00:00'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ac31f37b-b10d-479a-96c5-d93c1d212428 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/provision_updated_at' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-42c3fce1-4773-47de-829d-8f67cff7974f X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/1887f929-2856-4e02-942b-44597e6468d0 [{'path': '/network_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2edad855-6018-4d96-a4da-ad777fc15b68 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1887f929-2856-4e02-942b-44597e6468d0", "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/1887f929-2856-4e02-942b-44597e6468d0", "rel": "self"}, {"href": "http://localhost/nodes/1887f929-2856-4e02-942b-44597e6468d0", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1887f929-2856-4e02-942b-44597e6468d0/ports", "rel": "self"}, {"href": "http://localhost/nodes/1887f929-2856-4e02-942b-44597e6468d0/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1887f929-2856-4e02-942b-44597e6468d0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1887f929-2856-4e02-942b-44597e6468d0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1887f929-2856-4e02-942b-44597e6468d0/volume", "rel": "self"}, {"href": "http://localhost/nodes/1887f929-2856-4e02-942b-44597e6468d0/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1887f929-2856-4e02-942b-44597e6468d0/states", "rel": "self"}, {"href": "http://localhost/nodes/1887f929-2856-4e02-942b-44597e6468d0/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:27.289903+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_allowed_in_power_transition ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize ... ok PATCH: /v1/nodes/af30aadb-f528-4496-a49f-31acc1d643a9 [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e0577ff4-77a2-448a-b8ca-3d0ee90e3871 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0c3d8242-b109-435b-b4bd-512fa8aaa3c7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/name', 'value': 'new name', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fd63ad27-f462-4a8b-947f-db3dd0f3be7a X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/ebdbcc87-c0a0-44fa-881f-9d28606429f4 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe7b1b46-abd5-4838-bd4a-04465407d599 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ebdbcc87-c0a0-44fa-881f-9d28606429f4", "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/ebdbcc87-c0a0-44fa-881f-9d28606429f4", "rel": "self"}, {"href": "http://localhost/nodes/ebdbcc87-c0a0-44fa-881f-9d28606429f4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ebdbcc87-c0a0-44fa-881f-9d28606429f4/ports", "rel": "self"}, {"href": "http://localhost/nodes/ebdbcc87-c0a0-44fa-881f-9d28606429f4/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.170649+00:00"} PATCH: /v1/nodes/b4d00843-4794-41d3-9572-628de0e838a9 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-67f55876-3c1e-4125-8a26-ebf67894c77e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/b052b739-4939-466d-b7c2-3d3c8b47e669 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e12cc21e-a0f0-45ae-92c7-3fe8df27a379 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/d997d6ce-7284-4f62-8170-cf4af6fafc51 [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bbff45f-4a9c-41d6-9a14-e87be9690faf X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "d997d6ce-7284-4f62-8170-cf4af6fafc51", "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/d997d6ce-7284-4f62-8170-cf4af6fafc51", "rel": "self"}, {"href": "http://localhost/nodes/d997d6ce-7284-4f62-8170-cf4af6fafc51", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d997d6ce-7284-4f62-8170-cf4af6fafc51/ports", "rel": "self"}, {"href": "http://localhost/nodes/d997d6ce-7284-4f62-8170-cf4af6fafc51/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d997d6ce-7284-4f62-8170-cf4af6fafc51/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d997d6ce-7284-4f62-8170-cf4af6fafc51/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d997d6ce-7284-4f62-8170-cf4af6fafc51/volume", "rel": "self"}, {"href": "http://localhost/nodes/d997d6ce-7284-4f62-8170-cf4af6fafc51/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d997d6ce-7284-4f62-8170-cf4af6fafc51/states", "rel": "self"}, {"href": "http://localhost/nodes/d997d6ce-7284-4f62-8170-cf4af6fafc51/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "updated_at": null, "created_at": "2020-03-11T19:45:27.298117+00:00"} PATCH: /v1/nodes/3fe021e7-7bc7-45dc-a896-af2ece188147 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2802395d-e83b-4826-8cd8-c257622813ef X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3fe021e7-7bc7-45dc-a896-af2ece188147", "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/3fe021e7-7bc7-45dc-a896-af2ece188147", "rel": "self"}, {"href": "http://localhost/nodes/3fe021e7-7bc7-45dc-a896-af2ece188147", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/3fe021e7-7bc7-45dc-a896-af2ece188147/ports", "rel": "self"}, {"href": "http://localhost/nodes/3fe021e7-7bc7-45dc-a896-af2ece188147/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.379931+00:00"} PATCH: /v1/nodes/9802a3cc-33d7-40e4-a2d5-ac02dba9859a [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c296c07-0ee9-4830-a0bb-cc1603a6672a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "9802a3cc-33d7-40e4-a2d5-ac02dba9859a", "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/9802a3cc-33d7-40e4-a2d5-ac02dba9859a", "rel": "self"}, {"href": "http://localhost/nodes/9802a3cc-33d7-40e4-a2d5-ac02dba9859a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9802a3cc-33d7-40e4-a2d5-ac02dba9859a/ports", "rel": "self"}, {"href": "http://localhost/nodes/9802a3cc-33d7-40e4-a2d5-ac02dba9859a/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.415822+00:00"} PATCH: /v1/nodes/be29e331-60be-433c-8ce7-86b7c73f9187 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d47260fb-2dd5-4848-825d-865481038c2f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "be29e331-60be-433c-8ce7-86b7c73f9187", "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/be29e331-60be-433c-8ce7-86b7c73f9187", "rel": "self"}, {"href": "http://localhost/nodes/be29e331-60be-433c-8ce7-86b7c73f9187", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/be29e331-60be-433c-8ce7-86b7c73f9187/ports", "rel": "self"}, {"href": "http://localhost/nodes/be29e331-60be-433c-8ce7-86b7c73f9187/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.437576+00:00"} PATCH: /v1/nodes/f68a2197-d8eb-4abf-94df-3f9e1402969e [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7667caf-c5b2-42e0-8519-ee9bf878ef39 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "f68a2197-d8eb-4abf-94df-3f9e1402969e", "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/f68a2197-d8eb-4abf-94df-3f9e1402969e", "rel": "self"}, {"href": "http://localhost/nodes/f68a2197-d8eb-4abf-94df-3f9e1402969e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f68a2197-d8eb-4abf-94df-3f9e1402969e/ports", "rel": "self"}, {"href": "http://localhost/nodes/f68a2197-d8eb-4abf-94df-3f9e1402969e/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.459423+00:00"} PATCH: /v1/nodes/a58b78a7-df46-4eac-bc9b-f86ca103ba50 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c1975607-29cb-42b1-ba19-474c7adddf1b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a58b78a7-df46-4eac-bc9b-f86ca103ba50", "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/a58b78a7-df46-4eac-bc9b-f86ca103ba50", "rel": "self"}, {"href": "http://localhost/nodes/a58b78a7-df46-4eac-bc9b-f86ca103ba50", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a58b78a7-df46-4eac-bc9b-f86ca103ba50/ports", "rel": "self"}, {"href": "http://localhost/nodes/a58b78a7-df46-4eac-bc9b-f86ca103ba50/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.486502+00:00"} PATCH: /v1/nodes/a8402a5f-29ef-41c7-95b2-4310c6b25f55 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-552e1f56-5b7b-4f3c-886a-e21195116f3c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a8402a5f-29ef-41c7-95b2-4310c6b25f55", "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/a8402a5f-29ef-41c7-95b2-4310c6b25f55", "rel": "self"}, {"href": "http://localhost/nodes/a8402a5f-29ef-41c7-95b2-4310c6b25f55", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a8402a5f-29ef-41c7-95b2-4310c6b25f55/ports", "rel": "self"}, {"href": "http://localhost/nodes/a8402a5f-29ef-41c7-95b2-4310c6b25f55/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.528528+00:00"} PATCH: /v1/nodes/6049d16a-ff7f-4cf0-b36f-eba7acd8a2e7 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b8f8f84c-2b10-4d35-a8a3-6a11eabb8457 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6049d16a-ff7f-4cf0-b36f-eba7acd8a2e7", "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/6049d16a-ff7f-4cf0-b36f-eba7acd8a2e7", "rel": "self"}, {"href": "http://localhost/nodes/6049d16a-ff7f-4cf0-b36f-eba7acd8a2e7", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6049d16a-ff7f-4cf0-b36f-eba7acd8a2e7/ports", "rel": "self"}, {"href": "http://localhost/nodes/6049d16a-ff7f-4cf0-b36f-eba7acd8a2e7/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.552403+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 PATCH: /v1/nodes/78e6fa49-2c17-4a7a-9824-c921f0ed9f0e [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8cf61826-9fef-44ba-b00d-7a5528c285b7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'automated_clean': True, '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-95bc1965-ff65-486b-ba2e-f142457280df X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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": "", "automated_clean": true, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:27.413094+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': '', 'automated_clean': True, 'protected': False, 'protected_reason': None, 'conductor': None, 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:27.413094+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-2c379840-e995-476c-8e8f-d4738d8713fc X-Openstack-Ironic-Api-Maximum-Version: 1.56 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"}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_chassis_uuid_not_found ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_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_invalid_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-39f964bf-0581-45b8-85d6-519dcb9d9b0d X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'automated_clean': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-599a3c11-4b18-4fc8-9f39-6341be22abaa X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-270e95e9-862d-4153-b322-752fa015726d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:28.166303+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:28.166303+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:28.166303+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_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_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_post_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_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_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_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_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_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 PATCH: /v1/nodes/cf71b1ce-916f-43b5-b0b8-3fceccc3f82b [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-671a5d22-0421-4605-8c9e-ae610e0a40ac X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "cf71b1ce-916f-43b5-b0b8-3fceccc3f82b", "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/cf71b1ce-916f-43b5-b0b8-3fceccc3f82b", "rel": "self"}, {"href": "http://localhost/nodes/cf71b1ce-916f-43b5-b0b8-3fceccc3f82b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/cf71b1ce-916f-43b5-b0b8-3fceccc3f82b/ports", "rel": "self"}, {"href": "http://localhost/nodes/cf71b1ce-916f-43b5-b0b8-3fceccc3f82b/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.538112+00:00"} PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d148a5d2-6d29-4297-9e1a-48bb596ebd1f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"} PATCH: /v1/nodes/14f87fe3-568f-4f0d-95cb-925b37165a85 [{'path': '/description', 'value': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d7ca136f-4472-478f-844f-3f5f6c8462ca X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node with description exceeding 4096 characters\", \"debuginfo\": null}"} PATCH: /v1/nodes/243384a1-943a-4290-a7e9-46d7258c4803 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6b89b7e8-abb1-4b91-8682-96ed902d03d2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/243384a1-943a-4290-a7e9-46d7258c4803 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6bf71ba7-7e20-43eb-9244-5e3efc5fcf22 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/243384a1-943a-4290-a7e9-46d7258c4803 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8ab08bb1-f3ce-4044-b855-29c970b92744 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/243384a1-943a-4290-a7e9-46d7258c4803 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6316eadc-b5dc-4120-a95b-a9a9ba9ac2d8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long ... ok PATCH: /v1/nodes/243384a1-943a-4290-a7e9-46d7258c4803 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3cd26224-2c05-4926-9358-48155e2dd44c X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/243384a1-943a-4290-a7e9-46d7258c4803 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fec35dda-559a-42d0-8412-24717dcf87b6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/243384a1-943a-4290-a7e9-46d7258c4803 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7993ed3b-768b-478c-9ca2-b831f56e3ce1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/243384a1-943a-4290-a7e9-46d7258c4803 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8f3dc3d8-c674-4c2e-b045-a37cd5da3a0d X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/8ea8fc55-2303-419f-8d05-1299f5dc95f9 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c15a05ce-ef04-43fb-a8f0-013fcff2f7ed X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/24341fb2-cbe2-438c-952c-b47c2916c54d [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bf8c57bb-1e0b-459e-b382-a648a96b58a0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "24341fb2-cbe2-438c-952c-b47c2916c54d", "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/24341fb2-cbe2-438c-952c-b47c2916c54d", "rel": "self"}, {"href": "http://localhost/nodes/24341fb2-cbe2-438c-952c-b47c2916c54d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/24341fb2-cbe2-438c-952c-b47c2916c54d/ports", "rel": "self"}, {"href": "http://localhost/nodes/24341fb2-cbe2-438c-952c-b47c2916c54d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24341fb2-cbe2-438c-952c-b47c2916c54d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24341fb2-cbe2-438c-952c-b47c2916c54d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24341fb2-cbe2-438c-952c-b47c2916c54d/volume", "rel": "self"}, {"href": "http://localhost/nodes/24341fb2-cbe2-438c-952c-b47c2916c54d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24341fb2-cbe2-438c-952c-b47c2916c54d/states", "rel": "self"}, {"href": "http://localhost/nodes/24341fb2-cbe2-438c-952c-b47c2916c54d/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "updated_at": null, "created_at": "2020-03-11T19:45:28.230168+00:00"} PATCH: /v1/nodes/e9c83525-59b9-431b-abad-3fad8c432ea2 [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1ab67041-e804-4637-9f30-0f6a684c4f64 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "e9c83525-59b9-431b-abad-3fad8c432ea2", "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/e9c83525-59b9-431b-abad-3fad8c432ea2", "rel": "self"}, {"href": "http://localhost/nodes/e9c83525-59b9-431b-abad-3fad8c432ea2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/e9c83525-59b9-431b-abad-3fad8c432ea2/ports", "rel": "self"}, {"href": "http://localhost/nodes/e9c83525-59b9-431b-abad-3fad8c432ea2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e9c83525-59b9-431b-abad-3fad8c432ea2/states", "rel": "self"}, {"href": "http://localhost/nodes/e9c83525-59b9-431b-abad-3fad8c432ea2/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2020-03-11T19:45:28.465799+00:00"} PATCH: /v1/nodes/eb15e67f-4b80-466b-b94c-55b9d347de17 [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-23bccfb0-2227-43e7-ad9a-cc12cbd99609 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"} 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-195d592a-a3de-45ed-97ea-d21d85a3b8f4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"}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_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_default_state_enroll ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll ... 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': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '9e4b3b08-2df8-4b49-9a0f-9996e1114d65', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/9e4b3b08-2df8-4b49-9a0f-9996e1114d65 Openstack-Request-Id: req-a1736534-1992-4cca-a99d-22aa97785b2b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "9e4b3b08-2df8-4b49-9a0f-9996e1114d65", "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/9e4b3b08-2df8-4b49-9a0f-9996e1114d65", "rel": "self"}, {"href": "http://localhost/nodes/9e4b3b08-2df8-4b49-9a0f-9996e1114d65", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9e4b3b08-2df8-4b49-9a0f-9996e1114d65/ports", "rel": "self"}, {"href": "http://localhost/nodes/9e4b3b08-2df8-4b49-9a0f-9996e1114d65/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/nodes/9e4b3b08-2df8-4b49-9a0f-9996e1114d65 {} GOT:{'uuid': '9e4b3b08-2df8-4b49-9a0f-9996e1114d65', '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/9e4b3b08-2df8-4b49-9a0f-9996e1114d65', 'rel': 'self'}, {'href': 'http://localhost/nodes/9e4b3b08-2df8-4b49-9a0f-9996e1114d65', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9e4b3b08-2df8-4b49-9a0f-9996e1114d65/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9e4b3b08-2df8-4b49-9a0f-9996e1114d65/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-11a0209a-a39b-4d38-8a46-c1f51386dd78 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d3f954fa-b728-4cff-86df-baf60644a7f0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.network' entrypoint: foo. Valid interfaces are ['flat', 'neutron', 'noop'].\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bce070cc-f7b9-4460-970a-36d8eb461561 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.storage' entrypoint: foo. Valid interfaces are ['fake', 'noop'].\", \"debuginfo\": null}"} POST: /v1/nodes {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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-e7f3aed6-91c4-4b68-9088-b89409caa769 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'bios_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8e2c0373-ea42-4455-b095-3531cd1df7da X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f1ff1474-b29e-4cde-b8de-e6e4f536f062 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"} 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-06355a07-a8b5-48f3-885d-e806bb7a0a5f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:{'foo': 'bar'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:{'foo': 'bar'} 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-9b0dd164-1238-4d35-8874-63a04c50ab52 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/management/inject_nmi {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b2803a31-d0f9-44ca-ba66-ffe43171c497 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d959178f-bef6-472f-9143-8a48eff16dd1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e920c218-20d4-42cd-8d5a-1331a2c13a69 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-9f08fba2-b2ba-468d-abd4-437515f0686b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'provide'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-9e335dbe-c87c-494a-97f9-a7f40299fca6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-fd97923f-077e-4ffd-aaf5-d6ed83515b72 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-d6c13e19-bd6a-4852-8e0f-0d811761b433 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-8124c3be-1c92-4f58-b99a-b303ab878a72 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-a3badd6e-7383-4458-b9b1-ea0a157a8887 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-e1573033-396d-40ad-b246-f40f6bfd4bdd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_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_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_console_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_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.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_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_locked ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.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 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-d7761c53-1acd-4ced-85c0-00ac932d2d36 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2020-03-11T19:45:28.860032+00:00"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-f80699ca-73f6-4117-a85c-757c24e725ea X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.11 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:29.001062+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': '2020-03-11T19:45:29.001062+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'description': 'useful stuff', '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-fe2f4587-42a0-4902-a354-0ed6254d974a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": "useful stuff", "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:29.062916+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-33fdc7d2-e215-4b19-95f1-7ac4ba8a6935 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-20b5f8ea-2de3-482d-8f09-457372c30446 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:28.814820+00:00"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'owner': 'bob', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-05bfe139-233b-4eca-9591-250e2f484749 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'protected': True, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fb11d7db-620e-4bbf-94b0-a69231b0e205 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify protected or protected_reason on node creation. These fields can only be set for active nodes\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'maintenance', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fee4b2a7-8a2e-440f-9473-2bd619f7c0aa X-Openstack-Ironic-Api-Maximum-Version: 1.56 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', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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-5832589c-97fd-4fe7-94ba-98367caf9d5d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'states', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-635b04d8-e489-4e94-b630-e656d69efc32 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'vendor_passthru', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-49e6e1d9-cf89-465a-9db1-0c0af2a12400 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'detail', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ... ok PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4402a8a7-5d8a-4446-afef-fdc97308f762 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-289ce631-394c-4d4d-b9cb-bbe22fee4df6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-aa3fce21-8ddc-4dae-9597-fdea3c732ded X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-ea0406db-2829-4882-a664-189f6ca14c95 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-e88d6def-35f3-4b18-90ca-860c5a167c3c X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': 'deleted'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-b95b0a38-7c11-4622-a1a0-20d69a3d9c92 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-8f43c1ba-4a10-4aef-860b-04cc1e1e5d89 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-b0707772-7931-4c94-ae36-a87b063f0327 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/states/console {'enabled': 'true'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d98a86d9-5e7d-491f-98b9-9ed0169fb1da X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'invalid-value'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cf2541be-4534-445b-b54e-245bbf42219a X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-ec176193-2f07-4415-9a92-78180ff4ca54 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/node-39/traits/CUSTOM_3 {} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-3b3c4f33-0c35-4630-9fc5-9447ca2f03fc X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 {} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a82da9ed-7b26-49ab-b4ac-de3d48c944c0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-45cbb814-cbd7-4da8-8ba5-682f39374f4e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/badname/traits {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6adabbd1-9bd2-4307-99f0-9a2690269c21 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'trait': 'CUSTOM_3'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5e44bd56-858c-4183-985d-dbbfa72097e6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c01a421b-fb93-4ac5-9e7a-ba2d39e695ea X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_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_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_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_is_smartnic ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ... ok ironic.tests.unit.api.controllers.v1.test_port.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_list_with_deleted_node ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ... ok PATCH: /v1/nodes/f23fe784-c437-4bb0-8359-2786928d5db1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-076da719-8add-41dd-8a0c-b67690ba6764 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "f23fe784-c437-4bb0-8359-2786928d5db1", "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/f23fe784-c437-4bb0-8359-2786928d5db1", "rel": "self"}, {"href": "http://localhost/nodes/f23fe784-c437-4bb0-8359-2786928d5db1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f23fe784-c437-4bb0-8359-2786928d5db1/ports", "rel": "self"}, {"href": "http://localhost/nodes/f23fe784-c437-4bb0-8359-2786928d5db1/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:27.981295+00:00"} PATCH: /v1/nodes/7582f708-83cf-49d2-974c-748fcd193156 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66d363c1-17b8-4a34-9077-c58260deab54 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7582f708-83cf-49d2-974c-748fcd193156", "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/7582f708-83cf-49d2-974c-748fcd193156", "rel": "self"}, {"href": "http://localhost/nodes/7582f708-83cf-49d2-974c-748fcd193156", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7582f708-83cf-49d2-974c-748fcd193156/ports", "rel": "self"}, {"href": "http://localhost/nodes/7582f708-83cf-49d2-974c-748fcd193156/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:28.003613+00:00"} PATCH: /v1/nodes/34d7812d-6342-4c7d-9a61-3b3db7fb1017 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4325ed9c-5789-4abb-834d-3db139796524 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "34d7812d-6342-4c7d-9a61-3b3db7fb1017", "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/34d7812d-6342-4c7d-9a61-3b3db7fb1017", "rel": "self"}, {"href": "http://localhost/nodes/34d7812d-6342-4c7d-9a61-3b3db7fb1017", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/34d7812d-6342-4c7d-9a61-3b3db7fb1017/ports", "rel": "self"}, {"href": "http://localhost/nodes/34d7812d-6342-4c7d-9a61-3b3db7fb1017/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:28.024829+00:00"} PATCH: /v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd6100e2-acca-4e8f-8aea-b9f18c1bbcf4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "59856499-2879-4b2e-b3bc-7d926b851edf", "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/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/states", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:28.069892+00:00"} PATCH: /v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-563d2410-c60c-4372-9313-806d0728b720 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "59856499-2879-4b2e-b3bc-7d926b851edf", "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/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/states", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:28.069892+00:00"} PATCH: /v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ccbbf151-9754-456e-8299-6417a72ce0ee X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "59856499-2879-4b2e-b3bc-7d926b851edf", "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/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/states", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:28.069892+00:00"} PATCH: /v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d745412b-c6f8-44a7-851c-7630df309183 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "59856499-2879-4b2e-b3bc-7d926b851edf", "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/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/states", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:28.069892+00:00"} PATCH: /v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f685beb5-132c-4bd4-a438-9f9af902f38c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "59856499-2879-4b2e-b3bc-7d926b851edf", "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/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/states", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:28.069892+00:00"} PATCH: /v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b753d659-0699-4e8d-bbac-20a673784896 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "59856499-2879-4b2e-b3bc-7d926b851edf", "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/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/states", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:28.069892+00:00"} PATCH: /v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad033ad3-544d-4055-9bb4-6a035e21b7ba X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "59856499-2879-4b2e-b3bc-7d926b851edf", "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/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/states", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:28.069892+00:00"} PATCH: /v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c1931ad-943b-4828-87d1-e1e52b1a2d89 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "59856499-2879-4b2e-b3bc-7d926b851edf", "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/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/states", "rel": "self"}, {"href": "http://localhost/nodes/59856499-2879-4b2e-b3bc-7d926b851edf/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:28.069892+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 ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': '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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': None, 'owner': None, 'description': 'useful stuff', 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:29.062916+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-3defc2a4-720b-438e-811a-78f9687667b8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"foo": 123}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:29.583841+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {'foo': 123}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:29.583841+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-0db7f90b-18e2-4636-95ed-f8fd9d4be8f2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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'}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_explicit_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface ... ok GET: /v1/ports/?limit=3 {} GOT:{'ports': [{'uuid': 'a2827d5c-614c-4a68-9a07-d153ca090df6', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/a2827d5c-614c-4a68-9a07-d153ca090df6', 'rel': 'self'}, {'href': 'http://localhost/ports/a2827d5c-614c-4a68-9a07-d153ca090df6', 'rel': 'bookmark'}]}, {'uuid': 'ccebbefc-8554-45d7-b9a5-214bce58ecea', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/ccebbefc-8554-45d7-b9a5-214bce58ecea', 'rel': 'self'}, {'href': 'http://localhost/ports/ccebbefc-8554-45d7-b9a5-214bce58ecea', 'rel': 'bookmark'}]}, {'uuid': '024f7a05-1bd5-4665-8973-56e2133ac85c', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/024f7a05-1bd5-4665-8973-56e2133ac85c', 'rel': 'self'}, {'href': 'http://localhost/ports/024f7a05-1bd5-4665-8973-56e2133ac85c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=024f7a05-1bd5-4665-8973-56e2133ac85c'} GET: /v1/ports {} GOT:{'ports': [{'uuid': '497e7d74-f1cd-412b-9481-1dd563241c8c', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/497e7d74-f1cd-412b-9481-1dd563241c8c', 'rel': 'self'}, {'href': 'http://localhost/ports/497e7d74-f1cd-412b-9481-1dd563241c8c', 'rel': 'bookmark'}]}, {'uuid': '8bfcda7d-dde9-4cfd-88be-7e76afbcd747', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/8bfcda7d-dde9-4cfd-88be-7e76afbcd747', 'rel': 'self'}, {'href': 'http://localhost/ports/8bfcda7d-dde9-4cfd-88be-7e76afbcd747', 'rel': 'bookmark'}]}, {'uuid': '3d949de5-a67a-446c-a434-c26a0daad46d', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/3d949de5-a67a-446c-a434-c26a0daad46d', 'rel': 'self'}, {'href': 'http://localhost/ports/3d949de5-a67a-446c-a434-c26a0daad46d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=3d949de5-a67a-446c-a434-c26a0daad46d'} 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', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:30.399146+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': 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'}], 'is_smartnic': True, 'created_at': '2020-03-11T19:45:30.399146+00:00', 'updated_at': None} GET: /v1/ports/aef3385d-b444-4814-b9a1-537c52b41cf1 {} GOT:{'uuid': 'aef3385d-b444-4814-b9a1-537c52b41cf1', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/aef3385d-b444-4814-b9a1-537c52b41cf1', 'rel': 'self'}, {'href': 'http://localhost/ports/aef3385d-b444-4814-b9a1-537c52b41cf1', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:30.456161+00:00', 'updated_at': None} GET: /v1/ports/aef3385d-b444-4814-b9a1-537c52b41cf1 {} GOT:{'uuid': 'aef3385d-b444-4814-b9a1-537c52b41cf1', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/aef3385d-b444-4814-b9a1-537c52b41cf1', 'rel': 'self'}, {'href': 'http://localhost/ports/aef3385d-b444-4814-b9a1-537c52b41cf1', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:30.456161+00:00', 'updated_at': None} GET: /ports/aef3385d-b444-4814-b9a1-537c52b41cf1 {} GOT:{'uuid': 'aef3385d-b444-4814-b9a1-537c52b41cf1', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/aef3385d-b444-4814-b9a1-537c52b41cf1', 'rel': 'self'}, {'href': 'http://localhost/ports/aef3385d-b444-4814-b9a1-537c52b41cf1', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:30.456161+00:00', 'updated_at': None} GET: /v1/ports/0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0 {} GOT:{'uuid': '0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0', 'rel': 'self'}, {'href': 'http://foo/ports/0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:30.526661+00:00', 'updated_at': None} GET: /v1/ports/0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0 {} GOT:{'uuid': '0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0', 'rel': 'self'}, {'href': 'http://foo/ports/0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:30.526661+00:00', 'updated_at': None} GET: /ports/0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0 {} GOT:{'uuid': '0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0', 'rel': 'self'}, {'href': 'http://foo/ports/0b6546de-c4a5-4dd3-b6fb-b6a20b1bc4b0', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:30.526661+00:00', 'updated_at': None} GET: /v1/ports {} GOT:{'ports': []} 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'}], 'is_smartnic': False, 'created_at': '2020-03-11T19:45:30.632359+00:00', 'updated_at': None}]} GET: /v1/ports {} GOT:{'ports': [{'uuid': 'cf556fe9-671a-4a64-a597-e1bbb82013bc', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/cf556fe9-671a-4a64-a597-e1bbb82013bc', 'rel': 'self'}, {'href': 'http://localhost/ports/cf556fe9-671a-4a64-a597-e1bbb82013bc', 'rel': 'bookmark'}]}, {'uuid': '2b1ae349-edad-4e87-a1bd-247f1bc1992b', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/2b1ae349-edad-4e87-a1bd-247f1bc1992b', 'rel': 'self'}, {'href': 'http://localhost/ports/2b1ae349-edad-4e87-a1bd-247f1bc1992b', 'rel': 'bookmark'}]}, {'uuid': '5c5c022b-9837-495c-92b3-4ef8edcdeabd', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/5c5c022b-9837-495c-92b3-4ef8edcdeabd', 'rel': 'self'}, {'href': 'http://localhost/ports/5c5c022b-9837-495c-92b3-4ef8edcdeabd', 'rel': 'bookmark'}]}, {'uuid': 'fdda10da-bb5e-4dc4-a378-c307cb8f1a8b', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/fdda10da-bb5e-4dc4-a378-c307cb8f1a8b', 'rel': 'self'}, {'href': 'http://localhost/ports/fdda10da-bb5e-4dc4-a378-c307cb8f1a8b', 'rel': 'bookmark'}]}, {'uuid': '6fcc73c8-36cf-4c9d-bddb-b320e4c3546c', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/6fcc73c8-36cf-4c9d-bddb-b320e4c3546c', 'rel': 'self'}, {'href': 'http://localhost/ports/6fcc73c8-36cf-4c9d-bddb-b320e4c3546c', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_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_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_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_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_invalid_physnet_too_long ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_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_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_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_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_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_extra_vif_port_id ... ok PATCH: /v1/nodes/ba7e3466-1b99-4cde-81e0-8197fd35dda8 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7302fe0a-c8cb-4482-ad16-36b5032a29db X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "ba7e3466-1b99-4cde-81e0-8197fd35dda8", "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/ba7e3466-1b99-4cde-81e0-8197fd35dda8", "rel": "self"}, {"href": "http://localhost/nodes/ba7e3466-1b99-4cde-81e0-8197fd35dda8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ba7e3466-1b99-4cde-81e0-8197fd35dda8/ports", "rel": "self"}, {"href": "http://localhost/nodes/ba7e3466-1b99-4cde-81e0-8197fd35dda8/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ba7e3466-1b99-4cde-81e0-8197fd35dda8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ba7e3466-1b99-4cde-81e0-8197fd35dda8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ba7e3466-1b99-4cde-81e0-8197fd35dda8/volume", "rel": "self"}, {"href": "http://localhost/nodes/ba7e3466-1b99-4cde-81e0-8197fd35dda8/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ba7e3466-1b99-4cde-81e0-8197fd35dda8/states", "rel": "self"}, {"href": "http://localhost/nodes/ba7e3466-1b99-4cde-81e0-8197fd35dda8/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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:29.303679+00:00"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4091daea-ec35-463d-abd2-e9b3082a35c0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2020-03-11T19:45:29.356164+00:00"} PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e51843b9-9e29-45d6-aa4a-deb4d4f1de40 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2020-03-11T19:45:29.409885+00:00"} 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-00e2c564-ff8c-466f-ad3e-ab0a6b8e431b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2020-03-11T19:45:29.462162+00:00"} PATCH: /v1/nodes/d37dafb7-7106-4045-a07b-f8fe6e2ec1f4 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b095f2cc-2a50-43b2-b8d9-7739982ee041 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/33210025-1eca-4a96-bd18-5b764dc8835f [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-273f8b11-04e6-4cc3-835f-6b20150e4298 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node traits via node patch. Node traits should be updated via the node traits API.\", \"debuginfo\": null}"}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_description_oversize ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-b8bfae90-09df-4edd-bdb9-0a045e8fb08f X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-4c13a3a0-a724-43de-a7a4-3210044482fe X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:30.463517+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_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_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_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_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_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_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_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_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver ... ok GET: /v1/portgroups/123 123/ports {} GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected a logical name or UUID but received 123 123.\"}"} GET: /v1/ports?sort_key=uuid {} GOT:{'ports': [{'uuid': '566a6ee5-8d26-4a0f-8b34-346b692f6a30', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/566a6ee5-8d26-4a0f-8b34-346b692f6a30', 'rel': 'self'}, {'href': 'http://localhost/ports/566a6ee5-8d26-4a0f-8b34-346b692f6a30', 'rel': 'bookmark'}]}, {'uuid': '988571cd-aa94-45bb-8bc2-a6eb9d135817', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/988571cd-aa94-45bb-8bc2-a6eb9d135817', 'rel': 'self'}, {'href': 'http://localhost/ports/988571cd-aa94-45bb-8bc2-a6eb9d135817', 'rel': 'bookmark'}]}, {'uuid': 'dc77ea14-edf1-4108-a0fe-f1c12c4580a2', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/dc77ea14-edf1-4108-a0fe-f1c12c4580a2', 'rel': 'self'}, {'href': 'http://localhost/ports/dc77ea14-edf1-4108-a0fe-f1c12c4580a2', 'rel': 'bookmark'}]}]} GET: /v1/ports?sort_key=pxe_enabled {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-644796d4-1cf3-4c13-bbe3-ab13e45c5f0c X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/285aa0ef-1b26-4c0c-8c4a-d2f895051498 [{'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-ae18f57f-2fda-44ee-85a5-1dc67b0fd46f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "285aa0ef-1b26-4c0c-8c4a-d2f895051498", "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/285aa0ef-1b26-4c0c-8c4a-d2f895051498", "rel": "self"}, {"href": "http://localhost/ports/285aa0ef-1b26-4c0c-8c4a-d2f895051498", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:30.863031+00:00", "updated_at": "2020-03-11T19:45:30.892580+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 1234, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cec06d2f-f4d5-4a3f-9a2d-bab3e321b0ce X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3caa3e83-074b-43a3-b651-85aded2cb1ca X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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/7e0d7f9f-c562-4482-8edd-294399f931ee [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9acf2010-0b17-4868-8ab3-8256aa53ab45 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "7e0d7f9f-c562-4482-8edd-294399f931ee", "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/7e0d7f9f-c562-4482-8edd-294399f931ee", "rel": "self"}, {"href": "http://localhost/ports/7e0d7f9f-c562-4482-8edd-294399f931ee", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:31.006621+00:00", "updated_at": "2020-03-11T19:45:31.036322+00:00"} PATCH: /v1/ports/258b0aa4-b067-474d-85cd-b3dd1b0091d2 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b2dc99fd-564d-4292-85b2-62dd9866360d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "258b0aa4-b067-474d-85cd-b3dd1b0091d2", "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/258b0aa4-b067-474d-85cd-b3dd1b0091d2", "rel": "self"}, {"href": "http://localhost/ports/258b0aa4-b067-474d-85cd-b3dd1b0091d2", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:31.071128+00:00", "updated_at": "2020-03-11T19:45:31.099478+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d9e947c7-bd34-40d8-8ae7-cab4f8e1b29d X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0d23a288-3567-4eac-a272-a903154548ac X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/4e65e70a-d0b7-4f2d-aa66-735ca64964ae [{'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-44a5c8ac-a496-4804-9993-3833403d97dd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "4e65e70a-d0b7-4f2d-aa66-735ca64964ae", "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/4e65e70a-d0b7-4f2d-aa66-735ca64964ae", "rel": "self"}, {"href": "http://localhost/ports/4e65e70a-d0b7-4f2d-aa66-735ca64964ae", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:31.214600+00:00", "updated_at": "2020-03-11T19:45:31.247444+00:00"} 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-2456f54c-207a-45f0-bbde-a75d7164ec9a X-Openstack-Ironic-Api-Maximum-Version: 1.56 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.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_not_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow ... ok ironic.tests.unit.api.controllers.v1.test_port.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.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 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_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_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_port.TestPost.test_create_port_invalid_node_uuid_format ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': None, 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:30.463517+00:00'} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-8e4bd887-3679-4cff-97d4-b1fbb15be679 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru {'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1068410a-1c96-4263-83a4-bf0e51fa20a6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': 'adopt'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-df32fe08-867a-4195-906e-eadbcf1cf891 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1405efb3-c764-4c23-92ee-fe3b996fa3ef X-Openstack-Ironic-Api-Maximum-Version: 1.56 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: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-6c7d92d6-9f06-47b2-9600-53ce60a0c62b X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 off'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ae2e5b14-4378-4eff-9ea2-c2dae39ac440 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-7ed9aa2e-220f-471e-b2e4-15ea1f2fbc10 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/node-39/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/node-39/states Openstack-Request-Id: req-eebf6d18-d1f6-4f46-9ce8-f445aea8f5cb X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-51a655b5-6db0-47c9-8b26-eb884a074901 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-297d2369-e067-4dd1-8341-308b79398290 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3e659040-6831-400b-b591-b1d317eda167 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-3126ab9e-9a1b-49fa-8f1b-b336b2181bc0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7c25c246-2704-472f-b451-1da8dd7f3394 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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_no_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_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_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_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_cleansteps_not_clean ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict ... ok ironic.tests.unit.api.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 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_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_console_mode_disabled ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_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 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ... ok ironic.tests.unit.api.controllers.v1.test_node.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 POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'description': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a59fe2f2-8d74-44f0-8884-9839f08a9f2a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with description exceeding 4096 characters\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-dcdad01b-2439-4bf1-8ee3-7da8ffc8eec9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": "class2", "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": "flat", "updated_at": null, "created_at": "2020-03-11T19:45:30.069092+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'class2', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2020-03-11T19:45:30.069092+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_chassis ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ed4feed5-e20b-418b-ab9d-fca7f6c77e17 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, '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-f5002450-377e-4808-9d00-50c771169166 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:31.441280+00:00", "updated_at": null} POST: /v1/ports {'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/384289e4-9e1c-4b00-9e45-4641e71e8448 Openstack-Request-Id: req-5f96b6db-5a7c-42d5-8118-0feaf3bfbe25 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "384289e4-9e1c-4b00-9e45-4641e71e8448", "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/384289e4-9e1c-4b00-9e45-4641e71e8448", "rel": "self"}, {"href": "http://localhost/ports/384289e4-9e1c-4b00-9e45-4641e71e8448", "rel": "bookmark"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:31.501783+00:00", "updated_at": null} GET: /v1/ports/384289e4-9e1c-4b00-9e45-4641e71e8448 {} GOT:{'uuid': '384289e4-9e1c-4b00-9e45-4641e71e8448', '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/384289e4-9e1c-4b00-9e45-4641e71e8448', 'rel': 'self'}, {'href': 'http://localhost/ports/384289e4-9e1c-4b00-9e45-4641e71e8448', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-03-11T19:45:31.501783+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, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4751253a-16d0-4061-b190-6fe4f8db5130 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': 'invalid-format', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8a7780f7-89e8-4c44-abe1-64198aac17e3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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', 'switch_info': 'fooswitch'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bf9f780a-2814-40f4-9137-5c03e94a27f1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys. Required keys are {'switch_id', 'port_id'}. Or in case of Smart NIC {'hostname', 'port_id'}. Submitted keys are {'switch_info', 'switch_id'} .\", \"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-6b045967-80c8-4860-8905-6195135868ce X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:31.764660+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version ... ok ironic.tests.unit.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_nopxe_noportgroup ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup ... ok ironic.tests.unit.api.controllers.v1.test_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_portgroup_uuid_not_found ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-28730704-7eff-4729-a47e-b25d4e808062 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-73bed819-8b86-4f36-99ae-5e85212dded9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} POST: /v1/nodes {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bddc97ff-c61a-44b9-9ec4-3c2ab23f0f01 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-20122b30-03f6-4bbe-baa4-0ccf8f303ce5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": null, "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:31.012152+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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': None, 'owner': None, 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:31.012152+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver ... ok 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-dfa9f3d9-6607-4cd7-b0a1-f2a845819e9b X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-c652b5bc-9043-411b-b4df-80363dbfb71b X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-fcf36d91-fd88-4401-adc9-522ba949d02f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/node-39/states/provision {'target': 'active'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ba2a74a5-1050-4671-bf9a-fca550f4e65c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'rescue_password': 'password'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4ba45f1d-2276-4d6d-bfe2-3a6304ce4fec X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': 'provide', 'clean_steps': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4f6904fe-faf6-486b-8e13-2b41c3467e38 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is only valid when setting target provision state to clean\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-ded44680-acd6-4254-9153-f683b17535d9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': 'foo'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-020c2f32-0cb5-434e-8e1d-181b5d21f0f3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': {'user_data': 'foo'}} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-d9ee43bb-3d23-4a74-9a9d-e1d9f5cda505 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8404463e-35c6-4b6f-a1b9-2b28e8561101 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-15b6b245-f00c-4790-bc19-246a34557b2a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=blah {'boot_device': 'pxe'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-11879fc3-dbba-4601-9581-7131935904b2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/states/console {'enabled': 'false'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console Openstack-Request-Id: req-8c2a93bd-a476-4e76-8c8b-e6287d370166 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console Openstack-Request-Id: req-dbf173f9-d872-47b8-964a-1cb71bd89a5e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted Openstack-Request-Id: req-4d15cff8-8933-4b47-9961-83fb98af11bf X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} GOT:Response: 202 Accepted Openstack-Request-Id: req-07830683-8bb1-4a04-9f14-4256e1275fec X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/node-39/traits/bad_trait {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d3e97cee-57e9-498a-a71d-259bf2c5462c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ab698b58-e49b-446a-8fd8-2eaecf32cee5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_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_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 ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_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_notification_utils.APINotifyTestCase.test_emit_maintenance_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_notification_uuid_unset ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_notification_uuid_unset ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification ... ok ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress ... ok ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... 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_not_supported ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_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_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_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 ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '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-9fcbbee9-10a0-4c53-994b-06856b726fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-7d168c5e-5ce4-41c6-9954-4099ad334609 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:31.848817+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, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-cc0802bd-c3bf-4cbd-82b7-c800cda65078 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:31.903148+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, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9628b27b-f0dc-4b99-ad5b-87842ebfaf51 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': {'vif_port_id': 'e8df9c8c-caf3-4144-a2f9-64a034bb75ff'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-3d12daa1-57ed-4853-89ca-229141a7e1f9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "e8df9c8c-caf3-4144-a2f9-64a034bb75ff"}, "internal_info": {"tenant_vif_port_id": "e8df9c8c-caf3-4144-a2f9-64a034bb75ff"}, "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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:31.988012+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': '625f9f66-b361-43b6-ad75-4b69b6b14b02'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-dbdfdff7-624f-4e7f-9a69-bdf9ce7cbc04 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "625f9f66-b361-43b6-ad75-4b69b6b14b02"}, "internal_info": {"tenant_vif_port_id": "625f9f66-b361-43b6-ad75-4b69b6b14b02"}, "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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:32.043468+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-cb6c40bf-ba71-4f90-afa0-fa96d1706bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:32.098682+00:00", "updated_at": null}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_is_smartnic_default_value ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.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_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 ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-9c8a2d88-128b-4002-b383-04b509121a02 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:31.568583+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2020-03-11T19:45:31.568583+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-27317413-0214-4cf4-9e4e-b4271849cc9c X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'owner': 'cowsay', '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-a95e8821-f002-4ea9-ae22-8d104e296e53 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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": "", "automated_clean": null, "protected": false, "protected_reason": null, "conductor": null, "owner": "cowsay", "description": null, "allocation_uuid": null, "updated_at": null, "created_at": "2020-03-11T19:45:31.652606+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': '', 'automated_clean': None, 'protected': False, 'protected_reason': None, 'conductor': None, 'owner': 'cowsay', 'description': None, 'allocation_uuid': None, 'updated_at': None, 'created_at': '2020-03-11T19:45:31.652606+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version ... ok DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 204 No Content Openstack-Request-Id: req-e2de696d-e76a-473d-9916-40e3dbca55a5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 DELETE: /v1/nodes/node-39/traits/CUSTOM_12 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c6ec88a0-d4cd-45ea-acee-92e6b68aa907 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a trait 'CUSTOM_12'\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} GOT:Response: 204 No Content Openstack-Request-Id: req-ea4a5366-484b-4118-b26e-80723d354927 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-744657bd-fe6e-4513-a5c9-c15dff1d294b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} GOT:Response: 204 No Content Openstack-Request-Id: req-2959133f-a594-4d77-b7a0-57f390aee6f0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-b3899a79-3ad4-440a-af40-1a1c8c2e4248 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute port_uuid. Value: '52:54:00:cf:2d:31'. unable to convert to uuid. Error: Expected a UUID but received 52:54:00:cf:2d:31.\", \"debuginfo\": null}"} DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-9c2d6130-d34a-4a99-8cf9-b2874e1c4529 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/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'}], 'is_smartnic': True, 'created_at': '2020-03-11T19:45:32.590171+00:00', 'updated_at': None}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6f35d680-674d-47af-86fa-5cd01f112828 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/ports/detail?node=test-node {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a6d5a9fe-2ba4-432d-b683-8940316b646a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports?detail=True {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': False, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-03-11T19:45:32.694330+00:00', 'updated_at': None}]} GET: /v1/ports?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b6993cb4-d770-4786-98e1-60120b067d1d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/ports?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3d8c8c9c-8506-41fd-ac3c-7dbe61608429 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/ports/detail?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'ports': []} GET: /v1/ports/detail?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123&node=node-name {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:32.815575+00:00', 'updated_at': None}]} GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:32.852052+00:00', 'updated_at': None}]} GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1958bbdd-0038-45ca-a016-fcd5a7a62df3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:32.916482+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_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_add_multi ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_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_extra_vif_port_id_not_internal ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_internal ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_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_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_address_already_exist ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-85c3bc92-edb1-4177-ada5-ba70afc03f91 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:32.153081+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, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-32bbb24f-7ba9-4e03-b8c6-0bb6cee944eb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-d56d8ba5-3ef0-420c-9b33-deb0f71d4502 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:32.245354+00:00", "updated_at": null} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a588d8b4-8021-4358-b53b-a0c6b528c01f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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 {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:32.316457+00:00', 'updated_at': None}]} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?detail=False {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/detail?sort_key=mode {} GOT:{'portgroups': [{'uuid': '1fa5296f-f3ce-4915-b0b0-af67203f9767', '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/1fa5296f-f3ce-4915-b0b0-af67203f9767', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1fa5296f-f3ce-4915-b0b0-af67203f9767', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_1', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/1fa5296f-f3ce-4915-b0b0-af67203f9767/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1fa5296f-f3ce-4915-b0b0-af67203f9767/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:32.407358+00:00', 'updated_at': None}, {'uuid': '949b650e-7f74-4da6-85bd-c3c3f758b339', '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/949b650e-7f74-4da6-85bd-c3c3f758b339', 'rel': 'self'}, {'href': 'http://localhost/portgroups/949b650e-7f74-4da6-85bd-c3c3f758b339', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_2', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/949b650e-7f74-4da6-85bd-c3c3f758b339/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/949b650e-7f74-4da6-85bd-c3c3f758b339/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:32.405734+00:00', 'updated_at': None}, {'uuid': '1ebf0e5f-4ad6-4bb7-901f-54b7c26ae495', '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/1ebf0e5f-4ad6-4bb7-901f-54b7c26ae495', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1ebf0e5f-4ad6-4bb7-901f-54b7c26ae495', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_3', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/1ebf0e5f-4ad6-4bb7-901f-54b7c26ae495/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1ebf0e5f-4ad6-4bb7-901f-54b7c26ae495/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:32.403943+00:00', 'updated_at': None}]} GET: /v1/portgroups/detail?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e95fa748-c716-4af7-a180-411882b0bde0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_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_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json 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_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_portgroup_not_found ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:32.916482+00:00', 'updated_at': None} PATCH: /v1/ports/40cc04ec-c43d-492c-8d51-1149827187d2 [{'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-5d110dd9-802e-4015-acd8-6a7e106ec183 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "40cc04ec-c43d-492c-8d51-1149827187d2", "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/40cc04ec-c43d-492c-8d51-1149827187d2", "rel": "self"}, {"href": "http://localhost/ports/40cc04ec-c43d-492c-8d51-1149827187d2", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:32.970023+00:00", "updated_at": "2020-03-11T19:45:32.994554+00:00"} PATCH: /v1/ports/5e1082e1-bf14-4142-854d-2c8d3dd00d34 [{'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-0eb2d48a-f2ca-4651-b873-af2a79409980 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "5e1082e1-bf14-4142-854d-2c8d3dd00d34", "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/5e1082e1-bf14-4142-854d-2c8d3dd00d34", "rel": "self"}, {"href": "http://localhost/ports/5e1082e1-bf14-4142-854d-2c8d3dd00d34", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.024334+00:00", "updated_at": "2020-03-11T19:45:33.051340+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-4560144e-b8f6-4419-bcea-5dc93d865e3f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.079032+00:00", "updated_at": "2020-03-11T19:45:33.106544+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-d21d29c9-01e6-4ccc-a955-549da2d90a70 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/96283cc4-ce55-4c32-a82b-8e4fbe7003d3 [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ddc9168d-6ec2-4767-bce8-09d3a3156710 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/e73aa947-e7ee-405f-aa67-6a836b02c077 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-536ed754-89cf-43b5-97b1-14491cef05a2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "e73aa947-e7ee-405f-aa67-6a836b02c077", "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/e73aa947-e7ee-405f-aa67-6a836b02c077", "rel": "self"}, {"href": "http://localhost/ports/e73aa947-e7ee-405f-aa67-6a836b02c077", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.206180+00:00", "updated_at": "2020-03-11T19:45:33.231766+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-8242cfb6-9bc5-4e44-bde4-ad0545bfaa52 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-901f879c-1941-490a-8698-af0a8ce80879 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.298694+00:00", "updated_at": "2020-03-11T19:45:33.330685+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-17022aaf-c0d1-45c9-8f30-3705840f7779 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9bc6554-6fa0-4024-91ed-d2633aea6c32 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.400954+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_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.TestPatch.test_update_port_address_normalized ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__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_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_error ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': 'foo', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c258e6b3-3316-4615-a893-b402c23ac878 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d102c501-b107-4af8-a21f-723f4898083f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'console_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8a7ca0f7-687b-4dbc-88bf-adabea79bda6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d3ce0d28-99db-47a2-bff1-75409a2aa783 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-901dcb4d-35f8-4006-a354-a6403f1d08b6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-876ba592-db6e-402d-9e01-56eb0dad5930 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0dc6e2a5-6289-4767-a580-a73e759cdd65 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-57d8d394-2731-4daa-b528-a059fa1b2005 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b6346cfd-81c0-424b-ad6a-5ff9c446e52d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'traits': ['CUSTOM_4']}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_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 GET: /v1/portgroups?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d0873685-f8ec-4d3b-b7a2-a998e88e2c5f X-Openstack-Ironic-Api-Maximum-Version: 1.56 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?node=test-node {} GOT:{'portgroups': [{'uuid': 'fe1af46c-209e-4920-906c-3f2b30e1ec86', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/fe1af46c-209e-4920-906c-3f2b30e1ec86', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fe1af46c-209e-4920-906c-3f2b30e1ec86', 'rel': 'bookmark'}]}, {'uuid': '8869792f-3e0e-45c8-9767-a661e73ad45d', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/8869792f-3e0e-45c8-9767-a661e73ad45d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8869792f-3e0e-45c8-9767-a661e73ad45d', 'rel': 'bookmark'}]}, {'uuid': 'd68a2f62-1fe8-4535-850c-370b14415948', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/d68a2f62-1fe8-4535-850c-370b14415948', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d68a2f62-1fe8-4535-850c-370b14415948', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?fields=uuid,extra {} GOT:{'portgroups': [{'uuid': '55254dac-145d-4553-8faa-571ebb20fd6b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/55254dac-145d-4553-8faa-571ebb20fd6b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/55254dac-145d-4553-8faa-571ebb20fd6b', 'rel': 'bookmark'}]}, {'uuid': '8970cbc3-6e0e-46e2-9faf-28d5393f65bc', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/8970cbc3-6e0e-46e2-9faf-28d5393f65bc', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8970cbc3-6e0e-46e2-9faf-28d5393f65bc', 'rel': 'bookmark'}]}, {'uuid': '9316844f-f4d5-41fd-b5c7-bfa9df20ec9d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/9316844f-f4d5-41fd-b5c7-bfa9df20ec9d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9316844f-f4d5-41fd-b5c7-bfa9df20ec9d', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:33.438209+00:00', 'updated_at': None} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4.json {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:33.503245+00:00', 'updated_at': None} GET: /v1/portgroups?address=aa:bb:cc:dd:ee:ff {} GOT:{'portgroups': []} GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1d3a4095-2fc0-475d-8b08-e81ae1754942 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=uuid {} GOT:{'portgroups': [{'uuid': '559ab9fd-9830-4ba2-8abf-bd15a6c33cb3', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/559ab9fd-9830-4ba2-8abf-bd15a6c33cb3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/559ab9fd-9830-4ba2-8abf-bd15a6c33cb3', 'rel': 'bookmark'}]}, {'uuid': '6231405a-fc6b-4f00-9a7a-361ecc3609c6', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/6231405a-fc6b-4f00-9a7a-361ecc3609c6', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6231405a-fc6b-4f00-9a7a-361ecc3609c6', 'rel': 'bookmark'}]}, {'uuid': 'a4f2110b-394d-483f-b149-dc650ab3e8e4', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/a4f2110b-394d-483f-b149-dc650ab3e8e4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a4f2110b-394d-483f-b149-dc650ab3e8e4', 'rel': 'bookmark'}]}]} 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-648dedad-bbd5-442a-b9db-38a7f9a9d850 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.671118+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-c7c3d0b8-d089-4c94-a481-7e54b0e88f7c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.733135+00:00", "updated_at": "2020-03-11T19:45:33.737304+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra', 'op': 'remove'}]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_replace_multi ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ... ok 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-437c2cfc-9414-4d40-bec4-97683bc82955 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet2", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.648164+00:00", "updated_at": "2020-03-11T19:45:33.683987+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-59b3a5b7-87af-4e79-9206-5ab067fa5a7e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c1c0329-ce66-4352-8e60-c057637a8313 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.751306+00:00", "updated_at": "2020-03-11T19:45:33.784129+00:00"} PATCH: /v1/ports/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4b800a06-4453-46b5-8536-67ffd2a7dd93 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute port_uuid. Value: '52:54:00:cf:2d:31'. unable to convert to uuid. Error: Expected a UUID but received 52:54:00:cf:2d:31.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c4e6188-4a99-497d-ae4e-687b0ae017c4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.861253+00:00", "updated_at": "2020-03-11T19:45:33.891606+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-d77c4a42-bfd0-4534-9804-cc604260d4f1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': {'foo': 123}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-995ef99d-8fa0-4684-bdc4-e50ec2007768 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:34.065257+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'}], 'is_smartnic': False, 'created_at': '2020-03-11T19:45:34.065257+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, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-acef1000-d3c3-4dc1-94dd-b6c208b3fed0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 1234, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c676ebc1-c23f-4631-bc4f-4e543f445df5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_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_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_with_extra_vif_port_id_deprecated ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id_deprecated ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id ... ok ironic.tests.unit.api.controllers.v1.test_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.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.TestDelete.test_delete_portgroup_byname_not_existed ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7be0f2a6-4e80-4811-862c-543ccd3f42e5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-305bb2fc-7a8b-4fa3-ae6a-9696cbe72f6f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:33.420896+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:33.420896+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-7bc469af-3c75-402a-9b25-1af5a4161683 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:33.508347+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:33.508347+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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-b1ea9348-55e0-4fbf-84a4-144a9b4473da X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:33.719311+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_instance_info ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_instance_info ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_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_create_node_with_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f631208b-2f57-43ae-8244-c7770aec24ff X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'name': 'validate', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7543adb7-c29b-4c0d-a151-de6225df2a2e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b90e31c9-cf55-47b0-b87b-5c7171159c13 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': 'foo', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-0ff3b3c1-ea7e-4763-8209-8dfe699e4819 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "foo", "updated_at": null, "created_at": "2020-03-11T19:45:30.037118+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': 'foo', 'updated_at': None, 'created_at': '2020-03-11T19:45:30.037118+00:00'} POST: /v1/nodes {'uuid': 'ab8167c4-2626-4ae0-8972-038f23352df5', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/ab8167c4-2626-4ae0-8972-038f23352df5 Openstack-Request-Id: req-c6759f9c-8c4c-4613-a12c-63e34a355a48 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ab8167c4-2626-4ae0-8972-038f23352df5", "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/ab8167c4-2626-4ae0-8972-038f23352df5", "rel": "self"}, {"href": "http://localhost/nodes/ab8167c4-2626-4ae0-8972-038f23352df5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/ports", "rel": "self"}, {"href": "http://localhost/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/volume", "rel": "self"}, {"href": "http://localhost/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/states", "rel": "self"}, {"href": "http://localhost/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/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/ab8167c4-2626-4ae0-8972-038f23352df5 {} GOT:{'uuid': 'ab8167c4-2626-4ae0-8972-038f23352df5', '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/ab8167c4-2626-4ae0-8972-038f23352df5', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab8167c4-2626-4ae0-8972-038f23352df5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ab8167c4-2626-4ae0-8972-038f23352df5/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 {'uuid': 'ad71108d-887f-4b29-98d7-0e5bf8c4b829', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/ad71108d-887f-4b29-98d7-0e5bf8c4b829 Openstack-Request-Id: req-d1d80949-22e2-467a-aa15-debee609b67b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ad71108d-887f-4b29-98d7-0e5bf8c4b829", "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/ad71108d-887f-4b29-98d7-0e5bf8c4b829", "rel": "self"}, {"href": "http://localhost/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/ports", "rel": "self"}, {"href": "http://localhost/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/volume", "rel": "self"}, {"href": "http://localhost/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/states", "rel": "self"}, {"href": "http://localhost/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/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/ad71108d-887f-4b29-98d7-0e5bf8c4b829 {} GOT:{'uuid': 'ad71108d-887f-4b29-98d7-0e5bf8c4b829', '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/ad71108d-887f-4b29-98d7-0e5bf8c4b829', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad71108d-887f-4b29-98d7-0e5bf8c4b829/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 {'uuid': 'b8176bd3-2bc7-492c-8a95-4e928ff3071f', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/b8176bd3-2bc7-492c-8a95-4e928ff3071f Openstack-Request-Id: req-d2b450a6-efd4-48fd-8826-11250075354f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "b8176bd3-2bc7-492c-8a95-4e928ff3071f", "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/b8176bd3-2bc7-492c-8a95-4e928ff3071f", "rel": "self"}, {"href": "http://localhost/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/ports", "rel": "self"}, {"href": "http://localhost/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/volume", "rel": "self"}, {"href": "http://localhost/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/states", "rel": "self"}, {"href": "http://localhost/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/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/b8176bd3-2bc7-492c-8a95-4e928ff3071f {} GOT:{'uuid': 'b8176bd3-2bc7-492c-8a95-4e928ff3071f', '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/b8176bd3-2bc7-492c-8a95-4e928ff3071f', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8176bd3-2bc7-492c-8a95-4e928ff3071f/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 {'uuid': 'a6faae98-f183-4516-a2a6-f9c3560c5c4b', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/a6faae98-f183-4516-a2a6-f9c3560c5c4b Openstack-Request-Id: req-bc22f3bf-96fd-4790-80ab-1d796eb27231 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "a6faae98-f183-4516-a2a6-f9c3560c5c4b", "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/a6faae98-f183-4516-a2a6-f9c3560c5c4b", "rel": "self"}, {"href": "http://localhost/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/ports", "rel": "self"}, {"href": "http://localhost/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/volume", "rel": "self"}, {"href": "http://localhost/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/states", "rel": "self"}, {"href": "http://localhost/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/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/a6faae98-f183-4516-a2a6-f9c3560c5c4b {} GOT:{'uuid': 'a6faae98-f183-4516-a2a6-f9c3560c5c4b', '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/a6faae98-f183-4516-a2a6-f9c3560c5c4b', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6faae98-f183-4516-a2a6-f9c3560c5c4b/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 {'uuid': '0822d5b0-f4e3-49dd-9246-863444e250d0', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/0822d5b0-f4e3-49dd-9246-863444e250d0 Openstack-Request-Id: req-ab031770-5834-4434-a7a7-96743d1f3b1d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "0822d5b0-f4e3-49dd-9246-863444e250d0", "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/0822d5b0-f4e3-49dd-9246-863444e250d0", "rel": "self"}, {"href": "http://localhost/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/ports", "rel": "self"}, {"href": "http://localhost/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/volume", "rel": "self"}, {"href": "http://localhost/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/states", "rel": "self"}, {"href": "http://localhost/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/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/0822d5b0-f4e3-49dd-9246-863444e250d0 {} GOT:{'uuid': '0822d5b0-f4e3-49dd-9246-863444e250d0', '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/0822d5b0-f4e3-49dd-9246-863444e250d0', 'rel': 'self'}, {'href': 'http://localhost/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0822d5b0-f4e3-49dd-9246-863444e250d0/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 {'uuid': 'c794c4a0-9c51-4d61-a74e-c5b9eca4a512', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/c794c4a0-9c51-4d61-a74e-c5b9eca4a512 Openstack-Request-Id: req-a50ef9b2-f2ee-429c-b2ef-88e942100305 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "c794c4a0-9c51-4d61-a74e-c5b9eca4a512", "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/c794c4a0-9c51-4d61-a74e-c5b9eca4a512", "rel": "self"}, {"href": "http://localhost/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/ports", "rel": "self"}, {"href": "http://localhost/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/volume", "rel": "self"}, {"href": "http://localhost/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/states", "rel": "self"}, {"href": "http://localhost/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/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/c794c4a0-9c51-4d61-a74e-c5b9eca4a512 {} GOT:{'uuid': 'c794c4a0-9c51-4d61-a74e-c5b9eca4a512', '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/c794c4a0-9c51-4d61-a74e-c5b9eca4a512', 'rel': 'self'}, {'href': 'http://localhost/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c794c4a0-9c51-4d61-a74e-c5b9eca4a512/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 {'uuid': '44ecd30c-950e-4de9-9a5d-11f31627a7d6', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/44ecd30c-950e-4de9-9a5d-11f31627a7d6 Openstack-Request-Id: req-c57d9a1e-4f30-4203-813c-2d01a590fadd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "44ecd30c-950e-4de9-9a5d-11f31627a7d6", "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/44ecd30c-950e-4de9-9a5d-11f31627a7d6", "rel": "self"}, {"href": "http://localhost/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/ports", "rel": "self"}, {"href": "http://localhost/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/volume", "rel": "self"}, {"href": "http://localhost/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/states", "rel": "self"}, {"href": "http://localhost/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/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/44ecd30c-950e-4de9-9a5d-11f31627a7d6 {} GOT:{'uuid': '44ecd30c-950e-4de9-9a5d-11f31627a7d6', '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/44ecd30c-950e-4de9-9a5d-11f31627a7d6', 'rel': 'self'}, {'href': 'http://localhost/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/44ecd30c-950e-4de9-9a5d-11f31627a7d6/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 {'uuid': '457484cc-298a-44b1-b595-093e251d9454', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/457484cc-298a-44b1-b595-093e251d9454 Openstack-Request-Id: req-bc24a29f-81dd-4fc5-926d-fa34cce478df X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "457484cc-298a-44b1-b595-093e251d9454", "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/457484cc-298a-44b1-b595-093e251d9454", "rel": "self"}, {"href": "http://localhost/nodes/457484cc-298a-44b1-b595-093e251d9454", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/457484cc-298a-44b1-b595-093e251d9454/ports", "rel": "self"}, {"href": "http://localhost/nodes/457484cc-298a-44b1-b595-093e251d9454/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/457484cc-298a-44b1-b595-093e251d9454/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/457484cc-298a-44b1-b595-093e251d9454/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/457484cc-298a-44b1-b595-093e251d9454/volume", "rel": "self"}, {"href": "http://localhost/nodes/457484cc-298a-44b1-b595-093e251d9454/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/457484cc-298a-44b1-b595-093e251d9454/states", "rel": "self"}, {"href": "http://localhost/nodes/457484cc-298a-44b1-b595-093e251d9454/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/457484cc-298a-44b1-b595-093e251d9454 {} GOT:{'uuid': '457484cc-298a-44b1-b595-093e251d9454', '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/457484cc-298a-44b1-b595-093e251d9454', 'rel': 'self'}, {'href': 'http://localhost/nodes/457484cc-298a-44b1-b595-093e251d9454', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/457484cc-298a-44b1-b595-093e251d9454/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/457484cc-298a-44b1-b595-093e251d9454/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/457484cc-298a-44b1-b595-093e251d9454/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/457484cc-298a-44b1-b595-093e251d9454/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/457484cc-298a-44b1-b595-093e251d9454/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/457484cc-298a-44b1-b595-093e251d9454/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/457484cc-298a-44b1-b595-093e251d9454/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/457484cc-298a-44b1-b595-093e251d9454/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 {'uuid': '1ca4d7e4-c143-429d-8305-4a8e50fe764a', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/1ca4d7e4-c143-429d-8305-4a8e50fe764a Openstack-Request-Id: req-5d9c6ac8-ec2f-4e95-a694-f91e8624eee7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "1ca4d7e4-c143-429d-8305-4a8e50fe764a", "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/1ca4d7e4-c143-429d-8305-4a8e50fe764a", "rel": "self"}, {"href": "http://localhost/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/states", "rel": "self"}, {"href": "http://localhost/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/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/1ca4d7e4-c143-429d-8305-4a8e50fe764a {} GOT:{'uuid': '1ca4d7e4-c143-429d-8305-4a8e50fe764a', '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/1ca4d7e4-c143-429d-8305-4a8e50fe764a', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1ca4d7e4-c143-429d-8305-4a8e50fe764a/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 {'uuid': '6909a36c-d866-4ba9-9832-1dc05333cd87', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/6909a36c-d866-4ba9-9832-1dc05333cd87 Openstack-Request-Id: req-b2dd138a-46d0-4f4c-a438-9088ca8b7586 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "6909a36c-d866-4ba9-9832-1dc05333cd87", "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/6909a36c-d866-4ba9-9832-1dc05333cd87", "rel": "self"}, {"href": "http://localhost/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/ports", "rel": "self"}, {"href": "http://localhost/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/volume", "rel": "self"}, {"href": "http://localhost/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/states", "rel": "self"}, {"href": "http://localhost/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/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/6909a36c-d866-4ba9-9832-1dc05333cd87 {} GOT:{'uuid': '6909a36c-d866-4ba9-9832-1dc05333cd87', '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/6909a36c-d866-4ba9-9832-1dc05333cd87', 'rel': 'self'}, {'href': 'http://localhost/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6909a36c-d866-4ba9-9832-1dc05333cd87/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 {'uuid': 'dfd85751-2270-43ff-af73-5c52630215de', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/dfd85751-2270-43ff-af73-5c52630215de Openstack-Request-Id: req-8f4e609c-0d20-46d8-bb45-4a2d0b30c9b5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "dfd85751-2270-43ff-af73-5c52630215de", "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/dfd85751-2270-43ff-af73-5c52630215de", "rel": "self"}, {"href": "http://localhost/nodes/dfd85751-2270-43ff-af73-5c52630215de", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/dfd85751-2270-43ff-af73-5c52630215de/ports", "rel": "self"}, {"href": "http://localhost/nodes/dfd85751-2270-43ff-af73-5c52630215de/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/dfd85751-2270-43ff-af73-5c52630215de/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/dfd85751-2270-43ff-af73-5c52630215de/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/dfd85751-2270-43ff-af73-5c52630215de/volume", "rel": "self"}, {"href": "http://localhost/nodes/dfd85751-2270-43ff-af73-5c52630215de/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/dfd85751-2270-43ff-af73-5c52630215de/states", "rel": "self"}, {"href": "http://localhost/nodes/dfd85751-2270-43ff-af73-5c52630215de/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/dfd85751-2270-43ff-af73-5c52630215de {} GOT:{'uuid': 'dfd85751-2270-43ff-af73-5c52630215de', '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/dfd85751-2270-43ff-af73-5c52630215de', 'rel': 'self'}, {'href': 'http://localhost/nodes/dfd85751-2270-43ff-af73-5c52630215de', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/dfd85751-2270-43ff-af73-5c52630215de/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/dfd85751-2270-43ff-af73-5c52630215de/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/dfd85751-2270-43ff-af73-5c52630215de/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/dfd85751-2270-43ff-af73-5c52630215de/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/dfd85751-2270-43ff-af73-5c52630215de/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/dfd85751-2270-43ff-af73-5c52630215de/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/dfd85751-2270-43ff-af73-5c52630215de/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/dfd85751-2270-43ff-af73-5c52630215de/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 {'uuid': 'e1c9970f-fde2-40f7-8d87-7597c5b73dd1', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-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/e1c9970f-fde2-40f7-8d87-7597c5b73dd1 Openstack-Request-Id: req-f9d9f585-2b6f-4c58-9dcc-226e3d8db2a0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "e1c9970f-fde2-40f7-8d87-7597c5b73dd1", "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/e1c9970f-fde2-40f7-8d87-7597c5b73dd1", "rel": "self"}, {"href": "http://localhost/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/ports", "rel": "self"}, {"href": "http://localhost/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/volume", "rel": "self"}, {"href": "http://localhost/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/states", "rel": "self"}, {"href": "http://localhost/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/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/e1c9970f-fde2-40f7-8d87-7597c5b73dd1 {} GOT:{'uuid': 'e1c9970f-fde2-40f7-8d87-7597c5b73dd1', '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/e1c9970f-fde2-40f7-8d87-7597c5b73dd1', 'rel': 'self'}, {'href': 'http://localhost/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e1c9970f-fde2-40f7-8d87-7597c5b73dd1/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'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get ... 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_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_abort_invalid_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e29e2ba-c853-4d77-bb66-3bc8fccd4cad X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.733135+00:00", "updated_at": "2020-03-11T19:45:33.737304+00:00"} 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-398c47d3-46d8-4228-8a59-947f305d5c82 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.837253+00:00", "updated_at": "2020-03-11T19:45:33.841040+00:00"} 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-5bf7aa0d-3f86-4cf1-a846-25d8757c5459 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.894181+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-51b60692-d5b9-4afe-9c1b-6793be8c1bc9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:33.948959+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} 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-15b8bd6d-80c8-4d87-85ed-292be27bcc71 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:34.025179+00:00", "updated_at": null} PATCH: /v1/portgroups/fb5a2962-501a-47c7-9116-d3b4e8631c3a [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f9c81b89-bd43-4bd5-9f86-72d677bcded1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup fb5a2962-501a-47c7-9116-d3b4e8631c3a could not be found.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'value': '802.3ad', 'op': 'add'}, {'path': '/properties/bond_param', 'value': '100', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1677bac0-5f32-45e0-8259-6f55d56d2f2d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "802.3ad", "properties": {"bond_param": "100"}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:34.114061+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a95cc1ee-2dd8-405a-8a54-fdef0f277fe9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:34.167476+00:00", "updated_at": "2020-03-11T19:45:34.201029+00:00"}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.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.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_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_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-880fd523-ee05-4dec-bbb0-67703cbc8a6b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-a816ec3a-7b01-422b-b3c5-a334b745fc60 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:34.381738+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-dedb340d-4910-412c-b6e0-2e8bafe518ee X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:34.441323+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': '2e2af9c5-1303-455e-81d7-4a78ca4c5da7'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-8ef9774f-620d-4a14-8a3d-d7c6d1f76fd2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': '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-ba3d195c-2696-455e-a39e-6759a5878d1a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:34.551822+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_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'hostname': 'host'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-48a7e563-e28e-4f3a-95b6-12f8c4156568 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys. Required keys are {'switch_id', 'port_id'}. Or in case of Smart NIC {'hostname', 'port_id'}. Submitted keys are {'hostname', 'switch_id', 'switch_info'} .\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-aa4dc2f0-2152-4da8-abd3-d15b1b60fb29 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"} DELETE: /v1/portgroups/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected a logical name or UUID but received 52:54:00:cf:2d:31.\"}"} DELETE: /v1/portgroups/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-529b89da-43c1-4dc5-868c-99b7434f7cac X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '59386f37-3c66-4a1e-afef-bf7d85f524d2', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/59386f37-3c66-4a1e-afef-bf7d85f524d2', 'rel': 'self'}, {'href': 'http://localhost/portgroups/59386f37-3c66-4a1e-afef-bf7d85f524d2', 'rel': 'bookmark'}]}, {'uuid': '4adaff38-d791-4311-b44c-c9203b5653a8', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/4adaff38-d791-4311-b44c-c9203b5653a8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4adaff38-d791-4311-b44c-c9203b5653a8', 'rel': 'bookmark'}]}, {'uuid': '392b3910-5f09-4f96-93c6-131584af33ec', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/392b3910-5f09-4f96-93c6-131584af33ec', 'rel': 'self'}, {'href': 'http://localhost/portgroups/392b3910-5f09-4f96-93c6-131584af33ec', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=392b3910-5f09-4f96-93c6-131584af33ec'}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_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_in_name ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_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_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_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_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_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_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_address_normalized ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ... 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': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:33.719311+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'maintenance': False, '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-449d3618-9509-4c42-90c1-dbd77b9bb164 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:34.096120+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:34.096120+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-64a2996a-14d4-4b61-9775-70e95da805c0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:34.403566+00:00"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-03-11T19:45:34.403566+00:00'} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8eeefeaf-f3d2-40d0-853b-7462d0cbbd47 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"}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_post_volume_connectors_subresource_no_node_id ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_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_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_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_bad_requests_in_adopting_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9e442f4c-a956-408e-b46a-802c4f46954d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, '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-d011bb22-2e2d-40a0-a0a7-8aad7da43828 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-03-11T19:45:34.028327+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': '2020-03-11T19:45:34.028327+00:00'} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'reservation': 'fake'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-40f92793-c5f4-4131-869a-cc5c84885e2f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute reservation. Value: 'fake'. Cannot set read only field.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2385bf4f-ed08-4aa5-8746-8ae0ba559c51 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-b7d4f8a9-334c-4702-9797-2edf60c393b5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null POST: /v1/nodes/node-109/vendor_passthru/test {'foo': 'bar'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-84bf6bf4-acba-4a75-9250-aa4bd0a0b3b6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 null GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {} GOT:foo POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c5b4a0e-5155-4a7d-a089-b71ec0dbc765 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': 'abort'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-6ee872aa-cfda-4e83-bcfc-60d8c8c383d0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-98601002-5e83-4319-aad6-b675d6f597ac X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"abort\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-542895d8-8809-42d2-8815-6a37ab4a6b01 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"}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_clean ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_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_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_no_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_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_power_state_soft_power_off_invalid_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_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_deploy_configdrive_as_dict_all_fields ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_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 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-a83946a9-4379-454b-a1a6-700cceb142f6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:34.228888+00:00", "updated_at": "2020-03-11T19:45:34.265458+00:00"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-be003e18-721d-4539-986a-cfa103b527d7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:34.318096+00:00", "updated_at": null} POST: /v1/portgroups {'uuid': '8bdf7821-ba79-47e2-8616-4e9c56726547', 'name': 'ca4d8273-dafe-4920-80e9-e359b9b8d20b', '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-e44f357a-2809-4bdf-a7e1-c2b68928f023 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'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-e240ee09-b050-49d3-beaa-5e72683d8340 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:34.382139+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:34.382139+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'internal_info': 'info'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e704edea-5c38-4d8d-ab32-59ecd2e33996 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute portgroup. Value: '{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'internal_info': 'info'}'. Value not a valid dict: info\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', '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-7237c3c1-6180-4c14-9e5b-00eb9a2f3cb5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": null, "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:34.477750+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': None, 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:34.477750+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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_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.TestBooleanType.test_invalid_value ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value ... ok ironic.tests.unit.api.controllers.v1.test_types.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.TestEventType.test_network_port_event ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_network_port_event ... ok ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_simple_event_type ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_simple_event_type ... 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.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_cannot_update_internal_dict_attr ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_dict_attr ... ok ironic.tests.unit.api.controllers.v1.test_types.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_op ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring ... ok ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_local_link_keys_mandatory ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_local_link_keys_mandatory ... ok ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_local_link_mandatory_key ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_local_link_mandatory_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_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_mandatory ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_mandatory ... 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_invalid_name ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name ... ok ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid ... ok ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type ... ok ironic.tests.unit.api.controllers.v1.test_types.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_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_links_node_states_and_driver_properties ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_links_node_states_and_driver_properties ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_no_pin ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_no_pin ... ok Error while running foo: bar. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroup_mode_properties ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroup_mode_properties ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive_as_dict_invalid ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive_as_dict_invalid ... 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_driver_type ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_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_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_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_provide_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_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 ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties ... ok ironic.tests.unit.api.controllers.v1.test_utils.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_removed_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name ... ok ironic.tests.unit.api.controllers.v1.test_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.TestNodeIdent.test_get_rpc_node_expect_uuid ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy ... 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_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_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_detail ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_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.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_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_uuid_invalid_type ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type ... ok GET: /v1/portgroups?detail=True {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:34.771760+00:00', 'updated_at': None}]} 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 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.json', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:34.848095+00:00', 'updated_at': None} GET: /v1/portgroups?address=aa:bb:cc:dd:ee:f1 {} GOT:{'portgroups': [{'uuid': '3e3e942e-575d-413d-a27c-25e9b523cea5', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/3e3e942e-575d-413d-a27c-25e9b523cea5', 'rel': 'self'}, {'href': 'http://localhost/portgroups/3e3e942e-575d-413d-a27c-25e9b523cea5', 'rel': 'bookmark'}]}]} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e8318b9-a08d-4aad-aadf-acfc07e9f982 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:34.929712+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7a1cb699-3590-43bf-ad09-2f1b4c45832d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-de563c12-70b3-4f4b-959a-7db2c3122b06 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-02daadc0-f73e-4b17-bad7-7fdc3b8265f4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-96acd6d6-328d-4b19-85aa-5c011e0e0228 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6d7a0c62-2b4d-494d-9ca5-1aa05da395bf X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'replace', 'value': '1'}'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b7ccc313-c71e-41e3-aa99-75b0498a2eb4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fab81623-fd9c-4187-b313-be43a0c2984b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:35.334905+00:00", "updated_at": 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-f55447c9-7aad-46e5-9e75-419c0ffd7bda X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/internal_info' is an internal attribute and can not be updated\", \"debuginfo\": null}"}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.TestPatch.test_update_portgroup_mode_properties_bad_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_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.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_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_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_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_ramdisk.TestHeartbeat.test_ok_agent_version ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version ... ok POST: /v1/nodes/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-799412a8-078a-4d89-beb8-cbd907ed9d80 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-332e6915-2bd9-4c75-bf44-edfc23daa3a8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support test (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-c94358b8-da99-4b43-869e-b45ea82fdce2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-46d17651-6697-4dcc-bd7a-af5fc8fcb138 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"adopt\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-395ab542-7660-4373-9498-7ad7c77c603d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8749d39c-d3ea-457f-8012-a655a6cf0b23 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-0c087b4e-efb0-4d24-9a64-bc515ee68a43 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-49bbd89c-5592-46fc-9303-af4c93babc12 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6fab5cab-926c-4260-96b4-b01e57304bf5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-8451c626-3fbf-4cd2-8d9e-b0458c26fa66 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-1a63139c-dbb8-4eb5-aa4f-cbb90e5e71d8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5e43e2a7-9f8e-4db0-892f-cf8a3fb8233f X-Openstack-Ironic-Api-Maximum-Version: 1.56 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: 204 No Content Openstack-Request-Id: req-c0119575-b1c7-4510-9950-f58f14d14b40 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 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-4e9effc0-3aa3-4fb0-8f08-4d9fcfa3e459 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manageable'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-cfabff81-8600-49e1-b4de-252e53ba956e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_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_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_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_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_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_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_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_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_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_no_password ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password ... ok 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-c185451a-d5f7-4314-8d6b-aefb1b0fc4bb X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-d0430fde-70dd-4286-a1a6-7c84a5748635 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': '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-20b64423-017b-4029-bb39-bd0bd0aedaf2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-e72e4fc0-a1e6-496b-9343-d7a39f135e62 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-fc0e5b70-f30c-4068-b4e1-5bf338930ad6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-920bd0e6-7b73-4a24-ac62-258f33327d4c X-Openstack-Ironic-Api-Maximum-Version: 1.56 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'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-d188bb1f-ef35-4d1b-9d8a-5a0604f2a7f9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a9dbeee5-5f63-4ead-9b33-761fe804b9d0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-11816bdb-0f62-4b3e-a491-6e28e626cd4e X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-a9b44dbe-cdc3-404f-bca2-4cf78541640c X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': 'active'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-22dcaf31-da07-4963-a486-a16261ded53e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': {'user_data': {'serialize': 'me'}, 'meta_data': {'hostname': 'example.com'}, 'network_data': {'links': []}}} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-7f8dca54-18f4-47c4-9413-9ecb9617dd01 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'configdrive': {'user_data': 'foo'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ccbc94ce-8cf2-49d4-9074-b4db530285dd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Providing a JSON object for configdrive is only supported starting with API version 1.56\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-675f4a99-7466-469a-af1e-db9675e64204 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c8627231-a061-4f01-bd89-54da1f15b5fd X-Openstack-Ironic-Api-Maximum-Version: 1.56 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: 202 Accepted Location: http://localhost/v1/nodes/node-39/states/console Openstack-Request-Id: req-bef6fe6b-b97f-4ad1-a48e-6401e89571f0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/node-39/maintenance {} GOT:Response: 202 Accepted Openstack-Request-Id: req-5ada252f-384d-483e-92df-2168598ba520 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/node-39/traits/CUSTOM_3 {}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_delete_trait_fails_if_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_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_no_add_single_trait_via_body_2 ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_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_collection_links_custom_fields ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields ... ok 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-99c9757b-7c07-45e8-a528-2138011a2f8b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/heartbeat/d1660222-4089-482d-9a74-820614258eba {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-44570415-7030-4371-a283-b8f570dc903a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d1660222-4089-482d-9a74-820614258eba 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-e9f5aef9-367b-4156-86bf-a7ae0ff976de X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': '9dce0702-4b02-458f-a8b1-da18c234edfb', '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/9dce0702-4b02-458f-a8b1-da18c234edfb', 'rel': 'self'}, {'href': 'http://localhost/nodes/9dce0702-4b02-458f-a8b1-da18c234edfb', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=3afcd11b-6506-425c-b211-9678024c4e47 {} GOT:{'node': {'uuid': '3afcd11b-6506-425c-b211-9678024c4e47', '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/3afcd11b-6506-425c-b211-9678024c4e47', 'rel': 'self'}, {'href': 'http://localhost/nodes/3afcd11b-6506-425c-b211-9678024c4e47', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/volume/connectors?detail=True&limit=3 {} GOT:{'connectors': [{'uuid': '90081fbd-7fa8-4481-bcaf-58c5682ba9cf', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/90081fbd-7fa8-4481-bcaf-58c5682ba9cf', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/90081fbd-7fa8-4481-bcaf-58c5682ba9cf', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:35.777384+00:00', 'updated_at': None}, {'uuid': '07578531-37c2-4339-a90d-d424219f767c', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/07578531-37c2-4339-a90d-d424219f767c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/07578531-37c2-4339-a90d-d424219f767c', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:35.778982+00:00', 'updated_at': None}, {'uuid': 'f5626511-ab26-400f-88b1-f0fef48e0c14', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/f5626511-ab26-400f-88b1-f0fef48e0c14', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f5626511-ab26-400f-88b1-f0fef48e0c14', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:35.780475+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=f5626511-ab26-400f-88b1-f0fef48e0c14'} GET: /v1/volume/connectors?detail=True {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:35.833165+00:00', 'updated_at': None}]} GET: /v1/volume/connectors?detail=False {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors {} 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": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-945bfc19-53e6-43ee-8cca-d26ec5a83045 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3de191a-c3cb-4d03-9fdf-6ea7c5e0ff67 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:36.003966+00:00", "updated_at": null} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ac0eaaa8-2fa6-4b7d-a4a5-3ae45648f978 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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/non-existent', 'op': 'remove'}]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_remove_uuid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_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_singular ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... 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_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_no_mandatory_field_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_volume_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.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.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 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ff145f3e-7bc8-4215-93e1-87ea463d4617 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1941a94a-4726-42ef-8f3e-05c942aefef1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a3047ec6-5a2b-43c0-87f9-ac9754814f4f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-5049c4c7-8f2f-44a7-b50a-962a425cc704 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2614f0e5-6977-4c0e-82fb-50892a0932ea X-Openstack-Ironic-Api-Maximum-Version: 1.56 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: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-82e3ea8a-fa67-4bcf-b57f-211c123c861e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-91d559e0-06ed-491a-9eb3-3458da1548f0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-89e51817-82fa-4cdc-a33a-13ea479b8b50 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e6613213-28f8-4f16-9809-8e348243ecff X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-af953f1a-74c6-4f4a-8e29-4a20e7a53e59 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c23f401f-cb2e-4a1e-8253-8f030ab29739 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': 'rescue', 'rescue_password': ' '} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0302c36c-4569-48e8-9b5a-65e5a86ce3ee X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-d0203310-cd5b-4971-9f34-904c8ed7e814 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-cc2ebed1-8718-4248-86c0-a1aea5c02355 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-ef96559b-4790-4aa8-80bc-dc3054b2bd36 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-a7840091-d925-4a32-be5a-fed8255580ca X-Openstack-Ironic-Api-Maximum-Version: 1.56 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'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c915b3b7-c54f-40ed-a30a-80a7f13be6fa X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': 'unrescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-b2c3226d-6220-4851-ad72-de54a60e14a9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_boot_device_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_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_mode_console_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_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.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_add_single_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_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_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_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_delete_all_traits_with_chassis ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis ... ok 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-8e0a0628-4fcf-4acf-8770-ef3219c1bcd7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-99b3a8f8-8a34-47b2-adcd-c8551855c9c8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-477e5811-3653-49b4-b563-4c7c5c125e38 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:35.767315+00:00", "updated_at": "2020-03-11T19:45:35.858659+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b4741798-922c-40b9-a0aa-b6b0cec21461 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:35.946039+00:00", "updated_at": "2020-03-11T19:45:36.047501+00:00"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-8322463c-80fc-4453-9628-6987cf555356 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:36.174281+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': '2020-03-11T19:45:36.174281+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b97f96f6-c8b8-4d31-a205-0c7954c98c60 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-90f7b0df-8897-4f21-9ee9-85334d46666d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:36.282994+00:00", "updated_at": null} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} GOT:Response: 202 Accepted Openstack-Request-Id: req-7bf8d582-7e0f-4c22-bac1-1e004e4b1cc4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 POST: /v1/heartbeat/0dfeb832-6737-4c78-bca8-f57bb7593902 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dc4c058d-d4e8-4c08-9910-f80cc650838f X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"}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_ramdisk.TestLookup.test_found_by_addresses ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_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_nothing_provided ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_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_root.TestCheckVersions.test_check_version_ok ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok ... ok ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_invalid_event_type ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_invalid_event_type ... 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_invalid_path ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path ... ok ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path ... 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.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_smart_nic_keys_port_id_missing ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_port_id_missing ... 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_node_rebuild_with_configdrive ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_node_rebuild_with_configdrive ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_is_smartnic ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_is_smartnic ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_ramdisk_endpoints ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_ramdisk_endpoints ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive_as_dict ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive_as_dict ... 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_driver_detail_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_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_driver_detail_none ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_none ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_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.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_check_allowed_fields_resource_class ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_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.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.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_check_policy_forbidden ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings ... ok ironic.tests.unit.api.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.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.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.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_get_one ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid ... ok "max-count" must be a positive value. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cf00637b-3025-4548-bfcf-da65f646df8a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"} DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e62b49c5-610b-4107-90a1-184015c5e877 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:{'traits': ['CUSTOM_1', 'CUSTOM_2']} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-76a4482a-2a75-4d15-9227-d49a647ca4e4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits {'traits': []} GOT:Response: 204 No Content Openstack-Request-Id: req-15333b3c-0e04-49e3-b632-93fcde1e173e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': []} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-69192d97-aa6b-4edf-bb49-4418edef0165 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 GET: /v1/ports?fields=address,uuid {} GOT:{'ports': [{'uuid': 'e556fe65-d87d-4c79-a489-6e602696122d', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/e556fe65-d87d-4c79-a489-6e602696122d', 'rel': 'self'}, {'href': 'http://localhost/ports/e556fe65-d87d-4c79-a489-6e602696122d', 'rel': 'bookmark'}]}, {'uuid': '6fa8ad7c-07cb-4b99-b299-5be9ad9d8776', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/6fa8ad7c-07cb-4b99-b299-5be9ad9d8776', 'rel': 'self'}, {'href': 'http://localhost/ports/6fa8ad7c-07cb-4b99-b299-5be9ad9d8776', 'rel': 'bookmark'}]}, {'uuid': 'c21998cc-4908-4ed9-aafd-024886ebc362', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/c21998cc-4908-4ed9-aafd-024886ebc362', 'rel': 'self'}, {'href': 'http://localhost/ports/c21998cc-4908-4ed9-aafd-024886ebc362', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=c21998cc-4908-4ed9-aafd-024886ebc362'} GET: /v1/ports/detail?sort_key=pxe_enabled {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-04e4fd9d-0270-4ec4-b367-ec7cc9e74113 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports?detail=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?node=test-node {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-565c5643-c60e-4c1b-96f8-6bd271c7ac51 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/detail?portgroup=fooname {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:37.699647+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-d936b398-fbc7-47eb-ab6a-77f0a08ea28d X-Openstack-Ironic-Api-Maximum-Version: 1.56 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?fields=address&limit=2 {} GOT:{'ports': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/f0865801-1dfb-4d68-bf76-804f7fcc5d3a', 'rel': 'self'}, {'href': 'http://localhost/ports/f0865801-1dfb-4d68-bf76-804f7fcc5d3a', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/ec82d3b0-58d5-48aa-9a12-6682b5a6c7b1', 'rel': 'self'}, {'href': 'http://localhost/ports/ec82d3b0-58d5-48aa-9a12-6682b5a6c7b1', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=ec82d3b0-58d5-48aa-9a12-6682b5a6c7b1'} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b5e71881-9dcd-4a4d-bbe1-7ed1535c1e71 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-82613145-3977-4bc7-9632-e5e1780dcca5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-22de0978-494e-409b-b955-d40da05f0362 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'is_smartnic': True}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic ... ok ironic.tests.unit.api.controllers.v1.test_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.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_hide_fields_in_newer_versions_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id ... ok 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_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_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_multi ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ea745398-d82e-4cd0-9b6a-1fd0bea3b29c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5f82e79a-bf16-42f2-8e74-786e6b93c84e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-071c483e-f431-46b4-bfe2-4bb32f9889fc X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-999', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-943d156b-b769-4398-ab4a-52473202c127 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-999", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:36.580065+00:00", "updated_at": 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": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2f1b912c-97cd-47cc-aea2-887bc4ea49f6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-47993ff4-460a-4b38-b137-35ff5b0a89b4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-7d1f8ab5-b6f5-48bd-974f-9511c127cd84 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-456", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:36.734924+00:00", "updated_at": null} POST: /v1/volume/connectors {'uuid': '3cecdff3-3a13-49ac-89fc-0b2c83d4f61f', '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-b16fd143-412a-4976-8d5b-a8745de1237b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, '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-abcaf489-e2a6-4042-a4b9-3a3471975ecf X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:36.798269+00:00", "updated_at": null} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e3a68ed3-f37c-44f4-85a1-03d0f3cf7499 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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?fields=uuid,extra {} GOT:{'targets': [{'uuid': 'cd8735ee-98c5-4cdf-af6d-1b77e092284f', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/cd8735ee-98c5-4cdf-af6d-1b77e092284f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/cd8735ee-98c5-4cdf-af6d-1b77e092284f', 'rel': 'bookmark'}]}, {'uuid': '331f3b11-a632-4480-b921-e72dec8ff20a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/331f3b11-a632-4480-b921-e72dec8ff20a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/331f3b11-a632-4480-b921-e72dec8ff20a', 'rel': 'bookmark'}]}, {'uuid': '2c31d7ae-3b88-4eea-b12c-958f10fbda7d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/2c31d7ae-3b88-4eea-b12c-958f10fbda7d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/2c31d7ae-3b88-4eea-b12c-958f10fbda7d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=2c31d7ae-3b88-4eea-b12c-958f10fbda7d'}ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_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 ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key 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_remove_multi ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail ... ok GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:{'node': {'uuid': 'baacb0c5-a1be-4c2d-86bd-a779bde5868f', '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/baacb0c5-a1be-4c2d-86bd-a779bde5868f', 'rel': 'self'}, {'href': 'http://localhost/nodes/baacb0c5-a1be-4c2d-86bd-a779bde5868f', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=57718e05-3924-488a-a64f-9b7756db89ff {} GOT:{'node': {'uuid': '57718e05-3924-488a-a64f-9b7756db89ff', '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/57718e05-3924-488a-a64f-9b7756db89ff', 'rel': 'self'}, {'href': 'http://localhost/nodes/57718e05-3924-488a-a64f-9b7756db89ff', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d9781a8a-1964-4dce-a422-c207c71214c4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1fe44b2e-9d8f-47e8-b55d-d135e67a1e30 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/ {} GOT:{'links': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/volume/targets', 'rel': 'bookmark'}]} GET: /v1/volume/ {} GOT:{'links': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/volume/targets', 'rel': 'bookmark'}]} GET: /volume/ {} GOT:{'links': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/volume/targets', 'rel': 'bookmark'}]} GET: /v1/volume/connectors {} GOT:{'connectors': []} GET: /volume/connectors {} GOT:{'connectors': []} GET: /v1/volume/targets {} GOT:{'targets': []} GET: /volume/targets {} GOT:{'targets': []} DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-e783fa78-8431-49e6-98c1-32bda5d8eab1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d2b5a87-43fc-4851-8645-319cdd3fdb92 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-b63dfb97-57a0-4771-b858-b3fbafb8af03 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} GET: /v1/volume/connectors/?limit=3 {} GOT:{'connectors': [{'uuid': '898e08aa-3982-4e3f-9773-b52ba43f503d', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/898e08aa-3982-4e3f-9773-b52ba43f503d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/898e08aa-3982-4e3f-9773-b52ba43f503d', 'rel': 'bookmark'}]}, {'uuid': '38aa9218-c1ff-4f49-b947-c274d3c2aa58', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/38aa9218-c1ff-4f49-b947-c274d3c2aa58', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/38aa9218-c1ff-4f49-b947-c274d3c2aa58', 'rel': 'bookmark'}]}, {'uuid': 'a6a88f16-c347-44a9-a80e-ba0991622937', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/a6a88f16-c347-44a9-a80e-ba0991622937', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a6a88f16-c347-44a9-a80e-ba0991622937', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=3&marker=a6a88f16-c347-44a9-a80e-ba0991622937'} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:37.160658+00:00', 'updated_at': None} GET: /v1/volume/connectors?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b23fc553-476c-45e6-85ea-0dbec4972fa4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/volume/connectors?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-89142611-14a8-4f0d-97de-3bc29bd1665c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'add'}]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_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.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.TestPatch.test_update_byid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_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_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_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_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 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-35530117-8f58-4759-a3df-647290c65a3b X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-63609323-1a2c-46cb-8244-3667ae892ebf X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': 'deleted', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d64552d6-7427-417a-b9bb-ab0ff0c84d44 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-4dc5a54e-8e91-44be-824d-6cddb684511f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-d2dec696-44de-4f44-aa70-9563f7cd02d4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'configdrive': 'foo'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-d292c7e4-df99-4ba4-88a2-d7f86d6f393a X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-d91bb3ab-1d76-45ca-a172-3f4d3776685e X-Openstack-Ironic-Api-Maximum-Version: 1.56 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: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1b159557-0a7d-4814-a75f-c37f7c3cb0ac X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/node-39/management/boot_device {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-5e756cc1-223a-4e5a-a694-8c5a8c035acd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0a214e1f-aae7-4da3-90ae-47bd1895d09a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=True {'boot_device': 'pxe'} GOT:Response: 204 No Content Openstack-Request-Id: req-684f8d08-1ac7-4080-a01f-2932b6980572 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e5972efc-3705-497a-a7e5-d823e154665f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted Openstack-Request-Id: req-cd3c4c69-a82a-4202-bdf2-af963866bf71 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-988cd8fb-70db-495e-9aa0-23f4ed9df836 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/states/provision {'target': 'unrescue'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b7e60196-8acd-4930-b31e-3405e1dbf358 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 204 No Content Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 Openstack-Request-Id: req-daa9e242-8b75-4d15-afd0-5ac7cca515e5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2fe0e1bf-9683-4788-afed-334957c722e8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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 GOT:Response: 204 No Content Openstack-Request-Id: req-53c0415e-a395-49d3-8ada-debdac14014d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/nodes/node-39/traits GOT:Response: 204 No Content Openstack-Request-Id: req-8c6b6509-b23e-48fc-899e-794f90e80502 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-694e2de9-3f6d-49d4-95b0-827c0a6a4141 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait ... ok ironic.tests.unit.api.controllers.v1.test_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 ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification ... ok ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_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_detail_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_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 ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_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_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 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-82cddb76-9113-4c58-a1a4-34702220bd38 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} GET: /v1/volume/targets?fields=uuid,extra {} GOT:{'targets': [{'uuid': 'ae825e90-74f3-4a11-a9e8-c8a85fc968e8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/ae825e90-74f3-4a11-a9e8-c8a85fc968e8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ae825e90-74f3-4a11-a9e8-c8a85fc968e8', 'rel': 'bookmark'}]}, {'uuid': '0cdfa027-a6ad-4202-bb97-c15d3d4682cc', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/0cdfa027-a6ad-4202-bb97-c15d3d4682cc', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/0cdfa027-a6ad-4202-bb97-c15d3d4682cc', 'rel': 'bookmark'}]}, {'uuid': '35cc010c-ea13-451c-afec-fd96b0bb2150', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/35cc010c-ea13-451c-afec-fd96b0bb2150', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/35cc010c-ea13-451c-afec-fd96b0bb2150', 'rel': 'bookmark'}]}]} 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-ed3fe323-14a1-4e35-8a89-f89abe2e5ecb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.057937+00:00', 'updated_at': None} GET: /v1/volume/targets/db6fe185-dccc-41e8-b496-d9673097669c {} GOT:{'uuid': 'db6fe185-dccc-41e8-b496-d9673097669c', '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/db6fe185-dccc-41e8-b496-d9673097669c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/db6fe185-dccc-41e8-b496-d9673097669c', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.096010+00:00', 'updated_at': None} GET: /v1/volume/targets/db6fe185-dccc-41e8-b496-d9673097669c {} GOT:{'uuid': 'db6fe185-dccc-41e8-b496-d9673097669c', '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/db6fe185-dccc-41e8-b496-d9673097669c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/db6fe185-dccc-41e8-b496-d9673097669c', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.096010+00:00', 'updated_at': None} GET: /volume/targets/db6fe185-dccc-41e8-b496-d9673097669c {} GOT:{'uuid': 'db6fe185-dccc-41e8-b496-d9673097669c', '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/db6fe185-dccc-41e8-b496-d9673097669c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/db6fe185-dccc-41e8-b496-d9673097669c', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.096010+00:00', 'updated_at': None} GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets?sort_key=uuid {} GOT:{'targets': [{'uuid': '4f0e6982-47d4-427e-8518-046d2387e28f', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4f0e6982-47d4-427e-8518-046d2387e28f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4f0e6982-47d4-427e-8518-046d2387e28f', 'rel': 'bookmark'}]}, {'uuid': '6be62743-f200-429e-b117-f5331c666e58', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/6be62743-f200-429e-b117-f5331c666e58', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6be62743-f200-429e-b117-f5331c666e58', 'rel': 'bookmark'}]}, {'uuid': '946177b6-6b9b-42f1-9649-145c02c1d529', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/946177b6-6b9b-42f1-9649-145c02c1d529', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/946177b6-6b9b-42f1-9649-145c02c1d529', 'rel': 'bookmark'}]}]} 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-71985c47-9000-496b-8d3c-3af9bfba4e45 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.261422+00:00", "updated_at": "2020-03-11T19:45:38.264830+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-ebe6039b-c0d2-43ff-8dc9-5b52c7197ba7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.261422+00:00", "updated_at": "2020-03-11T19:45:38.264830+00:00"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8f8bac20-631c-48d9-90f7-7e4f5caa9078 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}]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.TestPost.test_create_volume_target_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_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_healthcheck.TestHealthcheckMiddleware.test_disable ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ... 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 ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ... 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_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_migration_functions_2_onedone ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations ... 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.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.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request ... ok ironic.tests.unit.common.test_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.TestCinderUtils.test__create_metadata_dictionary ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ... 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_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_from_dict ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict ... 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_context.RequestContextTestCase.test_to_policy_values ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values ... ok ironic.tests.unit.common.test_driver_factory.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_additional_defaults ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults ... 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_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_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_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_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_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_raid_interface_no_default ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_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.StorageInterfaceFactoryTestCase.test_build_interface_for_task ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task ... ok ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported ... ok ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg ... ok ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_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.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_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_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_fail ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail ... 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.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_connerror ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror ... 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.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_root_fs ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_esp_imageimg ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_esp_imageimg ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi_with_esp_image ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi_with_esp_image ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_always_umount ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_always_umount ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails ... 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_fetch_image_service ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ... 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_already_raw_format ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format ... 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_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_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance ... ok ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success ... ok ironic.tests.unit.common.test_json_rpc.TestClient.test_call_unexpected_failure ironic.tests.unit.common.test_json_rpc.TestClient.test_call_unexpected_failure ... ok ironic.tests.unit.common.test_json_rpc.TestClient.test_can_send_version ironic.tests.unit.common.test_json_rpc.TestClient.test_can_send_version ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_mask_secrets ironic.tests.unit.common.test_json_rpc.TestService.test_mask_secrets ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_found ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_found ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_serialize_objects ironic.tests.unit.common.test_json_rpc.TestService.test_serialize_objects ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure ... 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.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ... 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_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_two_portgroups_extra ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_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.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.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_noauth ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token ... ok ironic.tests.unit.common.test_neutron.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_rollback_ports_exception ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up ... ok ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ... ok ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password ... 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.CleanUpPxeEnvTestCase.test__clean_up_pxe_env ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-76d17b60-2a4f-4dc4-a205-293776eb1747 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-123", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:37.268540+00:00", "updated_at": null} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-025e3874-f1aa-4fb7-ac6e-4175efaacbc3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:37.721746+00:00", "updated_at": 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-75cc9b80-90f2-4c6f-9ee4-3fb27ec23095 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47a52bf3-1088-48be-837e-2743c77f0b7d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:37.946162+00:00", "updated_at": null} PATCH: /v1/volume/connectors/d8d65295-fbe3-4989-accb-91d994c9a653 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-634b62b6-88e8-4571-a6ad-a40100b0fb61 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector d8d65295-fbe3-4989-accb-91d994c9a653 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-c781608b-2002-40ea-9105-e7806f8a6d66 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-ecae8fb7-588e-4182-b771-a84ce499aa16 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": 123}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.179433+00:00", "updated_at": null} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.179433+00:00', 'updated_at': None} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': 123} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d8b322e7-b635-49c4-a7e6-22720cce4e18 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3ebbff3f-5291-430f-a281-df91fd648e25 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_id. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.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_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue_timeout ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue_timeout ... ok DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/117dee90-a17a-48e9-b1ae-dfb0a4d5b7ac GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b50ad07-8e8c-44a7-aa08-d427b6ca5c38 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/ports/detail?node=test-node {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:39.091922+00:00', 'updated_at': None}]} GET: /v1/ports {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/ports?detail=False {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/ports/detail?sort_key=pxe_enabled {} GOT:{'ports': [{'uuid': 'bf9a7bac-e1bc-46bb-a075-bef96b81b010', '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/bf9a7bac-e1bc-46bb-a075-bef96b81b010', 'rel': 'self'}, {'href': 'http://localhost/ports/bf9a7bac-e1bc-46bb-a075-bef96b81b010', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-03-11T19:45:39.181596+00:00', 'updated_at': None}, {'uuid': '102ee867-af8c-41e9-8474-63c5d7bc66ac', '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/102ee867-af8c-41e9-8474-63c5d7bc66ac', 'rel': 'self'}, {'href': 'http://localhost/ports/102ee867-af8c-41e9-8474-63c5d7bc66ac', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-03-11T19:45:39.183316+00:00', 'updated_at': None}]} GET: /v1/ports {} GOT:{'ports': []} GET: /v1/ports?node=test-node {} GOT:{'ports': [{'uuid': 'eba6fa1d-5e3e-4c70-8da9-de625adf05f9', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/eba6fa1d-5e3e-4c70-8da9-de625adf05f9', 'rel': 'self'}, {'href': 'http://localhost/ports/eba6fa1d-5e3e-4c70-8da9-de625adf05f9', 'rel': 'bookmark'}]}, {'uuid': '81f2600d-bc1d-4f5e-b591-fa5126e153c8', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/81f2600d-bc1d-4f5e-b591-fa5126e153c8', 'rel': 'self'}, {'href': 'http://localhost/ports/81f2600d-bc1d-4f5e-b591-fa5126e153c8', 'rel': 'bookmark'}]}, {'uuid': '3e7e83b0-b6da-4b8f-a1d2-deb0cfad9c64', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/3e7e83b0-b6da-4b8f-a1d2-deb0cfad9c64', 'rel': 'self'}, {'href': 'http://localhost/ports/3e7e83b0-b6da-4b8f-a1d2-deb0cfad9c64', 'rel': 'bookmark'}]}]} GET: /v1/ports?fields=uuid,extra {} GOT:{'ports': [{'uuid': '079eca6d-4638-4754-939a-f003465e5515', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/079eca6d-4638-4754-939a-f003465e5515', 'rel': 'self'}, {'href': 'http://localhost/ports/079eca6d-4638-4754-939a-f003465e5515', 'rel': 'bookmark'}]}, {'uuid': 'a9099b86-9092-48df-94bb-f054d63133f1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/a9099b86-9092-48df-94bb-f054d63133f1', 'rel': 'self'}, {'href': 'http://localhost/ports/a9099b86-9092-48df-94bb-f054d63133f1', 'rel': 'bookmark'}]}, {'uuid': 'a0f48a96-f2c6-421e-abc4-381ab2abb783', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/a0f48a96-f2c6-421e-abc4-381ab2abb783', 'rel': 'self'}, {'href': 'http://localhost/ports/a0f48a96-f2c6-421e-abc4-381ab2abb783', 'rel': 'bookmark'}]}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:39.364589+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:39.399770+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'pxe_enabled': True, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:39.399770+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:39.449405+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'foo': 'bar'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:39.449405+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:39.501571+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:39.501571+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_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_one ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address ... 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.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_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_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_add_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_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_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_node_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_swift_partition ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_swift_partition ... ok GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-03d2c0fe-37a0-43c4-88dd-cefa24f325c8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-723731b6-60cc-454b-b1a0-3da64608d8ad X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.016117+00:00', 'updated_at': None} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.057874+00:00', 'updated_at': None} GET: /v1/ports?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-462a6c58-5857-4dbf-a068-7650db681e9c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'invalid-mac-format'. unable to convert to macaddress. Error: Expected a MAC address but received invalid-mac-format.\", \"debuginfo\": null}"} GET: /v1/ports?address=aa:bb:cc:dd:ee:ff {} GOT:{'ports': []} GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} 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-10fcddff-1559-4bfc-9a7e-9ea0ee45e172 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-de18944b-d145-4a7b-970e-2288597d5c18 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': '/portgroup_uuid', 'value': '1b16b81f-81cf-4c74-a682-98c7a902803b', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5226f469-fab5-45c3-b335-e361b5134f41 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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": "1b16b81f-81cf-4c74-a682-98c7a902803b", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.416505+00:00", "updated_at": "2020-03-11T19:45:38.527209+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68904fa8-00fb-4942-afd0-02d282ffb3fa X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.621995+00:00", "updated_at": "2020-03-11T19:45:38.694509+00:00"} 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-5e898b1d-6c9f-4a51-9c5a-409da70a1ea2 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.720010+00:00", "updated_at": "2020-03-11T19:45:38.749195+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-25588851-cf65-4fa8-a8e6-7dafb8fb30dd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.720010+00:00", "updated_at": "2020-03-11T19:45:38.779985+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-266bf2d6-b761-4f4e-b56f-2385272377f9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "pxe_enabled": true, "local_link_connection": {"switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.805142+00:00", "updated_at": "2020-03-11T19:45:38.830761+00:00"}ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_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.TestPatch.test_update_in_inspecting_not_allowed ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_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_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_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_nostandalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_ipa_debug ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_ipa_debug ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7eaa7c9a-dbfe-4a3a-9698-ef2916cca5f7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute type. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-7ec2d10a-0dbd-4aef-a962-f3f9def1efab X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': '5db41a20-cc07-472d-bb75-0f75466caf1b', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/5db41a20-cc07-472d-bb75-0f75466caf1b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5db41a20-cc07-472d-bb75-0f75466caf1b', 'rel': 'bookmark'}]}, {'uuid': 'dd3671db-a50b-4c56-82da-4ef40600eb71', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/dd3671db-a50b-4c56-82da-4ef40600eb71', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/dd3671db-a50b-4c56-82da-4ef40600eb71', 'rel': 'bookmark'}]}, {'uuid': '2d0df0f4-4115-46fe-88d6-4f6b8fb098da', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/2d0df0f4-4115-46fe-88d6-4f6b8fb098da', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/2d0df0f4-4115-46fe-88d6-4f6b8fb098da', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,volume_type,boot_index,volume_id&limit=3&marker=2d0df0f4-4115-46fe-88d6-4f6b8fb098da'} GET: /v1/volume/targets?detail=True&limit=3 {} GOT:{'targets': [{'uuid': '93cefebc-c694-4cc3-9183-da4ba524cd87', '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/93cefebc-c694-4cc3-9183-da4ba524cd87', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/93cefebc-c694-4cc3-9183-da4ba524cd87', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.428589+00:00', 'updated_at': None}, {'uuid': '2bd9ae1b-ba92-477a-8cb2-5b81d46a9463', '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/2bd9ae1b-ba92-477a-8cb2-5b81d46a9463', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/2bd9ae1b-ba92-477a-8cb2-5b81d46a9463', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.430231+00:00', 'updated_at': None}, {'uuid': 'cb5cbb9c-302a-4574-b0e1-b2ecbe9ceea1', '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/cb5cbb9c-302a-4574-b0e1-b2ecbe9ceea1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/cb5cbb9c-302a-4574-b0e1-b2ecbe9ceea1', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.431777+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=cb5cbb9c-302a-4574-b0e1-b2ecbe9ceea1'} GET: /v1/volume/targets?detail=True {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.482966+00:00', 'updated_at': None}]} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-35e36d38-1a14-44ff-8b1c-b23049765bef X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"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': '2020-03-11T19:45:38.549889+00:00', 'updated_at': None}]} GET: /v1/volume/targets/detail {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e1910d9b-212f-45c8-baca-27221fe4f7f0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute target_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\", \"debuginfo\": null}"} GET: /v1/volume/targets?node=test-node {} GOT:{'targets': [{'uuid': 'c28e6c46-0eb0-42c9-9078-7663d706b358', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/c28e6c46-0eb0-42c9-9078-7663d706b358', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c28e6c46-0eb0-42c9-9078-7663d706b358', 'rel': 'bookmark'}]}, {'uuid': 'ec679aaf-a3db-4694-b334-61ed841b08e2', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ec679aaf-a3db-4694-b334-61ed841b08e2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ec679aaf-a3db-4694-b334-61ed841b08e2', 'rel': 'bookmark'}]}, {'uuid': '5801e3e0-69cf-4e2b-9c75-45a730d426d4', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/5801e3e0-69cf-4e2b-9c75-45a730d426d4', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5801e3e0-69cf-4e2b-9c75-45a730d426d4', '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-5f2d7b55-bf2b-4ce5-bd2c-20417a79d52e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.685016+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}]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_remove_node_id ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.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_node_id ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target 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_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_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_local_boot ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_local_boot ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type ... ok GET: /v1/ports/detail {} GOT:{'ports': [{'uuid': '65e43353-0951-4c39-8ecf-543dd473e03a', 'address': '66:44:55:33:11:22', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/65e43353-0951-4c39-8ecf-543dd473e03a', 'rel': 'self'}, {'href': 'http://localhost/ports/65e43353-0951-4c39-8ecf-543dd473e03a', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:39.561293+00:00', 'updated_at': None}]} GET: /v1/ports {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} GOT:{'ports': [{'uuid': 'ebdba606-e974-4dcc-868e-3e2495398bf2', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/ebdba606-e974-4dcc-868e-3e2495398bf2', 'rel': 'self'}, {'href': 'http://localhost/ports/ebdba606-e974-4dcc-868e-3e2495398bf2', 'rel': 'bookmark'}]}]} GET: /v1/ports?sort_key=pxe_enabled {} GOT:{'ports': [{'uuid': '709c855e-e484-4ebf-9c54-6649397dd466', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/709c855e-e484-4ebf-9c54-6649397dd466', 'rel': 'self'}, {'href': 'http://localhost/ports/709c855e-e484-4ebf-9c54-6649397dd466', 'rel': 'bookmark'}]}, {'uuid': '260dd2f0-0be1-44e2-8bde-c3a323fcb6ee', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/260dd2f0-0be1-44e2-8bde-c3a323fcb6ee', 'rel': 'self'}, {'href': 'http://localhost/ports/260dd2f0-0be1-44e2-8bde-c3a323fcb6ee', 'rel': 'bookmark'}]}]} GET: /v1/ports?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4b61c1c6-2fe2-472c-ae68-e56e49149444 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-e88df04e-95ec-4159-b1ec-b0495a584a73 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-b19b3722-ab12-4bb4-b02e-9f2b33672830 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-fa26d625-5023-4cc0-a78e-704a67cc86b8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/ports/f16b200b-065d-4e92-bb88-01736c9f440b [{'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-bb9cbae5-be67-4d56-a64d-3ced0f20bc44 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "f16b200b-065d-4e92-bb88-01736c9f440b", "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/f16b200b-065d-4e92-bb88-01736c9f440b", "rel": "self"}, {"href": "http://localhost/ports/f16b200b-065d-4e92-bb88-01736c9f440b", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:40.042434+00:00", "updated_at": "2020-03-11T19:45:40.083071+00:00"} 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-7b67ae04-8751-402d-93d7-b41eac63b1be X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:40.150473+00:00", "updated_at": null} 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-945a0b08-f5db-419a-80ba-d32a43ff5141 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:40.489022+00:00", "updated_at": "2020-03-11T19:45:40.602427+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c6bf3383-bd36-4f2c-b6c8-03812cca5870 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-dcf75f90-53c7-4598-824d-914a507aa919 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-20eb17c7-2aeb-440c-9a5e-fdf6deebae16 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2bd5f081-a3a2-4f8e-bdba-408c84e43d03 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"}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_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_multi ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_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_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_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_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.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_byid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options_unsupported_volume_type ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options_unsupported_volume_type ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel ... ok 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-62f28151-6922-4522-ac07-938da8ece984 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ccd2bfb4-65ff-4867-9dc5-5722e566b585 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-02d125bd-a11a-4499-80d1-45531f751881 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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}"} 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-f8acc4bb-0d77-4f6b-85d2-b102e087ae41 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} PATCH: /v1/ports/0f725347-5c3a-4c83-aed0-a86e4aea40da [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fb61aa25-01ee-4b2e-9402-77b4ad6b8bcd X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 0f725347-5c3a-4c83-aed0-a86e4aea40da 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, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-9471bc59-0a5b-4680-86b3-5097e53e20b1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': 'zz:zz:zz:zz:zz:zz', 'port_id': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ffbea68e-0adb-4036-9b32-0dbb438ba522 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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, 'is_smartnic': False, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e88f4800-94e0-48e6-a97e-02dad95853fb X-Openstack-Ironic-Api-Maximum-Version: 1.56 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, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-af8e23d8-731d-4efe-9bf3-996362cc1b0e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-07f1ec3e-1a61-438c-9774-3cbfd6aa6b21 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:39.719135+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, 'is_smartnic': False, 'node_uuid': '7348a3ef-2657-4fc7-a503-b17bf8734193', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a1474abd-4b15-48fe-a3f7-5d606519a201 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 7348a3ef-2657-4fc7-a503-b17bf8734193 could not be found.\", \"debuginfo\": null}"}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_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_portgroup_uuid_not_found_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_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_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_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_internal_field ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_three ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_three ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_two ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_two ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d680854f-2cbe-41dc-8377-2148cc831710 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-790951e2-ad4c-447b-8582-6e2211a8dc3c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7b6dba27-1400-4eb3-a835-7eafb4e7b663 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': '/boot_index', 'value': 100, 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2edacbdb-3bd7-4443-be94-d27a31d5ef26 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a6b4acbb-53c1-4ca2-99d2-5fd4f80a1597 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': 123, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-694fbccc-0d83-4ff9-8290-926eae480d47 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-dc412bea-4867-48a9-9459-737fe1c0af62 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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 {'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/db623aa6-551e-41c7-9a26-435e49e643a5 Openstack-Request-Id: req-20b07ccf-76c8-4d0d-9abf-004bb00e0508 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "db623aa6-551e-41c7-9a26-435e49e643a5", "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/db623aa6-551e-41c7-9a26-435e49e643a5", "rel": "self"}, {"href": "http://localhost/volume/targets/db623aa6-551e-41c7-9a26-435e49e643a5", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:39.878592+00:00", "updated_at": null} GET: /v1/volume/targets/db623aa6-551e-41c7-9a26-435e49e643a5 {} GOT:{'uuid': 'db623aa6-551e-41c7-9a26-435e49e643a5', '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/db623aa6-551e-41c7-9a26-435e49e643a5', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/db623aa6-551e-41c7-9a26-435e49e643a5', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:39.878592+00:00', 'updated_at': None} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} 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-c0ef4a4e-6f45-41f2-bd64-7835bdf150ec X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute boot_index. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0cebb1b2-9e8b-4371-bf26-af8afcd9c8f4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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_target.TestPost.test_create_volume_target_node_uuid_not_found ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.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_acl.TestACL.test_authenticated ironic.tests.unit.api.test_acl.TestACL.test_authenticated ... ok ironic.tests.unit.api.test_acl.TestACL.test_public_api ironic.tests.unit.api.test_acl.TestACL.test_public_api ... ok ironic.tests.unit.api.test_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_hooks.TestContextHook.test_context_hook_not_admin ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok ironic.tests.unit.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 ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks ... ok ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ... ok ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ... ok ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path ... ok ironic.tests.unit.api.test_root.TestRoot.test_get_root ironic.tests.unit.api.test_root.TestRoot.test_get_root ... 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_ipxe_config_uefi ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_ipxe_config_uefi ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi ... ok 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-9a2d71d5-31e7-45ba-997a-293d72dcdb77 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': '/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-87df2c34-ddf3-42ff-a958-3feb629ee948 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:41.209869+00:00", "updated_at": "2020-03-11T19:45:41.278828+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c64a61f8-3943-4992-8f32-3c247db109b0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': '/portgroup_uuid', 'value': '1ac67d5c-36f7-4001-85e4-76f491814c13', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-75b64ac4-556f-42fc-818e-3f3391fcb915 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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": "1ac67d5c-36f7-4001-85e4-76f491814c13", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:41.430478+00:00", "updated_at": "2020-03-11T19:45:41.508548+00:00"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '9e48a6e0-06ea-4844-b43d-59a9a56a81d2', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-aa65c5fc-b531-4b7b-a785-81fba4b523bb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '8ae2de70-0372-44d5-8a72-b40225d6c311', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b2a752ae-b820-4d18-92e3-d8c61e3149b5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:41.660969+00:00", "updated_at": null} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'f834b51c-cf34-469f-a18f-4942bee9327f', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '5f2c94f8-7488-4111-b0a6-970142573707', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-83f9f6e5-02c8-4b53-8187-5daf698f961b X-Openstack-Ironic-Api-Maximum-Version: 1.56 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": "5f2c94f8-7488-4111-b0a6-970142573707", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:41.802917+00:00", "updated_at": "2020-03-11T19:45:42.219115+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-719349a6-c4c8-4fcd-b101-083f0e85f554 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:42.290986+00:00", "updated_at": "2020-03-11T19:45:42.363616+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-03862710-56d8-426a-b10a-90da069ccd8e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:42.435499+00:00", "updated_at": "2020-03-11T19:45:42.544017+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-11ca9295-660d-4957-9b04-186133c97a10 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:42.614911+00:00", "updated_at": null}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.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_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.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_address_normalized ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists ... ok ironic.tests.unit.api.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_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_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_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.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 POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f866561f-7885-41c5-bd0c-58308873b449 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3bfbcfc0-dd75-4226-80cc-a710c9449806 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': {'vif_port_id': '58b57ba8-2914-4f3a-b97b-0515a6940052'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-26ea5d8c-37cb-46a1-8893-2db5ab0ef85a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "58b57ba8-2914-4f3a-b97b-0515a6940052"}, "internal_info": {"tenant_vif_port_id": "58b57ba8-2914-4f3a-b97b-0515a6940052"}, "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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:40.074137+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': 'a13d40ae-7ac3-4c9a-84c7-7173e55d8ea7'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-68a6f054-98a9-403f-86c4-44993a96efc6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': '316a8cb7-72dc-47c4-8f26-6d0cdd726a92'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-d7fa4ae9-026c-4646-b3d5-ee39c687e24d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "316a8cb7-72dc-47c4-8f26-6d0cdd726a92"}, "internal_info": {"tenant_vif_port_id": "316a8cb7-72dc-47c4-8f26-6d0cdd726a92"}, "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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:40.250535+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, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d6e78228-6177-4221-b6e1-ac9294481e0f X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'internal_info': {'a': 'b'}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-37d8fdf6-705a-4564-aacc-2fe89c2d5ce0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute internal_info. Value: '{'a': 'b'}'. Cannot set read only field.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'hostname': 'host1', 'port_id': 'rep0-0'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-9187bc11-a408-4aa0-9159-21334de524e8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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": {"hostname": "host1", "port_id": "rep0-0"}, "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"}], "is_smartnic": true, "created_at": "2020-03-11T19:45:40.365096+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid ... 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_collection_links ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_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_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_custom_fields ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ... 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': None} GET: / {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b77a5a8a-dd98-41af-88b7-eb7960022c66 {"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.56", "min_version": "1.1"}], "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.56", "min_version": "1.1"}} GET: /v1 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b0a088c-28d9-493e-a4dc-cd9a42a6b01f X-Openstack-Ironic-Api-Maximum-Version: 1.56 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"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.56", "min_version": "1.1"}} GET: /v1/ {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-151317f2-e2a1-47fa-8b79-38946c572025 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.56", "min_version": "1.1"}} GET: /v1.json {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db9142ad-9424-4252-ab5c-58947dfd0513 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.56", "min_version": "1.1"}} GET: /v1.xml {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c579d880-6e66-4806-82dd-f6a6b1c287ca {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7f3a704e-ef57-464d-b28f-11bf3132da9d {"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-4b4a7192-33aa-4a16-8915-400668f686e0 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-068315ad-e3b2-4dfb-baec-5bb7e7c128e9 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} GET: / {} GOT:{'name': 'OpenStack Ironic API', 'description': 'Ironic is an OpenStack project which aims to provision baremetal machines.', 'versions': [{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.56', 'min_version': '1.1'}], 'default_version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.56', 'min_version': '1.1'}} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], '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'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.56', 'min_version': '1.1'}}ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root ... ok ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root ... ok ironic.tests.unit.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.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_max_count_neg ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions ... ok ironic.tests.unit.common.test_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_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 ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ... ok ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ... ok ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_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_calculated_with_two ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two ... ok ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task ... 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_invalid_storage_interface ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface ... ok ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task ... ok ironic.tests.unit.common.test_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_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_exception.TestIronicException.test___init___json_serializable ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable ... ok ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ... ok ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not ... ok ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__deprecated_opts ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__deprecated_opts ... ok ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail ... ok ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache ... 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_automatic_retry ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_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_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 ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service ... ok ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_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__mount_deploy_iso_fail_with_ExecutionError ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_with_ExecutionError ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_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_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_download_size ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw ... ok ironic.tests.unit.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_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_json_rpc.TestClient.test_call_serialization ironic.tests.unit.common.test_json_rpc.TestClient.test_call_serialization ... ok ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version_and_cap ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version_and_cap ... ok ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_failure ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_failure ... ok ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success_with_version ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success_with_version ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_no_blacklisted_methods ironic.tests.unit.common.test_json_rpc.TestService.test_no_blacklisted_methods ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_success_no_result ironic.tests.unit.common.test_json_rpc.TestService.test_success_no_result ... ok ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config ... ok ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth ... 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_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_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_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script ... ok ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing ... ok ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_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_get_local_group_information ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up ... ok ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed ... ok ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found ... ok ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... ok ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed ... ok ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed ... ok ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding ... 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.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_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_root_dir ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir ... 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.RaidPublicMethodsTestCase.test_filter_target_raid_config ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root ... ok ironic.tests.unit.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_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace ... ok ironic.tests.unit.common.test_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_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-b3e7f6ad-c69c-4c4d-bf34-eade55c80526 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:42.881915+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'}], 'is_smartnic': False, 'created_at': '2020-03-11T19:45:42.881915+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'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-bad7b7bb-3d56-45b3-9bd1-3fbf4410c845 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:43.052797+00:00", "updated_at": null} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f2c7718-2140-4eca-8391-7d85b9d6e48c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-42529c21-b4de-45e7-8125-a90e1f44b53f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:43.139906+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, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-8e270991-6d62-46d0-9ce2-38dd7e09916a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:43.196621+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, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ab4da988-7a69-4987-8c65-f98070751ffc X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}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_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_is_smartnic_missing_hostname ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ... 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_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk ... ok ironic.tests.unit.common.test_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_max_size_gb ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe ... ok ironic.tests.unit.common.test_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_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks ... ok ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel ... ok POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a73c1015-e73b-4bab-b07d-4af6add2593a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f3e2b747-b9da-429c-9572-994bca1d777f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8bf140d7-eec0-43da-93fe-93f9f7785a65 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 204 No Content Openstack-Request-Id: req-46026f84-5b43-465d-a528-8740ce3f69b9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups/?limit=3 {} GOT:{'portgroups': [{'uuid': 'acdec850-a084-4034-b82a-43319e845b5d', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/acdec850-a084-4034-b82a-43319e845b5d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/acdec850-a084-4034-b82a-43319e845b5d', 'rel': 'bookmark'}]}, {'uuid': '818e2503-983d-491c-95de-9d22c48435c2', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/818e2503-983d-491c-95de-9d22c48435c2', 'rel': 'self'}, {'href': 'http://localhost/portgroups/818e2503-983d-491c-95de-9d22c48435c2', 'rel': 'bookmark'}]}, {'uuid': 'e688cdec-9d74-47c7-98a3-afe2b20a2a5c', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/e688cdec-9d74-47c7-98a3-afe2b20a2a5c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e688cdec-9d74-47c7-98a3-afe2b20a2a5c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=e688cdec-9d74-47c7-98a3-afe2b20a2a5c'} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9ac87b69-3328-4140-9477-8b69019032d1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/portgroups/detail {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-083f2878-819b-4e8f-b6f0-e592c6430642 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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?fields=address,extra {} GOT:{'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]} GET: /v1/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781 {} GOT:{'uuid': 'bdf1f0e7-8a38-43fd-9f86-01269b37d781', '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/bdf1f0e7-8a38-43fd-9f86-01269b37d781', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:40.789242+00:00', 'updated_at': None} GET: /v1/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781 {} GOT:{'uuid': 'bdf1f0e7-8a38-43fd-9f86-01269b37d781', '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/bdf1f0e7-8a38-43fd-9f86-01269b37d781', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:40.789242+00:00', 'updated_at': None} GET: /portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781 {} GOT:{'uuid': 'bdf1f0e7-8a38-43fd-9f86-01269b37d781', '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/bdf1f0e7-8a38-43fd-9f86-01269b37d781', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bdf1f0e7-8a38-43fd-9f86-01269b37d781/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:40.789242+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'}]}]}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.TestListPortgroups.test_ports_subresource ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource ... 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.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_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_rpc.TestRequestContextSerializer.test_deserialize_context ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... ok ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_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_notifier ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_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_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_local_boot ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_local_boot ... 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_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info ... 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_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_volume_pxe_options ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6f0f44cd-083f-4e82-8e5b-3cc6614a0de4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-272d946a-c59e-44be-820c-6cc0d75f7955 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:43.327780+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'}], 'is_smartnic': False, 'created_at': '2020-03-11T19:45:43.327780+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_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1319252e-9ff2-4a6d-aa86-34159452f5ae X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d92df66b-e903-4a62-84df-1fa98be71a98 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-44328c00-8d9c-4371-b569-5daa5c887554 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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"}], "is_smartnic": false, "created_at": "2020-03-11T19:45:43.475573+00:00", "updated_at": null} DELETE: /v1/portgroups/pg.1 GOT:Response: 204 No Content Openstack-Request-Id: req-d3870758-fca4-42e5-af05-d91ce292a97c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 DELETE: /v1/portgroups/pg.1.json GOT:Response: 204 No Content Openstack-Request-Id: req-93140104-6ccf-416a-bc08-7fcbc96c09aa X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 GET: /v1/portgroups?fields=address,uuid {} GOT:{'portgroups': [{'uuid': '2bf99281-cb07-45d3-ab19-8f81008a3131', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/2bf99281-cb07-45d3-ab19-8f81008a3131', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2bf99281-cb07-45d3-ab19-8f81008a3131', 'rel': 'bookmark'}]}, {'uuid': '85dcd507-4f89-45fe-ba75-9cd4ba441fe8', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/85dcd507-4f89-45fe-ba75-9cd4ba441fe8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/85dcd507-4f89-45fe-ba75-9cd4ba441fe8', 'rel': 'bookmark'}]}, {'uuid': '1eea0f47-0756-4e52-9c39-0fd1367c31d0', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/portgroups/1eea0f47-0756-4e52-9c39-0fd1367c31d0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1eea0f47-0756-4e52-9c39-0fd1367c31d0', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=1eea0f47-0756-4e52-9c39-0fd1367c31d0'} GET: /v1/portgroups/detail?node=test-node {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:43.635223+00:00', 'updated_at': None}]} GET: /v1/portgroups {} GOT:{'portgroups': []} GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:43.700262+00:00', 'updated_at': None}]}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_all_ports_by_portgroup_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid ... ok ironic.tests.unit.api.controllers.v1.test_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_get_one_mode_field_lower_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_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_many ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_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_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_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_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk ... ok ironic.tests.unit.common.test_pxe_utils.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_swift.SwiftTestCase.test_delete_object ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... ok GET: /v1/portgroups/28df8463-cf3c-4b3e-bbd7-efab70759595/ports {} GOT:{'ports': [{'uuid': '7a305700-3daa-4aac-877c-b13164e6c920', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/7a305700-3daa-4aac-877c-b13164e6c920', 'rel': 'self'}, {'href': 'http://localhost/ports/7a305700-3daa-4aac-877c-b13164e6c920', 'rel': 'bookmark'}]}, {'uuid': '781c4ad3-6e5b-4ee8-a923-5ae84dc84d8b', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/781c4ad3-6e5b-4ee8-a923-5ae84dc84d8b', 'rel': 'self'}, {'href': 'http://localhost/ports/781c4ad3-6e5b-4ee8-a923-5ae84dc84d8b', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/28df8463-cf3c-4b3e-bbd7-efab70759595/ports/detail {} GOT:{'ports': [{'uuid': '7a305700-3daa-4aac-877c-b13164e6c920', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '28df8463-cf3c-4b3e-bbd7-efab70759595', '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/7a305700-3daa-4aac-877c-b13164e6c920', 'rel': 'self'}, {'href': 'http://localhost/ports/7a305700-3daa-4aac-877c-b13164e6c920', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-03-11T19:45:40.897540+00:00', 'updated_at': None}, {'uuid': '781c4ad3-6e5b-4ee8-a923-5ae84dc84d8b', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '28df8463-cf3c-4b3e-bbd7-efab70759595', '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/781c4ad3-6e5b-4ee8-a923-5ae84dc84d8b', 'rel': 'self'}, {'href': 'http://localhost/ports/781c4ad3-6e5b-4ee8-a923-5ae84dc84d8b', 'rel': 'bookmark'}], 'is_smartnic': False, 'created_at': '2020-03-11T19:45:40.899266+00:00', 'updated_at': None}]} GET: /v1/portgroups/28df8463-cf3c-4b3e-bbd7-efab70759595/ports?limit=1 {} GOT:{'ports': [{'uuid': '7a305700-3daa-4aac-877c-b13164e6c920', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/7a305700-3daa-4aac-877c-b13164e6c920', 'rel': 'self'}, {'href': 'http://localhost/ports/7a305700-3daa-4aac-877c-b13164e6c920', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=7a305700-3daa-4aac-877c-b13164e6c920'} GET: /v1/portgroups/28df8463-cf3c-4b3e-bbd7-efab70759595/ports/33d66161-8d44-4a4d-a277-4eb101dee771 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups/28df8463-cf3c-4b3e-bbd7-efab70759595/ports/6b1b932c-d60f-465d-b131-47961242122e {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d638c89f-76a8-4993-8d7d-e04b75c2a036 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups?sort_key=mode {} GOT:{'portgroups': [{'uuid': 'e7e30b3e-57ff-4b1c-9eb5-1f7ae49558a7', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/e7e30b3e-57ff-4b1c-9eb5-1f7ae49558a7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e7e30b3e-57ff-4b1c-9eb5-1f7ae49558a7', 'rel': 'bookmark'}]}, {'uuid': '57fd0232-6fb5-4a21-9566-46312556376e', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/57fd0232-6fb5-4a21-9566-46312556376e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/57fd0232-6fb5-4a21-9566-46312556376e', 'rel': 'bookmark'}]}, {'uuid': 'c1546b91-4747-4b7b-84f3-2fa4aa16e65d', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/c1546b91-4747-4b7b-84f3-2fa4aa16e65d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c1546b91-4747-4b7b-84f3-2fa4aa16e65d', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c4c1b457-65d3-4757-96b5-df53c4690396 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-80008a96-d727-4800-ad5f-c6db5b5b8aca X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-d695447b-4252-490c-ad92-6cb739a3a39d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-bb9983c3-f3cc-4077-8aa3-5687cce0331f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-b241663e-aad6-406f-a74f-7a23564e8ed6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:41.440851+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00d0c976-2177-4a88-9e83-c8423aa2abaf X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:41.970565+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_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_byaddress_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_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_in_inspecting_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ... ok ironic.tests.unit.api.controllers.v1.test_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 ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id ... ok ironic.tests.unit.common.test_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_swift.SwiftTestCase.test_delete_object_exc ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc ... 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_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_swift.SwiftTestCase.test_get_temp_url ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url ... ok ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name ... 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_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail ... ok 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-d6230802-8f56-4b1a-8ed4-06e6ecaf6ff8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d953be8a-984e-4eac-a4ac-8982a9bd5a3f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected a logical name or UUID but received 52:54:00:cf:2d:31.\"}"} PATCH: /v1/portgroups/pg.1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11638e4d-2735-4e22-875c-921b35d77fd7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:42.368035+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2a7a57e5-9342-4315-b212-642231de9dbb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update portgroup \\\"6eb02b44-18a3-4659-8c0b-8d2802581ae4\\\" on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} PATCH: /v1/portgroups/pg.1 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f5ffb404-fb02-4d74-b2df-ab26f69c66e5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa70ef2e-cba8-45b1-8650-8e791bb661e5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": false, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:42.730001+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": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} 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-cb8324d7-e019-45f4-ab5e-73a2d77ed5b0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:42.906659+00:00", "updated_at": "2020-03-11T19:45:42.977326+00:00"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-b81af51b-2495-4124-b822-5e08569cde90 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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}ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_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_mode_old_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ... 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_portgroup.TestPost.test_create_portgroup_name_invalid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_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_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.common.test_utils.TempFilesTestCase.test_tempdir_mocked ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... ok ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ... ok ironic.tests.unit.common.test_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 GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?fields=address&limit=2 {} GOT:{'portgroups': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/b3ff2a7e-b60f-41b2-a37c-e5daba5b2c68', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b3ff2a7e-b60f-41b2-a37c-e5daba5b2c68', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/c873324e-3abc-4d2c-bb54-4f725aac9ec0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c873324e-3abc-4d2c-bb54-4f725aac9ec0', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=c873324e-3abc-4d2c-bb54-4f725aac9ec0'} GET: /v1/portgroups/?fields=address,properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-82d3cb3e-3218-4782-8c2a-9aab948b7704 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-b1e21778-f608-4510-b80d-29c67d8bcdc3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-27172089-27ea-44dc-9393-7c050dd7f52e X-Openstack-Ironic-Api-Maximum-Version: 1.56 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': '2020-03-11T19:45:44.298015+00:00', 'updated_at': None} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '69ede597-5e64-480b-86f2-5465f07d79cb', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/69ede597-5e64-480b-86f2-5465f07d79cb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/69ede597-5e64-480b-86f2-5465f07d79cb', 'rel': 'bookmark'}]}, {'uuid': 'f5aa0753-1bc8-410f-aaf7-6dd05beee9b0', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/f5aa0753-1bc8-410f-aaf7-6dd05beee9b0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f5aa0753-1bc8-410f-aaf7-6dd05beee9b0', 'rel': 'bookmark'}]}, {'uuid': '45d45288-3c58-458b-bde7-47f4a6555260', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/45d45288-3c58-458b-bde7-47f4a6555260', 'rel': 'self'}, {'href': 'http://localhost/portgroups/45d45288-3c58-458b-bde7-47f4a6555260', 'rel': 'bookmark'}]}, {'uuid': '46f186cc-67f6-4e7e-8319-ca1840974354', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/46f186cc-67f6-4e7e-8319-ca1840974354', 'rel': 'self'}, {'href': 'http://localhost/portgroups/46f186cc-67f6-4e7e-8319-ca1840974354', 'rel': 'bookmark'}]}, {'uuid': 'f317e830-aa25-439e-b229-7a79a975f898', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/f317e830-aa25-439e-b229-7a79a975f898', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f317e830-aa25-439e-b229-7a79a975f898', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b573de25-869f-48b8-b28b-f344d3768772 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'invalid-mac-format'. unable to convert to macaddress. Error: Expected a MAC address but received invalid-mac-format.\", \"debuginfo\": null}"} GET: /v1/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a082b973-882e-4869-96d1-fa9f86bd2a7d X-Openstack-Ironic-Api-Maximum-Version: 1.56 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/0783f6d1-b3d6-4303-b463-ab296b90978a/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-806da993-344e-4606-824a-6a2c967bd1aa X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-17fd6741-90a8-40a0-bb83-7c9c4a9ca42c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-98848b79-a1a8-4bcc-820c-0e614b96c03a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04ca13d0-a562-4390-9017-89635d90abd0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:45.272416+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.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_default_mode ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.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.common.test_wsgi_service.TestWSGIService.test_workers_set_default ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_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_kernel_ramdisk_info_ipxe ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot ... ok ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation ... ok 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-3f8a6c69-127e-45df-9073-94c1e1c55ec5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': 'invalid-format'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-445f0e09-d207-4467-b204-c0b28fce2d64 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received invalid-format.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-438df2bf-89eb-4bb4-9df3-2140464dcab4 X-Openstack-Ironic-Api-Maximum-Version: 1.56 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-e3fe81d4-b7f4-422b-a9b8-7d11ff4701f7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-14617eae-8d09-442f-b266-0faa9b3e60d1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "802.3ad", "properties": {"bond_prop": 123}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:44.177725+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-5c88a92c-79ce-433d-ae3a-f5d08b779b5a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'foo', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-457405ec-ac13-4411-bf5c-00e2df269d3d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "foo", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:44.340449+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': 'aa:aa:aa:11:22:33', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'foo', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:44.340449+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-ad4b5a04-6473-409e-bc45-591309a6ede5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:44.408320+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-092c0db7-ba06-455b-a04c-aed8ddf45f2f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:44.464215+00:00", "updated_at": null}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.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_fast_deploy_lookup ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup ... 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_not_found ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup ... ok ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_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_types.TestEventType.test_invalid_mac_network_port_event ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_invalid_mac_network_port_event ... 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_mandatory_attr ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_mandatory_attr ... 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.TestJsonType.test_valid_values ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values ... 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 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-6b2b6178-b857-403d-b08c-e8391c2db963 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:45.320357+00:00", "updated_at": null} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b3863986-c7ed-4f9a-a45c-7075e54ebc3b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "original"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:45.380186+00:00", "updated_at": "2020-03-11T19:45:45.412366+00:00"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e531f4cd-5b4c-42ec-b25a-56cd0714785f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:45.440496+00:00", "updated_at": "2020-03-11T19:45:45.470482+00:00"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-b33b5245-efb5-40cb-bcd5-c456876eae86 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:45.511504+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: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4a409513-4fe3-465c-a551-bfd8ea6e88c5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/portgroups {'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/04fadd96-30d2-49c1-8805-c3e0c6d20c8a Openstack-Request-Id: req-a64603bf-405f-4465-8943-91062c1e6c44 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "04fadd96-30d2-49c1-8805-c3e0c6d20c8a", "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/04fadd96-30d2-49c1-8805-c3e0c6d20c8a", "rel": "self"}, {"href": "http://localhost/portgroups/04fadd96-30d2-49c1-8805-c3e0c6d20c8a", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/04fadd96-30d2-49c1-8805-c3e0c6d20c8a/ports", "rel": "self"}, {"href": "http://localhost/portgroups/04fadd96-30d2-49c1-8805-c3e0c6d20c8a/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:45.593189+00:00", "updated_at": null} GET: /v1/portgroups/04fadd96-30d2-49c1-8805-c3e0c6d20c8a {} GOT:{'uuid': '04fadd96-30d2-49c1-8805-c3e0c6d20c8a', '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/04fadd96-30d2-49c1-8805-c3e0c6d20c8a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/04fadd96-30d2-49c1-8805-c3e0c6d20c8a', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/04fadd96-30d2-49c1-8805-c3e0c6d20c8a/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/04fadd96-30d2-49c1-8805-c3e0c6d20c8a/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:45.593189+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-66bf77e0-6fdf-43e6-abb0-160a49da45dc X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_hostname_missing ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_hostname_missing ... ok ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ... ok ironic.tests.unit.api.controllers.v1.test_types.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.TestUuidOrNameType.test_invalid_uuid_or_name ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_invalid_uuid_or_name ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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_storage_interface ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_storage_interface ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_traits ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_traits ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch ... ok ironic.tests.unit.api.controllers.v1.test_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_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_by_conductor_group_none ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_none ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_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_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_allowed_fields_resource_class_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_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_check_for_invalid_fields_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.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_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_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 ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ... 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.TestEventType.test_event_missing_madatory_field ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_event_missing_madatory_field ... ok ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_missing_mandatory_fields_network_port_event ironic.tests.unit.api.controllers.v1.test_types.TestEventType.test_missing_mandatory_fields_network_port_event ... 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.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value ... ok ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_with_optional ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_smart_nic_keys_with_optional ... 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_missing_mandatory_key ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_missing_mandatory_key ... ok ironic.tests.unit.api.controllers.v1.test_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_deploy_templates ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_deploy_templates ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_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_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_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.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.TestPortgroupIdent.test_get_rpc_portgroup_name ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_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 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_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_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_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_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_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_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_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_apply_jsonpatch_no_add_root_attr ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr ... ok ironic.tests.unit.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_clean_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_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_inspect_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields_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_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_allow_specify_resource_class_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_unknown_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_unknown_verbs ... ok ironic.tests.unit.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_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_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_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.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_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_method_not_specified ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte ... ok ironic.tests.unit.api.controllers.v1.test_versions.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_versions.TestVersionConstants.test_duplicates ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path ... ok ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node ... ok ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty ... ok ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match ... ok ironic.tests.unit.common.test_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_okay ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ... ok ironic.tests.unit.common.test_rpc.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_get_sensors_notifier_no_notifier ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier ... ok ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-61f62fec-2a0a-41ba-a558-e6ebb350954f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'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-e4f6c5e5-3a6a-4ed4-8c78-65032f8281b7 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:45.773351+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:45.773351+00:00', 'updated_at': None} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52-54-00-cf-2d-31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-990e96db-2bc2-41a9-a110-c22ad104460d X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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', '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-5e1ed14a-5ac5-4749-b03e-30ea1509cba9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:45.858691+00:00", "updated_at": null} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-1b1d9f0a-1636-46f4-89bd-c68c6cf5441a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 GET: /v1/volume/connectors?fields=uuid,extra {} GOT:{'connectors': [{'uuid': '425f9ed7-c9ec-40b7-9cdc-aa752112cadd', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/425f9ed7-c9ec-40b7-9cdc-aa752112cadd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/425f9ed7-c9ec-40b7-9cdc-aa752112cadd', 'rel': 'bookmark'}]}, {'uuid': '17a80f8d-f48a-4823-bde0-90c79856213d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/17a80f8d-f48a-4823-bde0-90c79856213d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/17a80f8d-f48a-4823-bde0-90c79856213d', 'rel': 'bookmark'}]}, {'uuid': '58763da2-0524-4b35-b645-e99e3997a989', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/58763da2-0524-4b35-b645-e99e3997a989', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/58763da2-0524-4b35-b645-e99e3997a989', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=58763da2-0524-4b35-b645-e99e3997a989'} GET: /v1/volume/connectors/detail {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7472c07d-48a5-4fc5-8c80-a4a654c7f2a5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\", \"debuginfo\": null}"} GET: /v1/volume/connectors?node=test-node {} GOT:{'connectors': [{'uuid': 'e55088f4-9d3d-40fe-8b5a-1988ecbe4221', 'type': 'iqn', 'connector_id': 'test-value-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/e55088f4-9d3d-40fe-8b5a-1988ecbe4221', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e55088f4-9d3d-40fe-8b5a-1988ecbe4221', 'rel': 'bookmark'}]}, {'uuid': 'cee8e500-3141-4685-ad6c-c25dc6b26c85', 'type': 'iqn', 'connector_id': 'test-value-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/cee8e500-3141-4685-ad6c-c25dc6b26c85', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/cee8e500-3141-4685-ad6c-c25dc6b26c85', 'rel': 'bookmark'}]}, {'uuid': 'b0e9ffff-dad4-4c78-be5c-a7a045ccc022', 'type': 'iqn', 'connector_id': 'test-value-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/b0e9ffff-dad4-4c78-be5c-a7a045ccc022', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/b0e9ffff-dad4-4c78-be5c-a7a045ccc022', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_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_collection_pagination_no_uuid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid ... ok ironic.tests.unit.api.controllers.v1.test_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_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_links ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links ... 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.TestListVolumeConnectors.test_sort_key ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key ... ok POST: /v1/heartbeat/test.1 {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-acc55823-446f-4934-b7d0-9b661c467aba X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url'} GOT:Response: 202 Accepted Openstack-Request-Id: req-5aa75912-358e-40c6-bc51-1a5619907938 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=19eb0e2b-e96d-47cf-977c-297496e3bdd9 {} GOT:{'node': {'uuid': '19eb0e2b-e96d-47cf-977c-297496e3bdd9', '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/19eb0e2b-e96d-47cf-977c-297496e3bdd9', 'rel': 'self'}, {'href': 'http://localhost/nodes/19eb0e2b-e96d-47cf-977c-297496e3bdd9', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=19eb0e2b-e96d-47cf-977c-297496e3bdd9 {} GOT:{'node': {'uuid': '19eb0e2b-e96d-47cf-977c-297496e3bdd9', '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/19eb0e2b-e96d-47cf-977c-297496e3bdd9', 'rel': 'self'}, {'href': 'http://localhost/nodes/19eb0e2b-e96d-47cf-977c-297496e3bdd9', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=19eb0e2b-e96d-47cf-977c-297496e3bdd9 {} GOT:{'node': {'uuid': '19eb0e2b-e96d-47cf-977c-297496e3bdd9', '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/19eb0e2b-e96d-47cf-977c-297496e3bdd9', 'rel': 'self'}, {'href': 'http://localhost/nodes/19eb0e2b-e96d-47cf-977c-297496e3bdd9', 'rel': 'bookmark'}]}, 'config': {'metrics': {'backend': 'statsd', 'prepend_host': False, 'prepend_uuid': False, 'prepend_host_reverse': True, 'global_prefix': None}, 'metrics_statsd': {'statsd_host': 'localhost', 'statsd_port': 8125}, 'heartbeat_timeout': 300}} GET: /v1/lookup?node_uuid=c7777b31-24ce-4fb8-b053-d4f0bd85cf7f {} GOT:{'node': {'uuid': 'c7777b31-24ce-4fb8-b053-d4f0bd85cf7f', '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/c7777b31-24ce-4fb8-b053-d4f0bd85cf7f', 'rel': 'self'}, {'href': 'http://localhost/nodes/c7777b31-24ce-4fb8-b053-d4f0bd85cf7f', '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-dffb8f35-2c21-4f3f-ac8a-8716e9b38a5f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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=636e34d7-6e11-45d7-bd22-7274108dd01e {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f9415437-34ce-44a3-82ff-660e0b9f398b X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.56', 'min_version': '1.1'}} GET: /v1/volume/ {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bfbeec00-e6c6-41cc-aca3-8f66fca402a6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': 'c8e048d5-4b61-4a62-b5f4-ad272a5723de', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/c8e048d5-4b61-4a62-b5f4-ad272a5723de', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c8e048d5-4b61-4a62-b5f4-ad272a5723de', 'rel': 'bookmark'}]}, {'uuid': 'e32ccb26-2653-4410-b100-faf3c3f1881f', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/e32ccb26-2653-4410-b100-faf3c3f1881f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e32ccb26-2653-4410-b100-faf3c3f1881f', 'rel': 'bookmark'}]}, {'uuid': '352326e5-6ed7-4b53-a907-738ea8992b70', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/352326e5-6ed7-4b53-a907-738ea8992b70', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/352326e5-6ed7-4b53-a907-738ea8992b70', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,type,connector_id&limit=3&marker=352326e5-6ed7-4b53-a907-738ea8992b70'} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bdc96060-bbb9-484f-b813-268661b41474 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=connector_id,extra {}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_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_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.TestListVolumeConnectors.test_many ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.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_node_uuid_not_found ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id ... ok ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error ... ok ironic.tests.unit.api.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_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-51e64ff9-3115-4c45-bb50-bc0c2ca9d8e6 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} GET: /v1/volume/connectors?detail=True&node=test-node {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:45.737174+00:00', 'updated_at': None}]} GET: /v1/volume/connectors?detail=True {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '06f2ae72-0e6c-497a-aa87-ed9cb8fb8950', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/06f2ae72-0e6c-497a-aa87-ed9cb8fb8950', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/06f2ae72-0e6c-497a-aa87-ed9cb8fb8950', 'rel': 'bookmark'}]}, {'uuid': '510e75e6-45e9-4673-8b4b-255ad7b59e67', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/510e75e6-45e9-4673-8b4b-255ad7b59e67', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/510e75e6-45e9-4673-8b4b-255ad7b59e67', 'rel': 'bookmark'}]}, {'uuid': 'be9784f8-6798-4401-ad76-5a70e8de7859', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/be9784f8-6798-4401-ad76-5a70e8de7859', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/be9784f8-6798-4401-ad76-5a70e8de7859', 'rel': 'bookmark'}]}, {'uuid': '67589814-14eb-4de0-b297-c7379d5327d9', 'type': 'iqn', 'connector_id': 'test-connector_id-3', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/67589814-14eb-4de0-b297-c7379d5327d9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/67589814-14eb-4de0-b297-c7379d5327d9', 'rel': 'bookmark'}]}, {'uuid': '07b70595-1d1c-4267-aa10-e0ca6243adf7', 'type': 'iqn', 'connector_id': 'test-connector_id-4', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/07b70595-1d1c-4267-aa10-e0ca6243adf7', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/07b70595-1d1c-4267-aa10-e0ca6243adf7', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a4b848f5-37b4-4fcf-a605-6a231a0f41a1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'remove'}'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/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-f21a2a6f-4baf-4eaf-b4fa-40a1eff06f9a X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:46.201634+00:00", "updated_at": "2020-03-11T19:45:46.205080+00:00"} 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-b12192c4-07f0-403e-9a54-abc8eae5c614 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/node_id', 'op': 'replace', 'value': '1'}'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'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/24b0a919-06b2-4efb-92ac-5114cf90eeda Openstack-Request-Id: req-c4f09717-c3b3-4ac4-b238-96e45bb553bb X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "24b0a919-06b2-4efb-92ac-5114cf90eeda", "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/24b0a919-06b2-4efb-92ac-5114cf90eeda", "rel": "self"}, {"href": "http://localhost/volume/connectors/24b0a919-06b2-4efb-92ac-5114cf90eeda", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:46.320654+00:00", "updated_at": null} GET: /v1/volume/connectors/24b0a919-06b2-4efb-92ac-5114cf90eeda {} GOT:{'uuid': '24b0a919-06b2-4efb-92ac-5114cf90eeda', '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/24b0a919-06b2-4efb-92ac-5114cf90eeda', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/24b0a919-06b2-4efb-92ac-5114cf90eeda', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:46.320654+00:00', 'updated_at': None} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2ade0269-97b1-4f3d-a8ef-9c4288fcccf9 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-ddbbcf9d-c83f-4de5-8955-fc456590583f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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_collection_links ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links ... 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.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ... ok ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid ... ok ironic.tests.unit.common.test_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_unix_file_modification_datetime ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_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_free_space_ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting ... ok ironic.tests.unit.common.test_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.StartStopTestCase.test_conductor_shutdown_flag ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register ... ok GET: /v1/volume/connectors?fields=uuid,extra {} GOT:{'connectors': [{'uuid': '5c53d6db-4b9a-44da-aee9-43bbf5fb0799', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/5c53d6db-4b9a-44da-aee9-43bbf5fb0799', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5c53d6db-4b9a-44da-aee9-43bbf5fb0799', 'rel': 'bookmark'}]}, {'uuid': 'a086c2b3-3528-400f-8c5d-0134acb528ef', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/a086c2b3-3528-400f-8c5d-0134acb528ef', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a086c2b3-3528-400f-8c5d-0134acb528ef', 'rel': 'bookmark'}]}, {'uuid': '9c445d04-ca04-4ea1-ac31-e0160c13043a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/9c445d04-ca04-4ea1-ac31-e0160c13043a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9c445d04-ca04-4ea1-ac31-e0160c13043a', 'rel': 'bookmark'}]}]} GET: /v1/volume/connectors?fields=connector_id&limit=2 {} GOT:{'connectors': [{'connector_id': 'test-connector_id-0', 'links': [{'href': 'http://localhost/v1/volume/connectors/e8cdca69-1488-4817-90c9-c3e3964fe9c3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e8cdca69-1488-4817-90c9-c3e3964fe9c3', 'rel': 'bookmark'}]}, {'connector_id': 'test-connector_id-1', 'links': [{'href': 'http://localhost/v1/volume/connectors/916a176d-bd40-4f4d-8af3-df2bff0f974e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/916a176d-bd40-4f4d-8af3-df2bff0f974e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=916a176d-bd40-4f4d-8af3-df2bff0f974e'} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=connector_id,extra {} GOT:{'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/connectors/1192731b-2737-4529-b0b2-51ec44890c11 {} GOT:{'uuid': '1192731b-2737-4529-b0b2-51ec44890c11', '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/1192731b-2737-4529-b0b2-51ec44890c11', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1192731b-2737-4529-b0b2-51ec44890c11', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:46.575085+00:00', 'updated_at': None} GET: /v1/volume/connectors/1192731b-2737-4529-b0b2-51ec44890c11 {} GOT:{'uuid': '1192731b-2737-4529-b0b2-51ec44890c11', '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/1192731b-2737-4529-b0b2-51ec44890c11', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1192731b-2737-4529-b0b2-51ec44890c11', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:46.575085+00:00', 'updated_at': None} GET: /volume/connectors/1192731b-2737-4529-b0b2-51ec44890c11 {} GOT:{'uuid': '1192731b-2737-4529-b0b2-51ec44890c11', '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/1192731b-2737-4529-b0b2-51ec44890c11', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1192731b-2737-4529-b0b2-51ec44890c11', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:46.575085+00:00', 'updated_at': None} GET: /v1/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/connectors?sort_key=uuid {} GOT:{'connectors': [{'uuid': '121491c7-c07b-4c06-b010-1196e92af62b', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/121491c7-c07b-4c06-b010-1196e92af62b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/121491c7-c07b-4c06-b010-1196e92af62b', 'rel': 'bookmark'}]}, {'uuid': '43beb256-6505-42ad-9ccc-aedc086c3207', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/43beb256-6505-42ad-9ccc-aedc086c3207', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/43beb256-6505-42ad-9ccc-aedc086c3207', 'rel': 'bookmark'}]}, {'uuid': 'c47a6687-0c0c-46db-960c-6f00e379289c', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/c47a6687-0c0c-46db-960c-6f00e379289c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c47a6687-0c0c-46db-960c-6f00e379289c', 'rel': 'bookmark'}]}]} 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-11994f71-b154-4335-b914-5fe1b12724a8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3b5066b-ab1a-479d-9f44-f9a2dbc6a2a5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:46.806048+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-3c750298-8b03-4691-bf4a-a2de418233e0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-13121730-fc69-4fde-843f-78c6a4992483 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23fe4b1d-eaa6-4ea2-b382-9e5833fa8f0f X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:46.936019+00:00", "updated_at": "2020-03-11T19:45:46.939898+00:00"}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi ... ok ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node ... ok ironic.tests.unit.api.controllers.v1.test_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.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.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor ... ok ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init ironic.tests.unit.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init ... ok GET: /v1/volume/targets/?limit=3 {} GOT:{'targets': [{'uuid': 'f74e1527-f530-4500-ab4b-a30f557dbf4d', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/f74e1527-f530-4500-ab4b-a30f557dbf4d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f74e1527-f530-4500-ab4b-a30f557dbf4d', 'rel': 'bookmark'}]}, {'uuid': '83d51755-4de7-45ed-90a7-bd3aa517377d', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/83d51755-4de7-45ed-90a7-bd3aa517377d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/83d51755-4de7-45ed-90a7-bd3aa517377d', 'rel': 'bookmark'}]}, {'uuid': '979932eb-8174-47bf-82f8-e0ba88fc21b2', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/979932eb-8174-47bf-82f8-e0ba88fc21b2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/979932eb-8174-47bf-82f8-e0ba88fc21b2', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,node_uuid,volume_type,boot_index,volume_id&limit=3&marker=979932eb-8174-47bf-82f8-e0ba88fc21b2'} 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?detail=True {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': '1950d331-4877-4fc1-83e3-584dd14a6752', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1950d331-4877-4fc1-83e3-584dd14a6752', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1950d331-4877-4fc1-83e3-584dd14a6752', 'rel': 'bookmark'}]}, {'uuid': 'a02f166e-b395-4546-8645-f5e2a111ce6f', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/a02f166e-b395-4546-8645-f5e2a111ce6f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a02f166e-b395-4546-8645-f5e2a111ce6f', 'rel': 'bookmark'}]}, {'uuid': '336493f1-5aad-4286-99c3-c39cf2f3c451', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/336493f1-5aad-4286-99c3-c39cf2f3c451', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/336493f1-5aad-4286-99c3-c39cf2f3c451', 'rel': 'bookmark'}]}, {'uuid': '8c0aa8ef-dd07-40b1-b80d-6b174270c954', 'volume_type': 'iscsi', 'boot_index': 3, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/8c0aa8ef-dd07-40b1-b80d-6b174270c954', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8c0aa8ef-dd07-40b1-b80d-6b174270c954', 'rel': 'bookmark'}]}, {'uuid': 'a23d51d5-94dd-4baa-b161-7b04acb9538c', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/a23d51d5-94dd-4baa-b161-7b04acb9538c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a23d51d5-94dd-4baa-b161-7b04acb9538c', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/targets?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2a58d39f-f287-477c-9b0d-bb68bd6f6a06 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-4e80c8fa-4834-4548-ae93-839713b86fb3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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-109d40b5-c077-484b-af62-4c3729f34d75 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f717c666-a27d-4219-83cd-9cda0bc30436 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 100, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:46.941994+00:00", "updated_at": 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-1fe47470-f40f-469c-a2e4-982947bf8d07 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 0, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4c11e035-60d5-452c-9d3d-9a233b4ab5f5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa2d6514-94ed-467f-a65d-56d6808facc0 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 100, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:47.083689+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular ... ok ironic.tests.unit.api.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_admin ironic.tests.unit.api.test_acl.TestACL.test_non_admin ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ... ok ironic.tests.unit.api.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_disable_audit_request ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ... 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.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id ... ok ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid ... ok ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields ... ok ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request ... ok ironic.tests.unit.api.controllers.v1.test_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.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ... ok ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors ... ok ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 ... ok ironic.tests.unit.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.test_root.TestV1Root.test_get_v1_22_root ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root ... 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.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid ... 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_migration_functions_2 ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 ... 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.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.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.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.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.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi ... ok This is badINFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found ... ok PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d4e01e25-20c6-426d-9a38-7c74ddd670cf X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:46.936019+00:00", "updated_at": "2020-03-11T19:45:46.939898+00:00"} 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-c9ba5e38-291f-4b4a-a86f-5acb3904e11c X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0de5be4d-bd26-42f5-85c1-e1cfcdd6b2bc X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'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-d7882187-b65d-436c-bb08-b6ccdbf692f1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:47.204184+00:00", "updated_at": null} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:47.204184+00:00', 'updated_at': None} GET: /v1/volume/targets {} GOT:{'targets': []} GET: /v1/volume/targets?fields=boot_index&limit=2 {} GOT:{'targets': [{'boot_index': 0, 'links': [{'href': 'http://localhost/v1/volume/targets/6c445b70-1c55-4d42-8ee0-6085f4007628', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6c445b70-1c55-4d42-8ee0-6085f4007628', 'rel': 'bookmark'}]}, {'boot_index': 1, 'links': [{'href': 'http://localhost/v1/volume/targets/ede6becd-2bf8-427a-ae66-0664a7f42552', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ede6becd-2bf8-427a-ae66-0664a7f42552', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=ede6becd-2bf8-427a-ae66-0664a7f42552'} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=boot_index,extra {} GOT:{'boot_index': 0, 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} 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-38912012-0fd0-4d20-b173-588a685dcca1 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fba8a1a3-5b2f-435f-93be-88282d7c5baa X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:47.471316+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-e80e9339-c731-4d36-876a-99f81a61dbfe X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/boot_index' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', '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-c2c8fbf3-ef91-49c7-b849-cbeafcf65983 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:47.560976+00:00", "updated_at": "2020-03-11T19:45:47.565145+00:00"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}]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.cmd.test_status.TestUpgradeChecks.test__check_obj_versions ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout ... ok ironic.tests.unit.api.controllers.v1.test_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.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping ... ok ironic.tests.unit.api.test_acl.TestACL.test_non_authenticated ironic.tests.unit.api.test_acl.TestACL.test_non_authenticated ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure ... ok ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail ... ok ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_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_tracebacks ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint ... ok ironic.tests.unit.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.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.common.test_cinder.TestCinderSession.test__get_cinder_session ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session ... ok ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ... ok ironic.tests.unit.conductor.test_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.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one ... ok ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported ... ok ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ... 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_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 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ironic.tests.unit.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.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.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.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.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names ... ok ironic.tests.unit.common.test_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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models ... ok ironic.tests.unit.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.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.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions_bad ... ok ironic.tests.unit.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_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_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_exception.TestIronicException.test___str__non_string ironic.tests.unit.common.test_exception.TestIronicException.test___str__non_string ... ok ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ... ok ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state ... 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_fsm.FSMTest.test_process_event ironic.tests.unit.common.test_fsm.FSMTest.test_process_event ... 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.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_config ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config ... 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.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.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_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.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected ... ok ironic.tests.unit.common.test_glance_service.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.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ... ok ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls ... ok ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache ... ok ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed ... ok ironic.tests.unit.common.test_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.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.common.test_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_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_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry ... ok ironic.tests.unit.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.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... ok ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ... ok ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client ... 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_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_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_context.RequestContextTestCase.test_create_context ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context ... 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_context.RequestContextTestCase.test_get_admin_context ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context ... 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_context.RequestContextTestCase.test_thread_without_context ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail ... ok ironic.tests.unit.common.test_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_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_images.FsImageTestCase.test_create_boot_iso_for_bios ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios ... ok ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails ... ok ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces ... ok ironic.tests.unit.common.test_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_driver_factory.DefaultInterfaceTestCase.test_from_config ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test_create_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_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type ... ok ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported ... 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.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi_with_deploy_iso ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi_with_deploy_iso ... ok ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled ... ok ironic.tests.unit.common.test_images.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_create_vfat_image ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... 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_no_such_prop ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing ... ok ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail ... ok ironic.tests.unit.common.test_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_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_images.IronicImagesTestCase.test_image_to_raw_backing_file_present ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance ... 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_json_rpc.TestClient.test_call_failure_with_foreign_class ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_foreign_class ... 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.common.test_json_rpc.TestClient.test_call_success_with_version ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version ... 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_json_rpc.TestClient.test_mask_secrets ironic.tests.unit.common.test_json_rpc.TestClient.test_mask_secrets ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument ... ok ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body ... 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___string_serializable ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable ... ok ironic.tests.unit.common.test_exception.TestIronicException.test___str__encoding ironic.tests.unit.common.test_exception.TestIronicException.test___str__encoding ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_notification ironic.tests.unit.common.test_json_rpc.TestService.test_notification ... 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.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_json_rpc.TestService.test_success ironic.tests.unit.common.test_json_rpc.TestService.test_success ... ok ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth ... ok ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ... ok ironic.tests.unit.common.test_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.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed ... ok ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_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_image_not_active ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active ... ok ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ... ok ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_no_skip_step ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_no_skip_step ... 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_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.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server_fail ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server_fail ... 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_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ... ok ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled ... ok ironic.tests.unit.common.test_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_network.GetPhysnetsByPortgroupID.test_two_ports ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ... 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.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_skip_step ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_skip_step ... 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_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.conductor.test_manager.CreateNodeTestCase.test_create_node ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ... 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.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_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports ... ok ironic.tests.unit.common.test_image_service.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_download_success ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success ... 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.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.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_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__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_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_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_boot_iso_for_uefi_deploy_iso_for_hrefs ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs ... ok ironic.tests.unit.common.test_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_converted_size ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size ... 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_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.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.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.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ... ok ironic.tests.unit.common.test_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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ... ok ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure ... 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_json_rpc.TestClient.test_call_failure_with_version_and_cap ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_version_and_cap ... ok ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation ... ok ironic.tests.unit.common.test_json_rpc.TestService.test_no_context ironic.tests.unit.common.test_json_rpc.TestService.test_no_context ... 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_remove_vifs_from_node ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node ... 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_keystone.KeystoneTestCase.test_get_session ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session ... 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.DestroyPortTestCase.test_destroy_port_node_locked ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked ... 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.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ... 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_port_missing ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context ... 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.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_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None ... ok ironic.tests.unit.conductor.test_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.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_add_network_no_port ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port ... 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.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked ... ok ironic.tests.unit.common.test_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_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups ... ok ironic.tests.unit.common.test_neutron.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_network.TestNetwork.test_get_node_vif_ids_one_port_extra ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_extra ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured ... ok ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info ... ok ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry ... ok ironic.tests.unit.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_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict ... ok ironic.tests.unit.common.test_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.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.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_by_name ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ... 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.TestValidateNetwork.test_failure ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... 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.TestValidateNetwork.test_not_found ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get ... 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.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_no_skip ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_no_skip ... 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_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_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ... ok ironic.tests.unit.conductor.test_manager.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.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipa_debug_rescue ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipa_debug_rescue ... 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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout ... 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_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_ipa_debug ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_ipa_debug ... 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.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue_swift ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_rescue_swift ... 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.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_swift_wdi ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_swift_wdi ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe ... ok ironic.tests.unit.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.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.PXEInterfacesTestCase.test_get_instance_image_info_localboot ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot ... ok ironic.tests.unit.common.test_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 ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover ... ok ironic.tests.unit.common.test_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.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_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_without_is_whole_disk_image ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_without_is_whole_disk_image ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down ... ok ironic.tests.unit.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.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_one ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_one ... ok ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path ... ok ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__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_policy.PolicyInCodeTestCase.test_admin_api ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe ... 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_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.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked ... ok ironic.tests.unit.common.test_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.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot ... 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_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe ... ok ironic.tests.unit.conductor.test_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.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_elilo_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_elilo_config ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_rescue ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_rescue ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_bios ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_bios ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info ... 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.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.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image ... 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_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk ... ok ironic.tests.unit.common.test_pxe_utils.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.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema ... 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.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error ... 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_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_pass ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_validate_boot_parameters_for_trusted_boot_pass ... 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_pxe_utils.TFTPImageCacheTestCase.test_without_master_path ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path ... ok ironic.tests.unit.common.test_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_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_objects ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects ... ok ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... ok ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_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_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_rpc.TestUtils.test_init_globals_with_custom_topics ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics ... ok ironic.tests.unit.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_pxe_utils.TestPXEUtils.test_clean_up_pxe_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail ... ok ironic.tests.unit.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_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_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.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__get_hash_object_throws_for_invalid_or_unsupported_hash_name ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name ... ok ironic.tests.unit.common.test_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_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_is_hostname_safe ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_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_replace_to_existing_capabilities ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ... ok ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file ... ok ironic.tests.unit.common.test_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_utils.TempFilesTestCase.test_check_dir_free_space_raises ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir ... ok ironic.tests.unit.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.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_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.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_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_timeout_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config ... ok ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_ipxe_ipv6 ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_ipxe_ipv6 ... ok ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_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.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.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config ... ok ironic.tests.unit.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_additional_property ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property ... 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.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume ... ok ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume ... ok ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects ... ok ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version ... 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_empty_base ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base ... 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.conductor.test_allocations.DoAllocateTestCase.test_success ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success ... ok ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps ... ok ironic.tests.unit.common.test_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.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step ... ok ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ... 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.conductor.test_allocations.DoAllocateTestCase.test_with_traits ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits ... ok ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ... ok ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free ... 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_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.GenericUtilsTestCase.test_safe_rstrip ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... 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.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.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled ... ok ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... 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_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.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_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance ... ok ironic.tests.unit.conductor.test_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_hw_types ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled ... 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_allocations.DoAllocateTestCase.test_nodes_changed_after_lock ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock ... 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.DoNodeCleanTestCase.test_continue_node_clean_wrong_state ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state ... ok ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates ... 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.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.ManagerSpawnWorkerTestCase.test__spawn_worker ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled ... 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.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.BootDeviceTestCase.test_get_boot_device_validate_fail ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail ... ok ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default ... ok ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none ... 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.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_base_manager.StartConsolesTestCase.test__start_consoles_failed ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning ... ok ironic.tests.unit.conductor.test_manager.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.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.ConsoleTestCase.test_get_console ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_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_continue_node_clean_manual ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual ... ok ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok ... 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.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_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_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.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.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.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning ... ok ironic.tests.unit.conductor.test_manager.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.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.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.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full ... ok ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_do_next_clean_step_oob_reboot_fail ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_do_next_clean_step_oob_reboot_fail ... 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.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.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.ContinueNodeDeployTestCase.test_do_next_deploy_step_oob_reboot ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_do_next_deploy_step_oob_reboot ... 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_unexpected_prepare_error ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error ... 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.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.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.DoNodeDeployTestCase.test__do_node_deploy_configdrive_as_dict_with_meta_data ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_as_dict_with_meta_data ... 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.CheckTimeoutsTestCase.test__check_deploy_timeouts ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts ... 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.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.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.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.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.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.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ... ok ironic.tests.unit.conductor.test_manager.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.DestroyPortTestCase.test_destroy_port ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port ... ok ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... ok ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ... 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_node_active_and_maintenance ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance ... 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.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active ... 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.DestroyPortgroupTestCase.test_destroy_portgroup ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ... ok ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_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.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.DestroyVolumeTargetTestCase.test_destroy_volume_target ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ... 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.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.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok ... 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.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_console ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_console ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_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.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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__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.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_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.ManagerSyncLocalStateTestCase.test_not_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake ... 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.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.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_node_locked ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked ... 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.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.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.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console ... 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_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.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.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.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception ... ok ironic.tests.unit.conductor.test_manager.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.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.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.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.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.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.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_iface_not_supported ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception ... ok ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_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.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.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.RaidTestCases.test_set_target_raid_config ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config ... ok ironic.tests.unit.conductor.test_manager.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.SensorsTestCase.test___send_sensor_data ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ... 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.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_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.SensorsTestCase.test__filter_out_unsupported_types_non ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non ... ok ironic.tests.unit.conductor.test_manager.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.DoNodeRescueTestCase.test__do_node_unrescue_bad_state ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_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_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.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.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.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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old ... ok ironic.tests.unit.conductor.test_manager.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.DoNodeTakeOverTestCase.test__do_takeover ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_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.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.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.StoreConfigDriveTestCase.test_store_configdrive ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive ... ok ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback ... 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.TestIndirectionApiConductor.test_object_action ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected ... 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.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.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.UpdateNodeTestCase.test_update_node_protected_unset ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset ... ok ironic.tests.unit.conductor.test_manager.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.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported ... 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.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_no_worker_avail ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_and_user_data_as_dict ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_and_user_data_as_dict ... 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.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.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_cache_bios_unsupported ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported ... 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.DoNodeDeployTestCase.test__do_node_deploy_configdrive_as_dict ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_as_dict ... 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.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.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_sync_failed ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed ... 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.UpdateNodeTestCase.test_update_resource_class_not_allowed ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ... ok ironic.tests.unit.conductor.test_manager.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.ManagerPowerRecoveryTestCase.test_node_recovery_success ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ... 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.ManagerSyncLocalStateTestCase.test_worker_limit ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit ... 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.DoNodeDeployTestCase.test__do_node_deploy_configdrive_with_network_data ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_with_network_data ... 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.UpdatePortTestCase.test_update_port_node_deleting_state ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ... 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.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.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.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_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.MiscTestCase.test_iter_nodes ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports ... ok ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ... ok ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param ... 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.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.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.NodeInspectHardware.test__check_inspect_wait_timeouts ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts ... ok ironic.tests.unit.conductor.test_manager.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.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ... 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_uuid ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ... 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.NodeTraitsTestCase.test_add_node_traits_node_locked ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked ... ok ironic.tests.unit.conductor.test_manager.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.VendorPassthruTestCase.test_driver_vendor_passthru_sync ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ... 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.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all ... ok ironic.tests.unit.conductor.test_manager.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.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.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers ... ok ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters ... ok ironic.tests.unit.conductor.test_manager.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.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.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.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.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.VifTestCase.test_vif_attach ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach ... 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_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_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc ... ok ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False ... ok ironic.tests.unit.conductor.test_manager.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_rpcapi.RPCAPITestCase.test_can_send_rescue_false ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state ... ok ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ... ok ironic.tests.unit.conductor.test_manager.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_rpcapi.RPCAPITestCase.test_do_node_deploy ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... 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_supported_boot_devices ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices ... 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_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_action_invalid_version ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_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_serialized_instance_has_uuid ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... 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.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_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual ... ok ironic.tests.unit.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.SensorsTestCase.test_send_sensor_task_maintenance ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_driver_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_driver_steps ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted ... ok ironic.tests.unit.conductor.test_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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old ... ok ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates ... ok ironic.tests.unit.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_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported ... ok ironic.tests.unit.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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_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_steps.ValidateDeployTemplatesTestCase.test_error ironic.tests.unit.conductor.test_steps.ValidateDeployTemplatesTestCase.test_error ... 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.DoNodeRescueTestCase.test_do_node_rescue_maintenance ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ... ok ironic.tests.unit.conductor.test_steps.ValidateDeployTemplatesTestCase.test_ok ironic.tests.unit.conductor.test_steps.ValidateDeployTemplatesTestCase.test_ok ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state ... ok ironic.tests.unit.conductor.test_task_manager.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_init_prepares_fsm ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails ... ok ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail ... ok ironic.tests.unit.conductor.test_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.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_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.FastTrackTestCase.test_is_fast_track ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track ... 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.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state ... ok ironic.tests.unit.conductor.test_manager.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_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat ... ok ironic.tests.unit.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_action_copies_object ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object ... ok ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ... 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_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_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance ... ok ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on ... ok ironic.tests.unit.conductor.test_utils.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.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 ... ok ironic.tests.unit.conductor.test_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_exceeded2 ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 ... ok ironic.tests.unit.conductor.test_manager.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_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.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.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.ManagerSyncLocalStateTestCase.test_already_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked ... 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_deploywait_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 ... ok ironic.tests.unit.conductor.test_manager.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_node_not_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set ... 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.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance ... ok ironic.tests.unit.conductor.test_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_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management ironic.tests.unit.conductor.test_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 ... ok ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 ... ok ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi ... 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.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.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.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.UpdateVolumeConnectorTestCase.test_update_volume_connector_type ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type ... ok ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail ... 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_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.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create ... 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.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist ... ok ironic.tests.unit.conductor.test_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_async ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node ... 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.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation ... 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.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid ... 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.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker ... ok ironic.tests.unit.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.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management ... ok ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state ... ok ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes ... ok ironic.tests.unit.conductor.test_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.VendorPassthruTestCase.test_vendor_passthru_shared_lock ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent ... ok ironic.tests.unit.db.test_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.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list ... ok ironic.tests.unit.conductor.test_manager.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.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists ... ok ironic.tests.unit.conductor.test_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.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ... ok ironic.tests.unit.conductor.test_manager.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.db.test_chassis.DbChassisTestCase.test_get_chassis_list ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list ... 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.db.test_chassis.DbChassisTestCase.test_update_chassis ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... ok ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification ... ok ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id ... ok ironic.tests.unit.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ... ok ironic.tests.unit.conductor.test_manager.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all ... ok ironic.tests.unit.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_create_port ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... 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.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for ... 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.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors ... ok ironic.tests.unit.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_driver_known_driver ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version ... ok ironic.tests.unit.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_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_set_target_raid_config ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config ... 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_rpcapi.RPCAPITestCase.test_update_portgroup ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup ... 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_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ... 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_manager.TestIndirectionApiConductor.test_object_backport_versions ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail ... ok ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure ... 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_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg ... ok ironic.tests.unit.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_get_power_state_error ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps ... ok ironic.tests.unit.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.UpdateNodeTestCase.test_update_node_deleting_allocation ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation ... ok ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail ... ok ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported ... ok ironic.tests.unit.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core ... ok ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg ... ok ironic.tests.unit.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.MiscTestCase.test_validate_dynamic_driver_interfaces ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ... ok ironic.tests.unit.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.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.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.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.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_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ... 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.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_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_destroy_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid ... 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.db.test_nodes.DbNodeTestCase.test_get_node_by_name ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ... ok ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker ... 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.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.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_reservation_after_release ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... 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.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_true ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail ... 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.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_true ... ok ironic.tests.unit.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_destroy_portgroup_uuid ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist ... ok ironic.tests.unit.conductor.test_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_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... 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_manager.NodeTraitsTestCase.test_add_node_traits_replace ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace ... 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_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found ... ok ironic.tests.unit.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.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid ... 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_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers ... ok ironic.tests.unit.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_get_ports_by_node_id ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid ... ok ironic.tests.unit.conductor.test_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.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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id ... ok ironic.tests.unit.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.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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_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_uuid ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp ... ok ironic.tests.unit.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.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_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.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.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.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.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode ... ok ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown ... 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.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_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.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake ... ok ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach ... ok ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type ... 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.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy ... 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.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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 ... ok ironic.tests.unit.drivers.modules.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.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.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old ... ok ironic.tests.unit.conductor.test_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.ansible.test_deploy.TestAnsibleDeploy.test_validate ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps ... ok ironic.tests.unit.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_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.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.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.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_empty_portgroup_update_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 ... 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_insecure_activated ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state ... 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.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.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug ... ok ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout ... 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.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on ... ok ironic.tests.unit.drivers.modules.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.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... skipped u"Backend 'postgresql' is unavailable: Could not connect" ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false ... ok ironic.tests.unit.db.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.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok ironic.tests.unit.drivers.modules.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.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked ... ok /usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) /usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to get the BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: boom. ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config_fail ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc ... ok ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to set the BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: boom. ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config_fail ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus ... ok ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled ... ok ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_UEFI_boot_mode ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties ... ok ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_list_boot_modes_fail ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance ... 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.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.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device ... ok ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB ... ok ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties ... 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.db.test_api.UpgradingTestCase.test_check_versions_node_no_version ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_while_powered_off ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ... 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.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht ... ok ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht ... ok ironic.tests.unit.drivers.modules.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.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online ... ok ironic.tests.unit.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.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.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ... ok ironic.tests.unit.conductor.test_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.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface ... ok ironic.tests.unit.drivers.modules.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_fail ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match ... ok ironic.tests.unit.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.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra ... 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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag ... ok ironic.tests.unit.drivers.modules.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.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks ... ok ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async ... 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_node_locked ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ... 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.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_notification_utils.TestNotificationUtils.test_emit_console_notification ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification ... 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.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ... ok ironic.tests.unit.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_get_topic_for_driver_doesnt_cache ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks ... ok ironic.tests.unit.conductor.test_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_inject_nmi ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ... 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_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_update_volume_target ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_device ... ok ironic.tests.unit.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_vif_list ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi_fail ... ok ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... 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.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode ... ok ironic.tests.unit.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.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version ... ok ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_supported_power_states ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ... 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.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits ... ok ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_reboot_fail ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_reboot_fail ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid ... ok ironic.tests.unit.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.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value ... 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.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps ... ok ironic.tests.unit.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.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_task_manager.ProvisionNotifyTestCase.test_notify_error_state ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps ... 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.TaskManagerStateModelTestCases.test_process_event_sets_callback ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id ... ok ironic.tests.unit.conductor.test_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_excl_lock_exception_then_lock ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ... ok ironic.tests.unit.conductor.test_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_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_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps ... 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.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ... ok ironic.tests.unit.conductor.test_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_cleanup_random_exception ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying ... ok ironic.tests.unit.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.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error ... ok ironic.tests.unit.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.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_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_user_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_user_steps ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_steps ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled ... ok ironic.tests.unit.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.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits ... ok ironic.tests.unit.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.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core ... ok ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted ... ok ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg ... ok ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg ... ok 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.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.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.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist ... ok ironic.tests.unit.conductor.test_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.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.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.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries ... ok ironic.tests.unit.conductor.test_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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver ... 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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ... ok ironic.tests.unit.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.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ... ok ironic.tests.unit.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.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error ... ok ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ... 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.DeployingErrorHandlerTestCase.test_deploying_error_handler ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id ... ok ironic.tests.unit.conductor.test_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_cleanup_rescuewait_timeout ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp ... ok ironic.tests.unit.conductor.test_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.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.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address ... ok ironic.tests.unit.conductor.test_utils.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.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.FastTrackTestCase.test_is_fast_track_config_false ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_config_false ... 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.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.FastTrackTestCase.test_is_fast_track_error_blocks ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception ... ok ironic.tests.unit.conductor.test_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.MiscTestCase.test__notify_conductor_resume_operation ironic.tests.unit.conductor.test_utils.MiscTestCase.test__notify_conductor_resume_operation ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant ... ok ironic.tests.unit.conductor.test_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.MiscTestCase.test_notify_conductor_resume_deploy ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy ... 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.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.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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed ... ok ironic.tests.unit.conductor.test_utils.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.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data ... ok ironic.tests.unit.conductor.test_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.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.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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 ... ok ironic.tests.unit.conductor.test_utils.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.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets ... ok ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ... 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.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.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.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.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__get_python_interpreter ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter ... ok ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout ... ok ironic.tests.unit.drivers.modules.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.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout ... ok ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints ... ok ironic.tests.unit.conductor.test_utils.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_invalid_trait_type ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type ... 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.ansible.test_deploy.TestAnsibleMethods.test__run_playbook ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps ... ok ironic.tests.unit.drivers.modules.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.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... skipped u"Backend 'postgresql' is unavailable: Could not connect" ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 ... ok ironic.tests.unit.db.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.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_walk_versions ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... skipped u"Backend 'postgresql' is unavailable: Could not connect" ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleTestCase.test_cimc_handle ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleTestCase.test_cimc_handle ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data ... ok ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_address ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_address ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default ... ok ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ... 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.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_allocations.AllocationsTestCase.test_get_allocation_by_id ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name ... ok ironic.tests.unit.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.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict ... ok ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_validate ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_validate ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated ... ok ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ... ok ironic.tests.unit.drivers.modules.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.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config ... ok ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path ... ok ironic.tests.unit.db.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.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.db.sqlalchemy.test_models.TestGetClass.test_get_class ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... ok ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_boot_setting_failure ... ok ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist ... 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_api.UpdateToLatestVersionsTestCase.test_version_exists ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ... ok ironic.tests.unit.db.test_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_allocations.AllocationsTestCase.test_take_over_allocation_not_found ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found ... ok ironic.tests.unit.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_allocations.AllocationsTestCase.test_take_over_success ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__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.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_empty_boot_mode_list ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor ... ok ironic.tests.unit.drivers.modules.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.db.test_conductor.DbConductorTestCase.test_get_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces ... 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.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ... ok ironic.tests.unit.drivers.modules.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name ... ok ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_reboot_not_reached ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_reboot_not_reached ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace ... ok ironic.tests.unit.drivers.modules.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.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_get_node_tags_empty ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty ... 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.db.test_api.UpgradingTestCase.test_check_versions_ignore_node ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node ... ok ironic.tests.unit.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.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_node_tags.DbNodeTagTestCase.test_node_tag_exists ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state_fail ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ... ok ironic.tests.unit.drivers.modules.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_node_tags.DbNodeTagTestCase.test_unset_node_tags ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags ... ok ironic.tests.unit.drivers.modules.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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate ... ok ironic.tests.unit.drivers.modules.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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist ... ok ironic.tests.unit.drivers.modules.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.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list ... ok ironic.tests.unit.db.test_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_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_get_node_traits_empty ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration ... 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_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ... ok ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist ... ok ironic.tests.unit.db.test_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_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_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list ... 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_nodes.DbNodeTestCase.test_check_node_list_impossible ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits ... ok ironic.tests.unit.drivers.modules.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.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_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_nodes.DbNodeTestCase.test_get_node_list ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ... 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_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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks ... ok ironic.tests.unit.db.test_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_nodes.DbNodeTestCase.test_release_non_existent_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message ... ok ironic.tests.unit.db.test_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_touch_offline_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ... ok ironic.tests.unit.drivers.modules.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_create ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy ... 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_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks ... ok ironic.tests.unit.db.test_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_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted ... ok ironic.tests.unit.db.test_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_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_boot_mode ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_properties ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found ... ok ironic.tests.unit.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_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_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.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_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_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_inject_nmi ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ... ok ironic.tests.unit.db.test_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_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id ... ok ironic.tests.unit.db.test_volume_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_node_traits.DbNodeTraitTestCase.test_node_trait_exists ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_device ... ok ironic.tests.unit.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_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_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target ... 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.ibmc.test_management.IBMCManagementTestCase.test_validate ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate ... 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_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ... 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_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_factory.TestDHCPFactory.test_set_bad_dhcp ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_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_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.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.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_release_non_locked_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node ... 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.db.test_nodes.DbNodeTestCase.test_release_reservation ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts ... ok ironic.tests.unit.db.test_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_update_node_inspection_started_at ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at ... 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.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_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_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_get_portgroups_by_node_id_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... 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.db.test_ports.DbPortTestCase.test_get_port_list_sorted ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address ... 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.db.test_ports.DbPortTestCase.test_update_port_uuid ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id ... ok ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist ... ok ironic.tests.unit.drivers.modules.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.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id ... ok ironic.tests.unit.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.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist ... ok ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ... ok ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ... 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.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info ... ok ironic.tests.unit.drivers.modules.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.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup ... ok ironic.tests.unit.drivers.modules.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.TestAnsibleMethods.test__run_playbook_fail ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception ... ok ironic.tests.unit.drivers.modules.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.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi ... ok ironic.tests.unit.drivers.modules.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 ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_username ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_username ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ... 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.ansible.test_deploy.TestAnsibleDeploy.test_deploy ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on_timeout ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on_timeout ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps ... ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_ok ... ok ironic.tests.unit.drivers.modules.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.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.ansible.test_deploy.TestAnsibleDeploy.test_prepare ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare ... 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.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ... ok ironic.tests.unit.drivers.modules.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 /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: boom. 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.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port ... ok ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to commit the pending BIOS changes for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: boom. ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_empty_list ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_with_smartnic_port ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_with_smartnic_port ... 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.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.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.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports ... ok ironic.tests.unit.drivers.modules.drac.test_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.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_with_smartnic_port ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_with_smartnic_port ... 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_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.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs_fail ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_cdrom ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_invalid_job_queue ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_invalid_job_queue ... ok ironic.tests.unit.drivers.modules.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.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.cimc.test_management.CIMCManagementTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data ... 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.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.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_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update ... ok ironic.tests.unit.drivers.modules.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_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.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.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.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.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.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_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__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.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.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ... ok ironic.tests.unit.drivers.modules.drac.test_raid.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.cimc.test_power.PowerTestCase.test_set_power_state_off_fail ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_fail ... ok ironic.tests.unit.drivers.modules.drac.test_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.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.cimc.test_power.PowerTestCase.test_set_power_state_off_ok ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_ok ... ok ironic.tests.unit.drivers.modules.cimc.test_power.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_no_change ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change ... ok ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.drivers.modules.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.ibmc.test_power.IBMCPowerTestCase.test_validate ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_address ... ok ironic.tests.unit.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.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.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_sensors_data ... ok ironic.tests.unit.drivers.modules.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.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_boot_type_order ... ok ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_port ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed ... ok ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_list_nic_setting_failure ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job ... 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.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail ... ok ironic.tests.unit.drivers.modules.drac.test_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_job.DracJobTestCase.test_validate_job_queue_invalid ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_empty_boot_mode_list ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable ... ok ironic.tests.unit.drivers.modules.drac.test_management.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_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.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_bios.IloBiosTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_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.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver ... ok ironic.tests.unit.drivers.modules.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.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.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_all_steps ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration_with_more_than_min_disks_for_raid_level ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_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.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.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers ... 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.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.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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info ... ok ironic.tests.unit.drivers.modules.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_instance_bios ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios ... 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_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_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.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_ramdisk ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk ... 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.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes ... ok ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail ... 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.ibmc.test_power.IBMCPowerTestCase.test_get_power_state ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.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.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_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_cleanup_vmedia_boot_exc ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_no_cafile ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_no_cafile ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_true ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_true ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ... 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__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.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true ... ok ironic.tests.unit.drivers.modules.ilo.test_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.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_checksum_validation_error ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_checksum_validation_error ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok_post_supported ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok_post_supported ... ok ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_reboot ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_reboot ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok_post_supported ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok_post_supported ... ok ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_reboot_timeout ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_reboot_timeout ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme_with_port ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_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__clean_up_boot_iso_for_instance_no_boot_iso ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_no_boot_iso ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__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__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_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ... 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__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_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration ... 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_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root ... ok ironic.tests.unit.drivers.modules.ilo.test_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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception ... 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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue ... ok ironic.tests.unit.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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_webserver_exc ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_webserver_exc ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_default ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_default ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_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_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_get_server_post_state ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_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_remove_single_or_list_of_files_with_file_list ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list ... ok ironic.tests.unit.drivers.modules.ilo.test_common.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true ... 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_update_boot_mode_legacy ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok ironic.tests.unit.drivers.modules.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_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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ... ok ironic.tests.unit.drivers.modules.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.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_glance_image_doesnt_exists ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_glance_image_doesnt_exists ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_image_source ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_image_source ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image ... ok ironic.tests.unit.drivers.modules.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__remove_webserver_based_me ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_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.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_without_secure_boot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_without_secure_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.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.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_without_secure_boot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_without_secure_boot ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ... ok ironic.tests.unit.drivers.modules.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_management.IloManagementTestCase.test__execute_ilo_clean_step_ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_non_glance_image ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_non_glance_image ... 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.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist ... ok ironic.tests.unit.drivers.modules.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_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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume ... ok ironic.tests.unit.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.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error ... ok ironic.tests.unit.drivers.modules.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_power.IloPowerTestCase.test_set_power_state_timeout ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_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_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_version ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file ... ok ironic.tests.unit.drivers.modules.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_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_localboot_active ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_localboot_active ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_missing_root_uuid ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_missing_root_uuid ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_false ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_false ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_fail ... ok ironic.tests.unit.drivers.modules.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.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_true ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_true ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_swift ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_swift ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ... 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.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_invalid_trusted_boot_value ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_invalid_trusted_boot_value ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_image_kernel_ramdisk_props ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_image_kernel_ramdisk_props ... 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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_trusted_boot_with_secure_boot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_trusted_boot_with_secure_boot ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_with_secure_boot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_with_secure_boot ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_with_secure_boot_false ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance_with_secure_boot_false ... 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.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... ok ironic.tests.unit.drivers.modules.network.test_common.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.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_whole_disk_image ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_whole_disk_image ... 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.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask ... ok ironic.tests.unit.drivers.modules.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.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask ... ok ironic.tests.unit.drivers.modules.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.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_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties ... 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.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.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port ... ok ironic.tests.unit.drivers.modules.irmc.test_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.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.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_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.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted ... ok ironic.tests.unit.drivers.modules.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.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ... ok ironic.tests.unit.drivers.modules.irmc.test_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_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception ... ok ironic.tests.unit.drivers.modules.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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok ... ok ironic.tests.unit.drivers.modules.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.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_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.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true ... 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_remove_rescuing_network ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_local ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_local ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ... ok ironic.tests.unit.drivers.modules.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.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency ... 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.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_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_power.RedfishPowerTestCase.test_reboot_fail ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron ... ok ironic.tests.unit.drivers.modules.network.test_common.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_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets ... ok ironic.tests.unit.drivers.modules.network.test_common.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_plug_port_to_tenant_network_smartnic_port ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_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.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot ... ok ironic.tests.unit.drivers.modules.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_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ... ok ironic.tests.unit.drivers.modules.ilo.test_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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ... 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.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.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.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.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__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.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.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network ... ok ironic.tests.unit.drivers.modules.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.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate ... 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.network.test_flat.TestFlatInterface.test_vif_attach ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach ... ok ironic.tests.unit.drivers.modules.ilo.test_common.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_get_ilo_object_snmp ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_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.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true ... ok ironic.tests.unit.drivers.modules.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.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_step1 ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_step1 ... 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__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.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step1 ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step1 ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload ... ok ironic.tests.unit.drivers.modules.ilo.test_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.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics ... ok ironic.tests.unit.drivers.modules.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.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ... ok ironic.tests.unit.drivers.modules.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.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_properties ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.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.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.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_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_activate_license_no_or_invalid_format_license_key ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_clean_step_foreach_url ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_clean_step_foreach_url ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_no_firmware_url ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_no_firmware_url ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot ... ok ironic.tests.unit.drivers.modules.redfish.test_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.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso ... ok ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_active ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_active ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_always ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_always ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_never ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_force_persistent_boot_device_never ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_with_secure_boot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_with_secure_boot ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_glance_image ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_glance_image ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info 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_empty_snmp_security ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_empty_snmp_security ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware ... ok ironic.tests.unit.drivers.modules.irmc.test_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_id_sand_existing_cap ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate ... 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.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_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__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.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_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_physical_disk_outside_valid_slots_2 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_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_portgroup_first ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_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.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_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_not_attached ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_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.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ... ok ironic.tests.unit.drivers.modules.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.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step2 ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step2 ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_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_auth_auto ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_auto ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_disabled_sessions_cache ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_disabled_sessions_cache ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_new_session_username ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_new_session_username ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_session_reuse ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_session_reuse ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_expire_old_sessions ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_expire_old_sessions ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info 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_invalid_value_verify_ca ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi ... ok ironic.tests.unit.drivers.modules.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.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_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_iscsi_boot_no_connectors ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector ... ok ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_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.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy ... ok ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_default_scheme ... ok ironic.tests.unit.drivers.modules.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.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath ... ok ironic.tests.unit.drivers.modules.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.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary ... ok ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.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.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false_with_smartnic_port ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed ... 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_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.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.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_capabilities_as_string ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_capabilities_as_string ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying ... ok ironic.tests.unit.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.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.test_agent.TestAgentDeploy.test_validate ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume ... ok ironic.tests.unit.drivers.modules.test_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.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok ironic.tests.unit.drivers.modules.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.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_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_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.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.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_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_glance ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_glance ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_webserver ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_boot_option_webserver ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_default ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep ... ok ironic.tests.unit.drivers.modules.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.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported ... ok ironic.tests.unit.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_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_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.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc ... ok ironic.tests.unit.drivers.modules.test_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.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_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.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.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.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported ... ok ironic.tests.unit.drivers.modules.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.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode ... ok ironic.tests.unit.drivers.modules.ilo.test_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.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception ... ok ironic.tests.unit.drivers.modules.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.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.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_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.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises ... ok ironic.tests.unit.drivers.modules.test_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.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol ... ok ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ... ok ironic.tests.unit.drivers.modules.test_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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me ... 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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_with_smartnic_port ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_with_smartnic_port ... 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.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__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.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.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_fail ... ok ironic.tests.unit.drivers.modules.test_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.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot ... ok ironic.tests.unit.drivers.modules.test_agent_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.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.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step_in_other_step ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step_in_other_step ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data ... ok ironic.tests.unit.drivers.modules.test_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.ilo.test_management.IloManagementTestCase.test_inject_nmi ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_custom_port ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_custom_port ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout ... ok ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default ... ok ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_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_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout ... ok ironic.tests.unit.drivers.modules.test_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.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.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_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.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw ... ok ironic.tests.unit.drivers.modules.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.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.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.AgentMethodsTestCase.test_get_clean_steps_override_priorities ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__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_good ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good ... 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.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_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_valid_ephemeral_gb ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_capabilities ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_capabilities ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_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_localboot_bios ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_bios ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_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_verify_and_update ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_verify_and_update ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_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_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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_new_fields_is_md5 ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_new_fields_is_md5 ... 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_fc_target ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image_validation_fail ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image_validation_fail ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_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.TestUpdateImages.test__delete_dest_path_if_stale_no_dest ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ... ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail ... ok ironic.tests.unit.drivers.modules.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__bmc_reset_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device ... 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_management_interface_set_boot_device_without_timeout_2 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2 ... 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_reboot_timeout_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ... ok ironic.tests.unit.drivers.modules.test_ipmitool.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__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_invalid_ipmi_prot_version ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_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.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_basic_session_caching ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_basic_session_caching ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail ... 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_should_write_image ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ... 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.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_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ... ok ironic.tests.unit.drivers.modules.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_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ... ok ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning ... ok ironic.tests.unit.drivers.modules.test_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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_always ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_always ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_never ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_never ... 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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ... ok ironic.tests.unit.drivers.modules.test_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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue ... ok ironic.tests.unit.drivers.modules.test_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_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_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_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false_with_smartnic_port ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false_with_smartnic_port ... 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_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args ... 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__cleaning_reboot_fail ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot_fail ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.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_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook ... ok ironic.tests.unit.drivers.modules.test_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.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_cpu_arch_none ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_cpu_arch_none ... 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.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_with_smartnic_port ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios ... 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.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive ... 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_pxe.PXEBootTestCase.test_clean_up_instance ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance ... ok ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_reboot_to_instance ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_reboot_to_instance ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage ... ok ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href ... ok ironic.tests.unit.drivers.modules.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.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_records_fast_track ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_records_fast_track ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists ... ok ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings ... ok ironic.tests.unit.drivers.modules.test_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.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation ... ok ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_always ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_always ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step_no_steps_list ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_in_core_deploy_step_no_steps_list ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_wipe_disk_metadata ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_wipe_disk_metadata ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok ... ok ironic.tests.unit.drivers.modules.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_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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail ... ok ironic.tests.unit.drivers.modules.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_console_utils.ConsoleUtilsTestCase.test_stop_socat_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name ... ok ironic.tests.unit.drivers.modules.test_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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok ... ok ironic.tests.unit.drivers.modules.test_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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift ... ok ironic.tests.unit.drivers.modules.test_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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_localboot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_localboot ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_iscsi ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_netboot_iscsi ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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_get_boot_mode_for_deploy_using_instance_info ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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_netboot_uefi ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_uefi ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_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_snmp.SNMPClientTestCase.test_get ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_without_copy ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_ipxe_without_copy ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image ... ok ironic.tests.unit.drivers.modules.test_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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_glance_conn_problem ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_glance_conn_problem ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi ... ok ironic.tests.unit.drivers.modules.test_snmp.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good ... ok ironic.tests.unit.drivers.modules.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_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.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_secure_boot_false ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance_secure_boot_false ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs ... ok ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ... ok ironic.tests.unit.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.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__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__download_image_linkfail ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image_linkfail ... 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.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached ... ok ironic.tests.unit.drivers.modules.test_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.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap ... ok ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... 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_inspector.CheckStatusTestCase.test_status_error ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat ... ok ironic.tests.unit.drivers.modules.test_ipmitool.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.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports ... ok ironic.tests.unit.drivers.modules.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__parse_ipmi_sensor_data_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_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.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask ... ok ironic.tests.unit.drivers.modules.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_good ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client ... ok ironic.tests.unit.drivers.modules.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.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok ... ok ironic.tests.unit.drivers.modules.irmc.test_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.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses ... ok ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_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.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.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist ... ok ironic.tests.unit.drivers.modules.test_ipmitool.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.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_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false ... ok ironic.tests.unit.drivers.modules.irmc.test_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.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng ... ok ironic.tests.unit.drivers.modules.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.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail ... ok ironic.tests.unit.drivers.modules.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.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_wait ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_wait ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password ... ok ironic.tests.unit.drivers.modules.test_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__parse_driver_info_with_invalid_bridging_type ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_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_retries_exceeded_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios ... ok ironic.tests.unit.drivers.modules.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.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user ... ok ironic.tests.unit.drivers.modules.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.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status ... ok ironic.tests.unit.drivers.modules.test_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_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.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_localboot_active ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_localboot_active ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_active ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_active ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_true ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_glance_image_doesnt_exists ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_glance_image_doesnt_exists ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_invalid_trusted_boot_value ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_invalid_trusted_boot_value ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_image_source ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_image_source ... 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_iscsi_deploy.ISCSIDeployTestCase.test_clean_up ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_clean_up ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_fast_track ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_fast_track ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_with_smartnic_port ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_with_smartnic_port ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_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.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot ... ok ironic.tests.unit.drivers.modules.test_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_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_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_file_path ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_file_path ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_active ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_active ... 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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_default ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_default ... 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_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.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_true ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_true ... 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.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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot ... ok ironic.tests.unit.drivers.modules.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.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_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_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 ... ok ironic.tests.unit.drivers.modules.network.test_common.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_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.SNMPClientTestCase.test_get_next ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset ... 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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_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_reset_off_snmp_get_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports ... ok ironic.tests.unit.drivers.modules.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.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_extra ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_extra ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info ... ok ironic.tests.unit.drivers.modules.test_snmp.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.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_snmp.SNMPDriverTestCase.test_reboot ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure ... ok ironic.tests.unit.drivers.modules.test_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_invalid_version ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_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.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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm_fail ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm_fail ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_logout ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_logout ... 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.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.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.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.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.ucs.test_management.UcsManagementTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device ... ok ironic.tests.unit.drivers.modules.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.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_exceed_iterations ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_exceed_iterations ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_down ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_down ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net ... 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.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.ucs.test_power.UcsPowerTestCase.test_reboot_fail ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_fail ... ok ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id ... 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.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client ... ok ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info ... 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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device ... ok ironic.tests.unit.drivers.modules.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.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot_no_exc ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot_no_exc ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue ... 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.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.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout ... ok ironic.tests.unit.drivers.modules.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.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid ... ok ironic.tests.unit.drivers.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.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ... ok ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only ... ok ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ... ok ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... ok ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config ... ok ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ... ok ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ... 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.test_cisco.CiscoUCSManagedHardwareTestCase.test_override_with_cimc_interfaces ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_override_with_cimc_interfaces ... ok ironic.tests.unit.drivers.modules.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.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ... ok ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.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.test_ilo.IloHardwareTestCase.test_override_with_inspector ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... ok ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported ... ok ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_step2 ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_step2 ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs ... ok ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ... ok ironic.tests.unit.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.objects.test_allocation.TestAllocationObject.test_get_by_name ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh ... 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.objects.test_allocation.TestAllocationObject.test_save_after_refresh ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ... 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.redfish.test_power.RedfishPowerTestCase.test_validate ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_session ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_session ... 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.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.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.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_list ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... 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.objects.test_conductor.TestConductorObject.test_load ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load ... 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.objects.test_conductor.TestConductorObject.test_refresh ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath ... ok ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names ... 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.objects.test_deploy_template.TestDeployTemplateObject.test_refresh ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh ... ok ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce ... ok ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce 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_fields.TestNotificationLevelField.test_coerce_good_value ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing ... ok ironic.tests.unit.drivers.modules.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.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing ... 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.objects.test_node.TestConvertToVersion.test_description_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing ... 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_owner_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_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_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove ... 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.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.objects.test_node.TestNodeObject.test_get_by_instance_not_found ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_list ironic.tests.unit.objects.test_node.TestNodeObject.test_list ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ... ok ironic.tests.unit.drivers.modules.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.objects.test_node.TestNodeObject.test_save ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group ... 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_touch_provisioning ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ... 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.AgentRAIDTestCase.test__create_configuration_final ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final ... 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_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_no_emit_notifs_disabled ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled ... ok ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object ... ok ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat ... 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.objects.test_objects.TestObject.test_base_attributes ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... ok ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get ironic.tests.unit.objects.test_objects.TestObject.test_get ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ... ok ironic.tests.unit.objects.test_objects.TestObject.test_hydration ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... ok ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration ... ok ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ... ok ironic.tests.unit.objects.test_objects.TestObject.test_object_property ironic.tests.unit.objects.test_objects.TestObject.test_object_property ... ok ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... 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__process_object_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ... 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.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_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.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported ... ok ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate ... 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_connector.TestVolumeConnectorObject.test_get_by_id ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ... ok /usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ... ok GET: /v1/ {} 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'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.56', 'min_version': '1.1'}} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_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_continue_deploy_with_no_proxy_without_proxies ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_no_proxy_without_proxies ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state ... ok ironic.tests.unit.drivers.modules.test_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_prepare_with_neutron_net_exc_reraise ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_reraise ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_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.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_auth_basic ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_auth_basic ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_new_session_address ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_ensure_new_session_address ... 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.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.test_agent.TestAgentMethods.test_validate_http_provisioning_not_glance ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_glance ... 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.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type ... ok ironic.tests.unit.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.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_always ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_enforce_persistent_boot_device_never ... 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 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_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_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.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_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.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running ... 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_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets ... ok ironic.tests.unit.drivers.modules.test_agent_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.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_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.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_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_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_deploy ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_deploy ... 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.AgentRescueTestCase.test_agent_rescue_clean_up ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up ... ok ironic.tests.unit.drivers.modules.test_agent_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.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_still_running ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_still_running ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps ... 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.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_base_vendor.HeartbeatMixinTest.test_heartbeat_not_in_core_deploy_step ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_not_in_core_deploy_step ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ... 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_prepare_adopting ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails ... ok ironic.tests.unit.drivers.modules.test_agent.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_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num ... ok ironic.tests.unit.drivers.modules.test_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_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout ... 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_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_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_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_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_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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_agent.TestAgentMethods.test_validate_http_provisioning_not_http ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_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.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_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown ... 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_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_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off ... ok ironic.tests.unit.drivers.modules.test_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_is_trusted_boot_requested_invalid ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_invalid ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_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_deploy_whole_disk_image_sparse ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_sparse ... 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_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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.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_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_new_fields_none ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_new_fields_none ... 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_agent_client.TestAgentClient.test__get_command_body ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloaderi_with_prep ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloaderi_with_prep ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts ... ok ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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_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_invalid_image_href ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_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_no_clean_up ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date ... ok ironic.tests.unit.drivers.modules.test_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_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_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist ... ok ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ... ok ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ... ok ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone ... ok ironic.tests.unit.drivers.modules.test_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.InspectHardwareAbortTestCase.test_abort_error ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_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_all_options_no_ipmitool ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_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_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_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps ... ok ironic.tests.unit.drivers.modules.test_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_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.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true ... ok ironic.tests.unit.drivers.modules.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_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device ... ok ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolDriverTestCase.test_power_validate ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged ... 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_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_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.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option ... 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_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout ... ok ironic.tests.unit.drivers.modules.test_ipmitool.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_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.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_true ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_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_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_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_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_swap ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_swap ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update ... ok ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_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__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_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_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_timing ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing ... 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_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_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_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_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_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_deleted ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_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_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ... 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_inspector.InspectHardwareTestCase.test_ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_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_dual_bridge_no_ipmitool ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__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__parse_ipmi_sensor_data_debug ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_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_uefi ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1 ... 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_already_off ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__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.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_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_without_username ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__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__make_password_file_write_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_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_invalid_ipmi_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials ... 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_dual_bridging_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir ... ok ironic.tests.unit.drivers.modules.test_ipmitool.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_console_validate_missing_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_default ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_default ... 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_bmc_initialization_in_progress ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_false ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_false ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_localboot ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_localboot ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_true ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_true ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_true ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_with_deployment_reboot ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_with_deployment_reboot ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate ... 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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image_no_root ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image_no_root ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_glance_conn_problem ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_glance_conn_problem ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_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_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ... ok ironic.tests.unit.drivers.modules.test_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.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_prepare_fast_track ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_fast_track ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default ... ok ironic.tests.unit.drivers.modules.test_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_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_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image_no_root ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image_no_root ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_cpu_arch ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_cpu_arch ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url ... ok ironic.tests.unit.drivers.modules.test_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_noop.NoInterfacesTestCase.test_console ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect ... ok ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor ... ok ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid ... ok ironic.tests.unit.drivers.modules.test_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_force_persistent_boot_device_bool_false ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_bool_false ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_false ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_false ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_never ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_never ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_force_persistent_boot_device_sloppy_false ... 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_ipxe_with_copy_file_different ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare ... 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_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_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_state_unknown_pdu ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on ... 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_pxe.PXERamdiskDeployTestCase.test_deploy_with_smartnic_port ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ... 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_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure ... ok ironic.tests.unit.drivers.modules.test_pxe.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.PXEValidateRescueTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ... ok ironic.tests.unit.drivers.modules.test_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_auth_v1_write ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport ... 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.SNMPClientTestCase.test_set ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_snmp.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_on_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_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_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_eatonpower ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_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_priv_badproto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto ... ok ironic.tests.unit.drivers.modules.test_snmp.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.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_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.ucs.test_management.UcsManagementTestCase.test_get_boot_device_fail ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device_fail ... ok ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_properties ... 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__wait_for_state_change_already_target_state ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_already_target_state ... ok ironic.tests.unit.drivers.modules.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.ucs.test_power.UcsPowerTestCase.test_get_power_state_fail ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_fail ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot ... 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_set_power_state ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_invalid_state ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_invalid_state ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid ... ok ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args ... ok ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ... ok ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... 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_get_supported_boot_modes_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl ... 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.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ... ok ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration ... ok ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ... ok ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id ... ok ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list ... ok ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation ... ok ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ... ok ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set ... ok ironic.tests.unit.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_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_description_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing ... ok ironic.tests.unit.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_create ironic.tests.unit.objects.test_node.TestNodeObject.test_create ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low ... 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_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field ... ok ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ... ok ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad ... ok ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... ok ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok ironic.tests.unit.objects.test_objects.TestObject.test_static_result ironic.tests.unit.objects.test_objects.TestObject.test_static_result ... ok ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... ok ironic.tests.unit.objects.test_objects.TestObject.test_updates ironic.tests.unit.objects.test_objects.TestObject.test_updates ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api ... ok ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_get_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_get_by_id ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_list ironic.tests.unit.objects.test_port.TestPortObject.test_list ... ok ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ... ok ironic.tests.unit.objects.test_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_save ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ... ok POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': 123} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33bf3cf9-1d72-42e6-8eae-21bf498e55ea X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-83955b1a-4c4c-4381-88f5-ad12a4987a85 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7bbee684-7cce-4397-9aae-1574065cd911 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get\", \"debuginfo\": null}"} GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33037566-c238-4634-b26a-0e053966b306 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8bf96b25-1067-4c84-a2fb-83dbeec89ae1 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: /v1/foo {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/v1 GOT:Response: 405 Method Not Allowed Allow: GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} 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'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.56', 'min_version': '1.1'}} func1() migrated 15 of 15 objects. func2() migrated 20 of 20 objects. func1() migrated 10 of 10 objects. func2() migrated 0 of 0 objects. func1() migrated 10 of 10 objects. func1() migrated 0 of 0 objects. func2() migrated 0 of 0 objects. Running batches of 50 until migrations have been completed. ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_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_teltronix_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_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.SNMPDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off ... ok ironic.tests.unit.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_apc_rackpdu ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_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_v1 ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ... ok ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_password ... 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_timeout ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_timeout ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_fail ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_fail ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_timeout ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate_fail ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate_fail ... ok ironic.tests.unit.drivers.modules.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_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port ... ok ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_current_none ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict ... ok ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args ... ok ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata ... ok ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ... ok ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl ... ok ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_agent ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_agent ... ok ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good ... ok ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ... ok ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_with_no_raid ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_with_no_raid ... ok ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue ... ok ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces ... ok ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create ... ok ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy ... ok ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save ... ok ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_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_fault_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_release ironic.tests.unit.objects.test_node.TestNodeObject.test_release ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh ... ok ironic.tests.unit.objects.test_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 ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload ... ok ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates ... ok ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two ... ok ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad ... ok ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old ... ok ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep ... ok ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj ... ok ironic.tests.unit.objects.test_objects.TestObject.test_get_updates ironic.tests.unit.objects.test_objects.TestObject.test_get_updates ... 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_obj_constructor ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor ... ok ironic.tests.unit.objects.test_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_is_smartnic_supported_set ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_create ironic.tests.unit.objects.test_port.TestPortObject.test_create ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported ... ok ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ... ok ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ... ok /usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 "instead of warning in version 3.0" % (value,)) ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90b940c1-7663-49d9-b70f-3f01569bb787 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:47.617214+00:00", "updated_at": null} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8f72121-b078-45e1-8172-46d3ca4738cc X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:47.728274+00:00", "updated_at": null} PATCH: /v1/volume/targets/a03768f7-3e09-4dcf-8f7b-d644b87c05c1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f459d7f7-2e92-4f89-9dfb-ab407f84654e X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a03768f7-3e09-4dcf-8f7b-d644b87c05c1 could not be found.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a8d1062a-8a31-474c-a480-48c8af0e6f65 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-b00da8e8-7906-468e-89f4-03b1e591e6d8 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:47.872442+00:00", "updated_at": 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-db557dd6-f5c8-427d-876f-5d146673db91 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f31d52ee-7956-4a74-ba4a-412d8038f04b {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b57eac73-f4bb-4336-a07d-d3105bbdb195 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} foo() migrated 15 of 15 objects. func1() migrated 10 of 15 objects. Running batches of 50 until migrations have been completed. Data migrations have completed. Malformed option m1key1=value1 Data migrations have not completed. Please re-run. ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on ... ok ironic.tests.unit.drivers.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_apc_masterswitchplus ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_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_missing_community_snmp_v2c ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_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_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_teltronix ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix ... 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.UcsCommonMethodsTestcase.test_requires_ucs_client_fail_logout ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_fail_logout ... ok ironic.tests.unit.drivers.modules.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_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_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_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_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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_primary_none ... ok ironic.tests.unit.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.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ... ok ironic.tests.unit.drivers.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_not_dict ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only ... ok ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ... ok ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only ... ok ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority ... ok ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ... ok ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl ... ok ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces ... ok ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_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_fake_hardware.FakeHardwareTestCase.test_get_properties ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... ok ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management ... 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.UtilsTestCase.test_capabilities_not_string ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent ... ok ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true ... ok ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_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_payload_schemas ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list ironic.tests.unit.objects.test_conductor.TestConductorObject.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_with_update ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group ... ok ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name ... ok ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values ... ok ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_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_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field ... 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_empty_schema ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema ... ok ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ... ok ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one ... ok ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ... ok ironic.tests.unit.objects.test_objects.TestObject.test_contains ironic.tests.unit.objects.test_objects.TestObject.test_contains ... ok ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ... 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_do_version_changes_for_db_pinned ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned ... ok ironic.tests.unit.objects.test_objects.TestObject.test_load ironic.tests.unit.objects.test_objects.TestObject.test_load ... ok ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ... ok ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... ok ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ... ok ironic.tests.unit.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__process_object_convert_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor ... ok ironic.tests.unit.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_is_smartnic_supported ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.objects.test_port.TestConvertToVersion.test_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.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_payload_schemas ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_save ironic.tests.unit.objects.test_port.TestPortObject.test_save ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported ... ok ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ... ok ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ... ok ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ... ok ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none ... ok ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ... ok ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1eb4ce73-8b68-4d02-9f5d-bce489b9bd08 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, '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-89006116-e26a-416f-b282-546f82ad1dbe X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo": 123}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.615466+00:00", "updated_at": null} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.615466+00:00', 'updated_at': None} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e602f866-c818-4893-a416-1a7cbb690107 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2f23bdf6-b2c2-4c4c-bec7-f38d693677e3 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"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': {'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-281fc58b-1b9d-4751-8794-1fbbe6154aa5 X-Openstack-Ironic-Api-Maximum-Version: 1.56 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2020-03-11T19:45:38.937300+00:00", "updated_at": null} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2020-03-11T19:45:38.937300+00:00', 'updated_at': None} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-228a009a-6d4d-4590-878c-58711f1ea7cc {"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-08f99005-cd88-4605-8f60-09f4123d6140 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} GET: /v1/ {} GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.56', 'min_version': '1.1'}} func1() migrated 10 of 10 objects. Running batches of 50 until migrations have been completed. Data migrations have completed. Malformed option m1.key1value1 Running batches of 50 until migrations have been completed. Data migrations have completed. ---------------------------------------------------------------------- Ran 5859 tests in 185.580s OK (skipped=12) + python3-stestr slowest Test id Runtime (s) ---------------------------------------------------------------------------------------------------------- ----------- ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state 41.337 ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached 30.488 ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state 24.389 ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_set_power_state_not_reached 12.285 ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached 11.753 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout 9.034 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state 9.029 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state 9.027 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout 9.027 ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state 9.026 + rm -rf .stestr make[1]: Leaving directory '/<>' 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' dh binary --with python3,systemd dh_testroot dh_prep dh_installdirs debian/rules override_dh_auto_install make[1]: Entering directory '/<>' 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' pkgos-dh_auto_install --no-py2 + PKGOS_USE_PY2=yes + PKGOS_USE_PY3=yes + PKGOS_USE_PY2=no + shift + dpkg-parsechangelog -SSource + SRC_PKG_NAME=ironic + echo ironic + sed s/python-// + PY_MODULE_NAME=ironic + [ no = yes ] + [ yes = yes ] + py3versions -vr + PYTHON3S=3.7 + [ no = yes ] + [ yes = yes ] + pwd + python3.7 setup.py install --install-layout=deb --root /<>/debian/python3-ironic running install [pbr] Generating AUTHORS [pbr] AUTHORS complete (0.0s) running build running build_py creating build/lib creating build/lib/ironic creating build/lib/ironic/tests creating build/lib/ironic/tests/unit creating build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/base.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc copying ironic/tests/unit/drivers/modules/ibmc/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc creating build/lib/ironic/tests/unit/api creating build/lib/ironic/tests/unit/api/controllers creating build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_types.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_node.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_event.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_notification_utils.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_volume_connector.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume.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_root.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/__init__.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_utils.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_driver.py -> build/lib/ironic/tests/unit/api/controllers/v1 creating build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/__init__.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 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_notification.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_allocation.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_trait.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_conductor.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_portgroup.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_deploy_template.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_bios.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_port.py -> build/lib/ironic/tests/unit/objects creating build/lib/ironic/objects copying ironic/objects/portgroup.py -> build/lib/ironic/objects copying ironic/objects/base.py -> build/lib/ironic/objects copying ironic/objects/conductor.py -> build/lib/ironic/objects copying ironic/objects/node.py -> build/lib/ironic/objects copying ironic/objects/volume_connector.py -> build/lib/ironic/objects copying ironic/objects/volume_target.py -> build/lib/ironic/objects copying ironic/objects/deploy_template.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/trait.py -> build/lib/ironic/objects copying ironic/objects/fields.py -> build/lib/ironic/objects copying ironic/objects/__init__.py -> build/lib/ironic/objects copying ironic/objects/chassis.py -> build/lib/ironic/objects copying ironic/objects/allocation.py -> build/lib/ironic/objects copying ironic/objects/indirection.py -> build/lib/ironic/objects copying ironic/objects/bios.py -> build/lib/ironic/objects creating build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_factory.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/__init__.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib/ironic/tests/unit/dhcp creating build/lib/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/test_helper.py -> build/lib/ironic/tests/unit/drivers/modules/ucs copying ironic/tests/unit/drivers/modules/ucs/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ucs creating build/lib/ironic/tests/unit/drivers/modules/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 creating build/lib/ironic/api/controllers copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/version.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers 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_deploy_templates.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/base.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_volume_targets.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_chassis.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_conductor.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_node_traits.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_volume_connectors.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_tags.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/__init__.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/test_api.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_allocations.py -> build/lib/ironic/tests/unit/db creating build/lib/ironic/drivers creating build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop_mgmt.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/iscsi_deploy.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/inspect_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_base_vendor.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/snmp.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/inspector.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_base.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop.py -> build/lib/ironic/drivers/modules 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/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/api/hooks.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/expose.py -> build/lib/ironic/api copying ironic/api/wsgi.py -> build/lib/ironic/api copying ironic/api/__init__.py -> build/lib/ironic/api creating build/lib/ironic/cmd copying ironic/cmd/status.py -> build/lib/ironic/cmd copying ironic/cmd/conductor.py -> build/lib/ironic/cmd copying ironic/cmd/dbsync.py -> build/lib/ironic/cmd copying ironic/cmd/api.py -> build/lib/ironic/cmd copying ironic/cmd/__init__.py -> build/lib/ironic/cmd creating build/lib/ironic/tests/functional copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional creating 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/test_task_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_notification_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_steps.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/test_rpcapi.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/__init__.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_allocations.py -> build/lib/ironic/tests/unit/conductor copying ironic/version.py -> build/lib/ironic copying ironic/__init__.py -> build/lib/ironic creating build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/flat.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/__init__.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/common.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network copying ironic/tests/unit/drivers/test_base.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_cisco.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/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_ibmc.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_fake_hardware.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_xclarity.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_redfish.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/__init__.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_utils.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_drac.py -> build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_conductor.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/__init__.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_status.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_dbsync.py -> build/lib/ironic/tests/unit/cmd creating build/lib/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/management.py -> build/lib/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/power.py -> build/lib/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/__init__.py -> build/lib/ironic/drivers/modules/ucs copying ironic/drivers/modules/ucs/helper.py -> build/lib/ironic/drivers/modules/ucs copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_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_ospmiddleware.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/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_root.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api creating build/lib/ironic/api/middleware copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/auth_token.py -> build/lib/ironic/api/middleware copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware creating build/lib/ironic/drivers/modules/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 copying ironic/drivers/modules/storage/noop.py -> build/lib/ironic/drivers/modules/storage creating build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/management.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/power.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/vendor_passthru.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/__init__.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/job.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/raid.py -> build/lib/ironic/drivers/modules/drac creating build/lib/ironic/common creating build/lib/ironic/common/glance_service copying ironic/common/glance_service/service_utils.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/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/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 copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/common/utils.py -> build/lib/ironic/common copying ironic/common/release_mappings.py -> build/lib/ironic/common copying ironic/common/fsm.py -> build/lib/ironic/common copying ironic/common/pxe_utils.py -> build/lib/ironic/common copying ironic/common/service.py -> build/lib/ironic/common copying ironic/common/config.py -> build/lib/ironic/common copying ironic/common/boot_modes.py -> build/lib/ironic/common copying ironic/common/driver_factory.py -> build/lib/ironic/common copying ironic/common/i18n.py -> build/lib/ironic/common copying ironic/common/dhcp_factory.py -> build/lib/ironic/common copying ironic/common/rpc.py -> build/lib/ironic/common copying ironic/common/hash_ring.py -> build/lib/ironic/common copying ironic/common/faults.py -> build/lib/ironic/common copying ironic/common/network.py -> build/lib/ironic/common copying ironic/common/swift.py -> build/lib/ironic/common copying ironic/common/cinder.py -> build/lib/ironic/common copying ironic/common/exception.py -> build/lib/ironic/common copying ironic/common/profiler.py -> build/lib/ironic/common copying ironic/common/rpc_service.py -> build/lib/ironic/common copying ironic/common/boot_devices.py -> build/lib/ironic/common copying ironic/common/states.py -> build/lib/ironic/common copying ironic/common/policy.py -> build/lib/ironic/common copying ironic/common/keystone.py -> build/lib/ironic/common copying ironic/common/__init__.py -> build/lib/ironic/common copying ironic/common/image_service.py -> build/lib/ironic/common copying ironic/common/images.py -> build/lib/ironic/common copying ironic/common/neutron.py -> build/lib/ironic/common copying ironic/common/context.py -> build/lib/ironic/common copying ironic/common/raid.py -> build/lib/ironic/common copying ironic/common/wsgi_service.py -> build/lib/ironic/common creating build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_raid.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 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/management.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/inspect.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/power.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/__init__.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/bios.py -> build/lib/ironic/drivers/modules/redfish creating build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/server.py -> build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/__init__.py -> build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/client.py -> build/lib/ironic/common/json_rpc creating 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/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network creating build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible copying ironic/drivers/utils.py -> build/lib/ironic/drivers copying ironic/drivers/xclarity.py -> build/lib/ironic/drivers copying ironic/drivers/hardware_type.py -> build/lib/ironic/drivers copying ironic/drivers/fake_hardware.py -> build/lib/ironic/drivers copying ironic/drivers/base.py -> build/lib/ironic/drivers copying ironic/drivers/cisco_ucs.py -> build/lib/ironic/drivers copying ironic/drivers/generic.py -> build/lib/ironic/drivers copying ironic/drivers/snmp.py -> build/lib/ironic/drivers copying ironic/drivers/ilo.py -> build/lib/ironic/drivers copying ironic/drivers/ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/redfish.py -> build/lib/ironic/drivers copying ironic/drivers/irmc.py -> build/lib/ironic/drivers copying ironic/drivers/__init__.py -> build/lib/ironic/drivers copying ironic/drivers/ibmc.py -> build/lib/ironic/drivers copying ironic/drivers/drac.py -> build/lib/ironic/drivers creating build/lib/ironic/hacking copying ironic/hacking/__init__.py -> build/lib/ironic/hacking copying ironic/hacking/checks.py -> build/lib/ironic/hacking creating build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/management.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/power.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/__init__.py -> build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/common.py -> build/lib/ironic/drivers/modules/xclarity creating 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_exception.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_json_rpc.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_release_mappings.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_states.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_driver_factory.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_cinder.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_context.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_glance_service.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_fsm.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_hash_ring.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_rpc_service.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_network.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/__init__.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_neutron.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_policy.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_raid.py -> build/lib/ironic/tests/unit/common copying ironic/tests/unit/common/test_pxe_utils.py -> build/lib/ironic/tests/unit/common creating build/lib/ironic/common/glance_service/v2 copying ironic/common/glance_service/v2/__init__.py -> build/lib/ironic/common/glance_service/v2 copying ironic/common/glance_service/v2/image_service.py -> build/lib/ironic/common/glance_service/v2 creating build/lib/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/management.py -> build/lib/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/power.py -> build/lib/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/__init__.py -> build/lib/ironic/drivers/modules/cimc copying ironic/drivers/modules/cimc/common.py -> build/lib/ironic/drivers/modules/cimc 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_job.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_management.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_raid.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 creating build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf creating build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/boot.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/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/power.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/__init__.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/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/raid.py -> build/lib/ironic/drivers/modules/irmc creating build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible creating build/lib/ironic/tests/unit/drivers/modules/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_console.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_firmware_processor.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/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_raid.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 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_migrations.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/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy creating build/lib/ironic/dhcp copying ironic/dhcp/base.py -> build/lib/ironic/dhcp copying ironic/dhcp/none.py -> build/lib/ironic/dhcp copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp creating build/lib/ironic/conf copying ironic/conf/dhcp.py -> build/lib/ironic/conf copying ironic/conf/xclarity.py -> build/lib/ironic/conf copying ironic/conf/opts.py -> build/lib/ironic/conf copying ironic/conf/json_rpc.py -> build/lib/ironic/conf copying ironic/conf/conductor.py -> build/lib/ironic/conf copying ironic/conf/deploy.py -> build/lib/ironic/conf copying ironic/conf/cisco.py -> build/lib/ironic/conf copying ironic/conf/service_catalog.py -> build/lib/ironic/conf copying ironic/conf/pxe.py -> build/lib/ironic/conf copying ironic/conf/metrics.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf copying ironic/conf/cinder.py -> build/lib/ironic/conf copying ironic/conf/agent.py -> build/lib/ironic/conf copying ironic/conf/snmp.py -> build/lib/ironic/conf copying ironic/conf/ilo.py -> build/lib/ironic/conf copying ironic/conf/database.py -> build/lib/ironic/conf copying ironic/conf/api.py -> build/lib/ironic/conf copying ironic/conf/inspector.py -> build/lib/ironic/conf copying ironic/conf/ipmi.py -> build/lib/ironic/conf copying ironic/conf/auth.py -> build/lib/ironic/conf copying ironic/conf/default.py -> build/lib/ironic/conf copying ironic/conf/redfish.py -> build/lib/ironic/conf copying ironic/conf/irmc.py -> build/lib/ironic/conf copying ironic/conf/metrics_statsd.py -> build/lib/ironic/conf copying ironic/conf/iscsi.py -> build/lib/ironic/conf copying ironic/conf/__init__.py -> build/lib/ironic/conf copying ironic/conf/healthcheck.py -> build/lib/ironic/conf copying ironic/conf/ansible.py -> build/lib/ironic/conf copying ironic/conf/audit.py -> build/lib/ironic/conf copying ironic/conf/neutron.py -> build/lib/ironic/conf copying ironic/conf/glance.py -> build/lib/ironic/conf copying ironic/conf/console.py -> build/lib/ironic/conf copying ironic/conf/ibmc.py -> build/lib/ironic/conf copying ironic/conf/drac.py -> build/lib/ironic/conf creating build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/boot.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/vendor.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/power.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/__init__.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/common.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/bios.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/raid.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/firmware_processor.py -> build/lib/ironic/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/test_ipmitool.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_boot_mode_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_iscsi_deploy.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.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_snmp.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_noop.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_inspector.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipxe.py -> build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/utils.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/event.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/portgroup.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/conductor.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/node.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/volume_connector.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_target.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/versions.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/deploy_template.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/notification_utils.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/ramdisk.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/port.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/collection.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/__init__.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/chassis.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/allocation.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/bios.py -> build/lib/ironic/api/controllers/v1 creating build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/utils.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/vendor.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/management.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/power.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/__init__.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/mappings.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/tests/base.py -> build/lib/ironic/tests copying ironic/tests/__init__.py -> build/lib/ironic/tests creating build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/tests/unit/drivers/modules/redfish/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/redfish creating build/lib/ironic/conductor copying ironic/conductor/utils.py -> build/lib/ironic/conductor copying ironic/conductor/manager.py -> build/lib/ironic/conductor copying ironic/conductor/notification_utils.py -> build/lib/ironic/conductor copying ironic/conductor/rpcapi.py -> build/lib/ironic/conductor copying ironic/conductor/task_manager.py -> build/lib/ironic/conductor copying ironic/conductor/__init__.py -> build/lib/ironic/conductor copying ironic/conductor/allocations.py -> build/lib/ironic/conductor copying ironic/conductor/steps.py -> build/lib/ironic/conductor copying ironic/conductor/base_manager.py -> build/lib/ironic/conductor running 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] Reusing existing SOURCES.txt copying ironic/drivers/modules/agent_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/elilo_efi_pxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/master_grub_cfg.txt -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_grub_config.template -> build/lib/ironic/drivers/modules copying ironic/api/app.wsgi -> build/lib/ironic/api creating build/lib/ironic/releasenotes creating build/lib/ironic/releasenotes/notes copying ironic/releasenotes/notes/add-protection-for-available-nodes-25f163d69782ef63.yaml -> build/lib/ironic/releasenotes/notes 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/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/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/d2b036ae9378_add_automated_clean_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc creating build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/inventory -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks creating build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins creating build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library creating build/lib/ironic/drivers/modules/ansible/playbooks/roles creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers running install_lib creating /<>/debian/python3-ironic/usr creating /<>/debian/python3-ironic/usr/lib creating /<>/debian/python3-ironic/usr/lib/python3 creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_config.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/noop_mgmt.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/iscsi_deploy.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/flat.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/neutron.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/noop.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/external.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/cinder.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/noop.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/console_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipxe.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/xclarity/common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity copying build/lib/ironic/drivers/modules/inspect_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_base_vendor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipmitool.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/elilo_efi_pxe_config.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_client.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/snmp.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/deploy_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/boot.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/inspect.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/irmc/raid.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc copying build/lib/ironic/drivers/modules/fake.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc copying build/lib/ironic/drivers/modules/cimc/management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc copying build/lib/ironic/drivers/modules/cimc/power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc copying build/lib/ironic/drivers/modules/cimc/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc copying build/lib/ironic/drivers/modules/cimc/common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc copying build/lib/ironic/drivers/modules/image_cache.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot.ipxe -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/inspect.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/redfish/bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish copying build/lib/ironic/drivers/modules/inspector.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/boot.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/vendor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/inspect.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/console.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/raid.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/firmware_processor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible copying build/lib/ironic/drivers/modules/ansible/deploy.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/clean.yaml -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/ansible.cfg -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/inventory -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/deploy.yaml -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible copying build/lib/ironic/drivers/modules/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_grub_config.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipxe_config.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot_mode_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs copying build/lib/ironic/drivers/modules/ucs/management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs copying build/lib/ironic/drivers/modules/ucs/power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs copying build/lib/ironic/drivers/modules/ucs/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs copying build/lib/ironic/drivers/modules/ucs/helper.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/inspect.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/vendor_passthru.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/job.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/raid.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/noop.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/vendor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/mappings.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/pxe_config.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/master_grub_cfg.txt -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/xclarity.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/hardware_type.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/fake_hardware.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/cisco_ucs.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/generic.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/snmp.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/ilo.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/ipmi.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/redfish.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/irmc.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/ibmc.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/raid_config_schema.json -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/drac.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/portgroup.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/conductor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/node.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/volume_connector.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/volume_target.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/deploy_template.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/port.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/notification.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/trait.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/fields.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/chassis.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/allocation.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/indirection.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests copying build/lib/ironic/tests/base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_ipmitool.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_flat.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_noop.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_neutron.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/test_deploy_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/test_cinder.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/test_external.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/test_agent_client.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent_base_vendor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_console_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/test_pxe.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules creating /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_boot.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_raid.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc copying build/lib/ironic/tests/unit/drivers/modules/cimc/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/redfish/test_inspect.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish copying build/lib/ironic/tests/unit/drivers/modules/test_snmp.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_image_cache.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_noop.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_console.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_boot.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_raid.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/test_inspector.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_inspect_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_ipxe.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs copying build/lib/ironic/tests/unit/drivers/modules/ucs/test_power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs copying build/lib/ironic/tests/unit/drivers/modules/ucs/test_management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs copying build/lib/ironic/tests/unit/drivers/modules/ucs/test_helper.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs copying build/lib/ironic/tests/unit/drivers/modules/ucs/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_job.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_common.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_raid.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_inspect.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_vendor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_power.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_management.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/test_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/test_base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_generic.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_cisco.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ipmi.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ilo.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mocks.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ibmc.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/elilo_efi_pxe_config.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/boot.ipxe -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_snmp.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_fake_hardware.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_xclarity.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_redfish.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_timeout.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_irmc.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_grub_config.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_drac.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/test_base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_notification.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_target.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_allocation.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_fields.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_trait.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_chassis.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_conductor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_node.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_portgroup.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_volume_connector.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_deploy_template.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_objects.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects copying build/lib/ironic/tests/unit/objects/test_port.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_conductor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_status.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/test_dbsync.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/stubs.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_manager.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_task_manager.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_steps.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_allocations.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_middleware.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_types.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_target.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_versions.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_allocation.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_chassis.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_conductor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_node.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_event.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_portgroup.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_expose.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_root.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_port.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_driver.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers copying build/lib/ironic/tests/unit/api/test_hooks.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_acl.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_audit.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_root.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/unit/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_image_service.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_exception.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_json_rpc.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_images.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_states.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_cinder.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_context.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_glance_service.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_keystone.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_fsm.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc_service.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_swift.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_network.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_neutron.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_policy.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_raid.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_pxe_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_deploy_templates.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_volume_targets.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_chassis.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_conductor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_ports.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_traits.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_portgroups.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_volume_connectors.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_nodes.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_node_tags.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_api.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_bios_settings.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/test_allocations.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_types.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_migrations.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_models.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/db/sqlalchemy/test_api.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy copying build/lib/ironic/tests/unit/raid_constants.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/test_auth.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/policy_fixture.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/functional copying build/lib/ironic/tests/functional/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/functional copying build/lib/ironic/tests/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/none.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/dhcp copying build/lib/ironic/dhcp/neutron.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/dhcp creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/status.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/conductor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/dbsync.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/api.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/version.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/manager.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/notification_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/rpcapi.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/task_manager.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/allocations.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/steps.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/conductor/base_manager.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/releasenotes creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/releasenotes/notes copying build/lib/ironic/releasenotes/notes/add-protection-for-available-nodes-25f163d69782ef63.yaml -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/releasenotes/notes creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/hooks.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/config.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/base.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/event.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/portgroup.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/conductor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/node.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/state.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_connector.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_target.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/versions.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/deploy_template.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/notification_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/ramdisk.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/port.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/collection.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/types.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/driver.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/chassis.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/allocation.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/bios.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/version.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/link.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers copying build/lib/ironic/api/controllers/root.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers copying build/lib/ironic/api/app.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/expose.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/json_ext.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/parsable_error.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/auth_token.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/middleware copying build/lib/ironic/api/middleware/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/middleware copying build/lib/ironic/api/app.wsgi -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/wsgi.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/api/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/release_mappings.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/fsm.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/pxe_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/service.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/config.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/boot_modes.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/driver_factory.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/i18n.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/isolinux_config.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/dhcp_factory.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/rpc.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/hash_ring.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/faults.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/network.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/swift.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/cinder.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/exception.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/profiler.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/rpc_service.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/boot_devices.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/states.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/grub_conf.template -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/policy.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/keystone.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/service_utils.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service copying build/lib/ironic/common/glance_service/base_image_service.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 copying build/lib/ironic/common/glance_service/v2/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 copying build/lib/ironic/common/glance_service/v2/image_service.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 copying build/lib/ironic/common/glance_service/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service copying build/lib/ironic/common/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/image_service.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/server.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/client.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/json_rpc copying build/lib/ironic/common/images.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/neutron.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/context.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/raid.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/wsgi_service.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db copying build/lib/ironic/db/migration.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db copying build/lib/ironic/db/api.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db copying build/lib/ironic/db/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/alembic.ini -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/migration.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/api.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/env.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/README -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/script.py.mako -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> /<>/debian/python3-ironic/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 -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/models.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/dhcp.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/xclarity.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/opts.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/json_rpc.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/conductor.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/deploy.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/cisco.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/service_catalog.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/pxe.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/metrics.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/swift.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/cinder.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/agent.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/snmp.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/ilo.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/database.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/api.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/inspector.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/ipmi.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/auth.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/default.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/redfish.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/irmc.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/metrics_statsd.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/iscsi.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/healthcheck.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/ansible.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/audit.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/neutron.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/glance.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/console.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/ibmc.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/drac.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf creating /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/hacking copying build/lib/ironic/hacking/__init__.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/hacking copying build/lib/ironic/hacking/checks.py -> /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/hacking byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/utils.py to utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/noop_mgmt.py to noop_mgmt.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/iscsi_deploy.py to iscsi_deploy.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network/flat.py to flat.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network/common.py to common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network/neutron.py to neutron.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/network/noop.py to noop.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/external.py to external.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/cinder.py to cinder.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/noop.py to noop.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/console_utils.py to console_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ipxe.py to ipxe.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/management.py to management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/power.py to power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/common.py to common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/inspect_utils.py to inspect_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/pxe.py to pxe.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/agent_base_vendor.py to agent_base_vendor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ipmitool.py to ipmitool.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/agent.py to agent.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/agent_client.py to agent_client.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/snmp.py to snmp.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/deploy_utils.py to deploy_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/boot.py to boot.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/management.py to management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/inspect.py to inspect.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/power.py to power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/common.py to common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/bios.py to bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/raid.py to raid.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/fake.py to fake.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/management.py to management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/power.py to power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/common.py to common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/image_cache.py to image_cache.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/utils.py to utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/management.py to management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/inspect.py to inspect.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/power.py to power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/bios.py to bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/inspector.py to inspector.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/boot.py to boot.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/vendor.py to vendor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/management.py to management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/inspect.py to inspect.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/power.py to power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/common.py to common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/console.py to console.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/bios.py to bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/raid.py to raid.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/firmware_processor.py to firmware_processor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/deploy.py to deploy.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/root_hints.py to root_hints.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py to facts_wwn.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/stream_url.py to stream_url.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py to ironic_log.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/pxe_base.py to pxe_base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/boot_mode_utils.py to boot_mode_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/management.py to management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/power.py to power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/helper.py to helper.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/management.py to management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/inspect.py to inspect.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/power.py to power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/vendor_passthru.py to vendor_passthru.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/common.py to common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/bios.py to bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/job.py to job.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/raid.py to raid.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/noop.py to noop.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/utils.py to utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/vendor.py to vendor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/management.py to management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/power.py to power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/mappings.py to mappings.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/xclarity.py to xclarity.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/hardware_type.py to hardware_type.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/fake_hardware.py to fake_hardware.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/base.py to base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/cisco_ucs.py to cisco_ucs.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/generic.py to generic.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/snmp.py to snmp.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/ilo.py to ilo.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/ipmi.py to ipmi.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/redfish.py to redfish.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/irmc.py to irmc.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/ibmc.py to ibmc.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/drivers/drac.py to drac.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/portgroup.py to portgroup.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/base.py to base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/conductor.py to conductor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/node.py to node.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/volume_connector.py to volume_connector.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/volume_target.py to volume_target.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/deploy_template.py to deploy_template.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/port.py to port.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/notification.py to notification.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/trait.py to trait.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/fields.py to fields.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/chassis.py to chassis.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/allocation.py to allocation.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/indirection.py to indirection.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/objects/bios.py to bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/base.py to base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_ipmitool.py to test_ipmitool.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_flat.py to test_flat.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_common.py to test_common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_noop.py to test_noop.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_neutron.py to test_neutron.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_deploy_utils.py to test_deploy_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_boot_mode_utils.py to test_boot_mode_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_cinder.py to test_cinder.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_external.py to test_external.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent_client.py to test_agent_client.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py to test_iscsi_deploy.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_console_utils.py to test_console_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent.py to test_agent.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_power.py to test_power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_management.py to test_management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_common.py to test_common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_pxe.py to test_pxe.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_noop_mgmt.py to test_noop_mgmt.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_power.py to test_power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_management.py to test_management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_common.py to test_common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_boot.py to test_boot.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py to test_periodic_task.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_bios.py to test_bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_raid.py to test_raid.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_inspect.py to test_inspect.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_power.py to test_power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_management.py to test_management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_common.py to test_common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_power.py to test_power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_management.py to test_management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_utils.py to test_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_bios.py to test_bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_inspect.py to test_inspect.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_snmp.py to test_snmp.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_image_cache.py to test_image_cache.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_noop.py to test_noop.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_vendor.py to test_vendor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_console.py to test_console.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_power.py to test_power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_management.py to test_management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py to test_firmware_processor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_common.py to test_common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_boot.py to test_boot.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_bios.py to test_bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_raid.py to test_raid.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_inspect.py to test_inspect.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_inspector.py to test_inspector.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/test_deploy.py to test_deploy.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_inspect_utils.py to test_inspect_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_ipxe.py to test_ipxe.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/test_power.py to test_power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/test_management.py to test_management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/test_helper.py to test_helper.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/utils.py to utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_job.py to test_job.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_power.py to test_power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_management.py to test_management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_common.py to test_common.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py to test_periodic_task.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_bios.py to test_bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_raid.py to test_raid.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_inspect.py to test_inspect.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_vendor.py to test_vendor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/base.py to base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_power.py to test_power.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_management.py to test_management.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_utils.py to test_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_base.py to test_base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_generic.py to test_generic.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_cisco.py to test_cisco.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ipmi.py to test_ipmi.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ilo.py to test_ilo.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/third_party_driver_mocks.py to third_party_driver_mocks.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ibmc.py to test_ibmc.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_snmp.py to test_snmp.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_fake_hardware.py to test_fake_hardware.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_xclarity.py to test_xclarity.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_redfish.py to test_redfish.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_irmc.py to test_irmc.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_utils.py to test_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_drac.py to test_drac.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/test_base.py to test_base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/utils.py to utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_notification.py to test_notification.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_target.py to test_volume_target.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_allocation.py to test_allocation.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_fields.py to test_fields.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_trait.py to test_trait.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_chassis.py to test_chassis.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_conductor.py to test_conductor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_node.py to test_node.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_portgroup.py to test_portgroup.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_connector.py to test_volume_connector.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_deploy_template.py to test_deploy_template.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_bios.py to test_bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_objects.py to test_objects.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_port.py to test_port.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_factory.py to test_factory.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_neutron.py to test_neutron.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_conductor.py to test_conductor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_status.py to test_status.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_dbsync.py to test_dbsync.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/stubs.py to stubs.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_manager.py to test_manager.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_base_manager.py to test_base_manager.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_task_manager.py to test_task_manager.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_notification_utils.py to test_notification_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_steps.py to test_steps.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/mgr_utils.py to mgr_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_rpcapi.py to test_rpcapi.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_utils.py to test_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_allocations.py to test_allocations.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/utils.py to utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/base.py to base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_middleware.py to test_middleware.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/test_base.py to test_base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_types.py to test_types.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_target.py to test_volume_target.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_versions.py to test_versions.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_ramdisk.py to test_ramdisk.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_allocation.py to test_allocation.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_chassis.py to test_chassis.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_conductor.py to test_conductor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_node.py to test_node.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_event.py to test_event.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_notification_utils.py to test_notification_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_portgroup.py to test_portgroup.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_connector.py to test_volume_connector.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_deploy_template.py to test_deploy_template.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume.py to test_volume.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_expose.py to test_expose.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_root.py to test_root.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_utils.py to test_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_port.py to test_port.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_driver.py to test_driver.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_hooks.py to test_hooks.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_ospmiddleware.py to test_ospmiddleware.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_acl.py to test_acl.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_healthcheck.py to test_healthcheck.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_audit.py to test_audit.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_root.py to test_root.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/api/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_image_service.py to test_image_service.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_exception.py to test_exception.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_json_rpc.py to test_json_rpc.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_images.py to test_images.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_release_mappings.py to test_release_mappings.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_states.py to test_states.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_driver_factory.py to test_driver_factory.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_wsgi_service.py to test_wsgi_service.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_cinder.py to test_cinder.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_context.py to test_context.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc.py to test_rpc.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_glance_service.py to test_glance_service.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_keystone.py to test_keystone.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_fsm.py to test_fsm.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_hash_ring.py to test_hash_ring.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc_service.py to test_rpc_service.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_swift.py to test_swift.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_network.py to test_network.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_neutron.py to test_neutron.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_policy.py to test_policy.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_utils.py to test_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_raid.py to test_raid.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_pxe_utils.py to test_pxe_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/utils.py to utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_deploy_templates.py to test_deploy_templates.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/base.py to base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_volume_targets.py to test_volume_targets.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_chassis.py to test_chassis.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_conductor.py to test_conductor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_ports.py to test_ports.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_traits.py to test_node_traits.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_portgroups.py to test_portgroups.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_volume_connectors.py to test_volume_connectors.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_nodes.py to test_nodes.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_tags.py to test_node_tags.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_api.py to test_api.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_bios_settings.py to test_bios_settings.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_allocations.py to test_allocations.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_types.py to test_types.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_migrations.py to test_migrations.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_models.py to test_models.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_api.py to test_api.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/raid_constants.py to raid_constants.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conf/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/conf/test_auth.py to test_auth.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/unit/policy_fixture.py to policy_fixture.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/functional/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/tests/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/dhcp/base.py to base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/dhcp/none.py to none.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/dhcp/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/dhcp/neutron.py to neutron.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd/status.py to status.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd/conductor.py to conductor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd/dbsync.py to dbsync.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd/api.py to api.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/cmd/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/version.py to version.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor/utils.py to utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor/manager.py to manager.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor/notification_utils.py to notification_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor/rpcapi.py to rpcapi.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor/task_manager.py to task_manager.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor/allocations.py to allocations.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor/steps.py to steps.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conductor/base_manager.py to base_manager.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/hooks.py to hooks.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/config.py to config.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/base.py to base.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/utils.py to utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/event.py to event.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/portgroup.py to portgroup.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/conductor.py to conductor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/node.py to node.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/state.py to state.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_connector.py to volume_connector.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_target.py to volume_target.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/versions.py to versions.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/deploy_template.py to deploy_template.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/notification_utils.py to notification_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume.py to volume.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/ramdisk.py to ramdisk.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/port.py to port.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/collection.py to collection.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/types.py to types.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/driver.py to driver.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/chassis.py to chassis.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/allocation.py to allocation.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/v1/bios.py to bios.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/version.py to version.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/link.py to link.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/controllers/root.py to root.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/app.py to app.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/expose.py to expose.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/middleware/json_ext.py to json_ext.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/middleware/parsable_error.py to parsable_error.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/middleware/auth_token.py to auth_token.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/middleware/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/wsgi.py to wsgi.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/api/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/utils.py to utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/release_mappings.py to release_mappings.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/fsm.py to fsm.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/pxe_utils.py to pxe_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/service.py to service.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/config.py to config.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/boot_modes.py to boot_modes.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/driver_factory.py to driver_factory.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/i18n.py to i18n.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/dhcp_factory.py to dhcp_factory.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/rpc.py to rpc.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/hash_ring.py to hash_ring.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/faults.py to faults.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/network.py to network.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/swift.py to swift.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/cinder.py to cinder.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/exception.py to exception.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/profiler.py to profiler.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/rpc_service.py to rpc_service.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/boot_devices.py to boot_devices.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/states.py to states.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/policy.py to policy.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/keystone.py to keystone.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service/service_utils.py to service_utils.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service/base_image_service.py to base_image_service.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service/v2/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service/v2/image_service.py to image_service.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/glance_service/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/image_service.py to image_service.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/json_rpc/server.py to server.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/json_rpc/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/json_rpc/client.py to client.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/images.py to images.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/neutron.py to neutron.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/context.py to context.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/raid.py to raid.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/common/wsgi_service.py to wsgi_service.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/migration.py to migration.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/api.py to api.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/migration.py to migration.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/api.py to api.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/env.py to env.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py to 1e15e7122cc9_add_extra_column_to_deploy_templates.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py to 2aac7e0872f6_add_deploy_templates.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py to 93706939026c_add_node_protected_field.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py to f190f9d00a11_add_node_owner.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py to d2b036ae9378_add_automated_clean_field.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py to 2581ebaf0cb2_initial_migration.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py to dd67b91a1981_add_allocations_table.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py to 28c44432c9c3_add_node_description.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py to 9cbeefa3763f_add_port_is_smartnic.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/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 /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/models.py to models.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/dhcp.py to dhcp.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/xclarity.py to xclarity.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/opts.py to opts.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/json_rpc.py to json_rpc.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/conductor.py to conductor.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/deploy.py to deploy.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/cisco.py to cisco.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/service_catalog.py to service_catalog.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/pxe.py to pxe.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/metrics.py to metrics.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/swift.py to swift.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/cinder.py to cinder.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/agent.py to agent.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/snmp.py to snmp.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/ilo.py to ilo.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/database.py to database.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/api.py to api.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/inspector.py to inspector.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/ipmi.py to ipmi.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/auth.py to auth.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/default.py to default.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/redfish.py to redfish.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/irmc.py to irmc.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/metrics_statsd.py to metrics_statsd.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/iscsi.py to iscsi.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/healthcheck.py to healthcheck.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/ansible.py to ansible.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/audit.py to audit.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/neutron.py to neutron.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/glance.py to glance.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/console.py to console.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/ibmc.py to ibmc.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/conf/drac.py to drac.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/hacking/__init__.py to __init__.cpython-37.pyc byte-compiling /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic/hacking/checks.py to checks.cpython-37.pyc running install_data creating /<>/debian/python3-ironic/usr/etc creating /<>/debian/python3-ironic/usr/etc/ironic copying etc/ironic/rootwrap.conf -> /<>/debian/python3-ironic/usr/etc/ironic creating /<>/debian/python3-ironic/usr/etc/ironic/rootwrap.d copying etc/ironic/rootwrap.d/ironic-lib.filters -> /<>/debian/python3-ironic/usr/etc/ironic/rootwrap.d/ copying etc/ironic/rootwrap.d/ironic-utils.filters -> /<>/debian/python3-ironic/usr/etc/ironic/rootwrap.d/ copying etc/ironic/rootwrap.d/ironic-images.filters -> /<>/debian/python3-ironic/usr/etc/ironic/rootwrap.d/ running install_egg_info Copying ironic.egg-info to /<>/debian/python3-ironic/usr/lib/python3/dist-packages/ironic-12.1.4.dev5.202003111929.disco.egg-info Skipping SOURCES.txt running install_scripts Installing ironic-api script to /<>/debian/python3-ironic/usr/bin Installing ironic-conductor script to /<>/debian/python3-ironic/usr/bin Installing ironic-dbsync script to /<>/debian/python3-ironic/usr/bin Installing ironic-rootwrap script to /<>/debian/python3-ironic/usr/bin Installing ironic-status script to /<>/debian/python3-ironic/usr/bin Installing ironic-api-wsgi script to /<>/debian/python3-ironic/usr/bin /usr/lib/python3/dist-packages/setuptools/dist.py:484: UserWarning: The version specified ('12.1.4.dev5.202003111929.disco') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details. "details." % self.metadata.version /usr/lib/python3/dist-packages/pbr/packaging.py:409: EasyInstallDeprecationWarning: Use get_header header = easy_install.get_script_header("", executable, is_wininst) + pwd + rm -rf /<>/debian/python*/usr/lib/python*/dist-packages/*.pth + pwd + [ -d /<>/debian/python-ironic/usr/bin ] rm -rf /<>/debian/python3-ironic/usr/etc make[1]: Leaving directory '/<>' debian/rules override_dh_install make[1]: Entering directory '/<>' 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' PYTHONPATH=/<> oslo-config-generator --config-file=tools/config/ironic-config-generator.conf cp etc/ironic/ironic.conf.sample etc/ironic/ironic.conf crudini --set /<>/etc/ironic/ironic.conf DEFAULT log_dir /var/log/ironic crudini --set /<>/etc/ironic/ironic.conf database connection sqlite:////var/lib/ironic/ironic.db dh_install --fail-missing -Xusr/etc dh_install: Please use dh_missing --list-missing/--fail-missing instead dh_install: This feature will be removed in compat 12. make[1]: Leaving directory '/<>' dh_installdocs debian/rules override_dh_installchangelogs make[1]: Entering directory '/<>' 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' if [ -e /<>/debian/CHANGELOG ] ; then \ dh_installchangelogs /<>/debian/CHANGELOG ; \ else \ dh_installchangelogs ; \ fi make[1]: Leaving directory '/<>' debian/rules override_dh_systemd_enable make[1]: Entering directory '/<>' 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' # Create the init scripts and systemd unit files from the template set -e ; set -x ; for i in `ls -1 debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in//` ; \ cp $i $MYINIT.init ; \ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done + ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in + echo debian/ironic-api.init.in + sed s/.init.in// + MYINIT=debian/ironic-api + cp debian/ironic-api.init.in debian/ironic-api.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-api.init.in + sed s/.init.in// + echo debian/ironic-conductor.init.in + MYINIT=debian/ironic-conductor + cp debian/ironic-conductor.init.in debian/ironic-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template + 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 + 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 + 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 '/<>' dh_python3 debian/rules override_dh_installinit make[1]: Entering directory '/<>' 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' # Create the init scripts and systemd unit files from the template set -e ; set -x ; for i in `ls -1 debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in//` ; \ cp $i $MYINIT.init ; \ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done + ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in + echo debian/ironic-api.init.in + sed s/.init.in// + MYINIT=debian/ironic-api + cp debian/ironic-api.init.in debian/ironic-api.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-api.init.in + echo debian/ironic-conductor.init.in + sed s/.init.in// + MYINIT=debian/ironic-conductor + cp debian/ironic-conductor.init.in debian/ironic-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-conductor.init.in # If there's a service.in file, use that one instead of the generated one set -e ; set -x ; for i in `ls -1 debian/*.service.in`; do \ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done + ls -1 debian/*.service.in ls: cannot access 'debian/*.service.in': No such file or directory # Generate the systemd unit if there's no already existing .service.in set -e ; set -x ; for i in `ls debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in/.service.in/` ; \ if ! [ -e $MYINIT ] ; then \ pkgos-gen-systemd-unit $i ; \ fi \ done + ls debian/ironic-api.init.in debian/ironic-conductor.init.in + 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 + 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 '/<>' dh_systemd_start dh_perl dh_link dh_strip_nondeterminism dh_compress dh_fixperms dh_missing dh_installdeb debian/rules override_dh_gencontrol make[1]: Entering directory '/<>' 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 debian/rules:27: warning: overriding recipe for target 'get-orig-source' /usr/share/openstack-pkg-tools/pkgos.make:65: warning: ignoring old recipe for target 'get-orig-source' if dpkg-vendor --derives-from ubuntu ; then \ dh_gencontrol -- -T/<>/debian/ubuntu_control_vars ; \ else \ dh_gencontrol -- -T/<>/debian/debian_control_vars ; \ fi make[1]: Leaving directory '/<>' dh_md5sums dh_builddeb INFO: pkgstriptranslations version 144 INFO: pkgstriptranslations version 144 INFO: pkgstriptranslations version 144 INFO: pkgstriptranslations version 144 INFO: Disabling pkgstriptranslations for PPA build INFO: Disabling pkgstriptranslations for PPA build INFO: Disabling pkgstriptranslations for PPA build INFO: Disabling pkgstriptranslations for PPA build INFO: Disabling pkgmaintainermangler for PPA build INFO: Disabling pkgmaintainermangler for PPA build INFO: Disabling pkgmaintainermangler for PPA build INFO: Disabling pkgmaintainermangler for PPA build INFO: Disabling pkgstripfiles for PPA build dpkg-deb: building package 'ironic-api' in '../ironic-api_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb'. INFO: Disabling pkgstripfiles for PPA build INFO: Disabling pkgstripfiles for PPA build dpkg-deb: building package 'ironic-common' in '../ironic-common_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb'. dpkg-deb: building package 'python3-ironic' in '../python3-ironic_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb'. INFO: Disabling pkgstripfiles for PPA build dpkg-deb: building package 'ironic-conductor' in '../ironic-conductor_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb'. dpkg-genbuildinfo --build=binary dpkg-genchanges --build=binary -mLaunchpad Build Daemon >../ironic_12.1.4.dev5.202003111929.disco-0ubuntu1_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) -------------------------------------------------------------------------------- Build finished at 20200311-1948 Finished -------- I: Built successfully +------------------------------------------------------------------------------+ | Post Build Chroot | +------------------------------------------------------------------------------+ +------------------------------------------------------------------------------+ | Changes | +------------------------------------------------------------------------------+ ironic_12.1.4.dev5.202003111929.disco-0ubuntu1_amd64.changes: ------------------------------------------------------------- Format: 1.8 Date: Wed, 11 Mar 2020 19:32:24 +0000 Source: ironic Binary: ironic-api ironic-common ironic-conductor python3-ironic Architecture: all Version: 1:12.1.4.dev5.202003111929.disco-0ubuntu1 Distribution: disco Urgency: medium Maintainer: Launchpad Build Daemon Changed-By: Openstack Ubuntu Testing Bot Description: ironic-api - Openstack bare metal provisioning service - API ironic-common - Openstack bare metal provisioning service - daemons ironic-conductor - Openstack bare metal provisioning service - conductor python3-ironic - Openstack bare metal provisioning service - Python 3 library Changes: ironic (1:12.1.4.dev5.202003111929.disco-0ubuntu1) disco; urgency=medium . * Automated Ubuntu testing build: * [431d514] Disable grenade jobs from Stein Checksums-Sha1: f054facff900a77a18b4187b80eff74d7af70e80 11204 ironic-api_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb 58d2fa213891866bd591a27d9457db8ec46832d9 35624 ironic-common_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb e22356e83b9412d1954465ea2cad791aaf917d96 9636 ironic-conductor_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb 85bb289e6e6b72722f1d384188a9fe9f516ab4b8 17768 ironic_12.1.4.dev5.202003111929.disco-0ubuntu1_amd64.buildinfo 6cebd02c2e863c7c4a8584cd72e440947fa9ae45 734284 python3-ironic_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb Checksums-Sha256: 23383d23ceb3148bd2cf15ecffa29a75138d5e5ecba4ff7b6760c22846b4593a 11204 ironic-api_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb 80c31efea75d6a8c1d559baddf8f2311ba66e31dd395901b8a962691ee7ac589 35624 ironic-common_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb fc002fb6911b428d79a670589b0a9c17b8595bf456485569e4d4d970baf4a0f2 9636 ironic-conductor_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb ba81a2d1ca66773ec2cca7dd38dc9912b859aa16dfc35e40bd96cc5d0e76cdc1 17768 ironic_12.1.4.dev5.202003111929.disco-0ubuntu1_amd64.buildinfo 325d56b5c3df2e4be6bdc433d19d88ed59e54b9bf05ac3d1cbc89f1127b78d02 734284 python3-ironic_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb Files: 4a75bb1c6772a8de119d9acbb026c316 11204 net extra ironic-api_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb f1a85c7a6234449865dcc46388ae1314 35624 net extra ironic-common_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb f549c249f32ce7183bbe77b8cb6f4b59 9636 net extra ironic-conductor_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb 6033b1419736e4b8846c7a644a9f9942 17768 net extra ironic_12.1.4.dev5.202003111929.disco-0ubuntu1_amd64.buildinfo 25975bdef234a4cd2c92b3acae550b00 734284 net extra python3-ironic_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb +------------------------------------------------------------------------------+ | Package contents | +------------------------------------------------------------------------------+ ironic-api_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb ---------------------------------------------------------- new debian package, version 2.0. size 11204 bytes: control archive=1584 bytes. 23 bytes, 1 lines conffiles 831 bytes, 20 lines control 447 bytes, 6 lines md5sums 1317 bytes, 32 lines * postinst #!/bin/sh 629 bytes, 21 lines * postrm #!/bin/sh 203 bytes, 7 lines * prerm #!/bin/sh Package: ironic-api Source: ironic Version: 1:12.1.4.dev5.202003111929.disco-0ubuntu1 Architecture: all Maintainer: Chuck Short Installed-Size: 35 Depends: python3-ironic (= 1:12.1.4.dev5.202003111929.disco-0ubuntu1) Section: net Priority: extra Description: Openstack bare metal provisioning service - API Ironic is an Incubated OpenStack project which aims to provision bare metal machines instead of virtual machines, forked from the Nova Baremetal driver. It is best thought of as a bare metal hypervisor **API** and a set of plugins which interact with the bare metal hypervisors. By default, it will use PXE and IPMI in concert to provision and turn on/off machines, but Ironic also supports vendor-specific plugins which may implement additional functionality. . This package contains the API. drwxr-xr-x root/root 0 2020-03-11 19:32 ./ drwxr-xr-x root/root 0 2020-03-11 19:32 ./etc/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./etc/init.d/ -rwxr-xr-x root/root 5739 2020-03-11 19:32 ./etc/init.d/ironic-api drwxr-xr-x root/root 0 2020-03-11 19:32 ./lib/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./lib/systemd/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./lib/systemd/system/ -rw-r--r-- root/root 413 2020-03-11 19:32 ./lib/systemd/system/ironic-api.service drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/doc/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/doc/ironic-api/ -rw-r--r-- root/root 1415 2020-03-11 19:29 ./usr/share/doc/ironic-api/README.rst -rw-r--r-- root/root 4716 2020-03-11 19:32 ./usr/share/doc/ironic-api/changelog.Debian.gz -rw-r--r-- root/root 1667 2020-03-11 19:32 ./usr/share/doc/ironic-api/copyright -rw-r--r-- root/root 1794 2020-03-11 19:29 ./usr/share/doc/ironic-api/requirements.txt -rw-r--r-- root/root 719 2020-03-11 19:29 ./usr/share/doc/ironic-api/test-requirements.txt ironic-common_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb ------------------------------------------------------------- new debian package, version 2.0. size 35624 bytes: control archive=1156 bytes. 54 bytes, 2 lines conffiles 975 bytes, 22 lines control 154 bytes, 2 lines md5sums 554 bytes, 22 lines * postinst #!/bin/sh Package: ironic-common Source: ironic Version: 1:12.1.4.dev5.202003111929.disco-0ubuntu1 Architecture: all Maintainer: Chuck Short Installed-Size: 162 Depends: adduser, psmisc Breaks: ironic-api (<< 1:11.1.0-0ubuntu3~), ironic-conductor (<< 1:11.1.0-0ubuntu3~) Replaces: ironic-api (<< 1:11.1.0-0ubuntu3~), ironic-conductor (<< 1:11.1.0-0ubuntu3~) Section: net Priority: extra Description: Openstack bare metal provisioning service - daemons Ironic is an Incubated OpenStack project which aims to provision bare metal machines instead of virtual machines, forked from the Nova Baremetal driver. It is best thought of as a bare metal hypervisor **API** and a set of plugins which interact with the bare metal hypervisors. By default, it will use PXE and IPMI in concert to provision and turn on/off machines, but Ironic also supports vendor-specific plugins which may implement additional functionality. . This package contains the common files. drwxr-xr-x root/root 0 2020-03-11 19:32 ./ drwxr-xr-x root/root 0 2020-03-11 19:32 ./etc/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./etc/ironic/ -rw-r--r-- root/root 139818 2020-03-11 19:32 ./etc/ironic/ironic.conf drwxr-xr-x root/root 0 2020-03-11 19:32 ./etc/ironic/rootwrap.d/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./etc/sudoers.d/ -r--r----- root/root 112 2020-03-11 19:32 ./etc/sudoers.d/ironic_sudoers drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/doc/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/doc/ironic-common/ -rw-r--r-- root/root 4716 2020-03-11 19:32 ./usr/share/doc/ironic-common/changelog.Debian.gz -rw-r--r-- root/root 1667 2020-03-11 19:32 ./usr/share/doc/ironic-common/copyright drwxr-xr-x root/root 0 2020-03-11 19:32 ./var/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./var/lib/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./var/lib/ironic/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./var/log/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./var/log/ironic/ ironic-conductor_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb ---------------------------------------------------------------- new debian package, version 2.0. size 9636 bytes: control archive=1508 bytes. 29 bytes, 1 lines conffiles 871 bytes, 20 lines control 238 bytes, 3 lines md5sums 1359 bytes, 32 lines * postinst #!/bin/sh 653 bytes, 21 lines * postrm #!/bin/sh 215 bytes, 7 lines * prerm #!/bin/sh Package: ironic-conductor Source: ironic Version: 1:12.1.4.dev5.202003111929.disco-0ubuntu1 Architecture: all Maintainer: Chuck Short Installed-Size: 30 Depends: ipmitool (>= 1.8.12), python3-ironic (= 1:12.1.4.dev5.202003111929.disco-0ubuntu1) Section: net Priority: extra Description: Openstack bare metal provisioning service - conductor Ironic is an Incubated OpenStack project which aims to provision bare metal machines instead of virtual machines, forked from the Nova Baremetal driver. It is best thought of as a bare metal hypervisor **API** and a set of plugins which interact with the bare metal hypervisors. By default, it will use PXE and IPMI in concert to provision and turn on/off machines, but Ironic also supports vendor-specific plugins which may implement additional functionality. . This package contains the conductor. drwxr-xr-x root/root 0 2020-03-11 19:32 ./ drwxr-xr-x root/root 0 2020-03-11 19:32 ./etc/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./etc/init.d/ -rwxr-xr-x root/root 5755 2020-03-11 19:32 ./etc/init.d/ironic-conductor drwxr-xr-x root/root 0 2020-03-11 19:32 ./lib/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./lib/systemd/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./lib/systemd/system/ -rw-r--r-- root/root 417 2020-03-11 19:32 ./lib/systemd/system/ironic-conductor.service drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/doc/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/doc/ironic-conductor/ -rw-r--r-- root/root 4716 2020-03-11 19:32 ./usr/share/doc/ironic-conductor/changelog.Debian.gz -rw-r--r-- root/root 1667 2020-03-11 19:32 ./usr/share/doc/ironic-conductor/copyright python3-ironic_12.1.4.dev5.202003111929.disco-0ubuntu1_all.deb -------------------------------------------------------------- new debian package, version 2.0. size 734284 bytes: control archive=15632 bytes. 2518 bytes, 20 lines control 63221 bytes, 587 lines md5sums 254 bytes, 12 lines * postinst #!/bin/sh 403 bytes, 12 lines * prerm #!/bin/sh Package: python3-ironic Source: ironic Version: 1:12.1.4.dev5.202003111929.disco-0ubuntu1 Architecture: all Maintainer: Chuck Short Installed-Size: 7647 Depends: alembic (>= 0.8.10), ironic-common (= 1:12.1.4.dev5.202003111929.disco-0ubuntu1), python3-alembic (>= 0.8.10), python3-automaton (>= 1.9.0), python3-cinderclient (>= 1:3.3.0), python3-eventlet (>= 0.18.2), python3-futurist (>= 1.2.0), python3-glanceclient (>= 1:2.8.0), python3-ironic-lib (>= 2.15.0), python3-jinja2 (>= 2.10), python3-jsonpatch (>= 1.16), python3-jsonschema (>= 2.6.0), python3-keystoneauth1 (>= 3.4.0), python3-keystonemiddleware (>= 4.17.0), python3-neutronclient (>= 1:6.7.0), python3-openstacksdk (>= 0.25.0), python3-os-traits (>= 0.4.0), python3-oslo.concurrency (>= 3.26.0), python3-oslo.config (>= 1:5.2.0), python3-oslo.context (>= 1: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.upgradecheck (>= 0.1.0), python3-oslo.utils (>= 3.33.0), python3-oslo.versionedobjects (>= 1.31.2), python3-osprofiler (>= 1.5.0), python3-paramiko (>= 2.0), python3-pbr (>= 2.0.0), python3-pecan (>= 1.0.0), python3-psutil (>= 3.2.2), python3-pygments (>= 2.2.0), python3-pymysql (>= 0.6.2), python3-requests (>= 2.14.2), python3-retrying (>= 1.2.3), python3-rfc3986 (>= 0.3.1), python3-scciclient (>= 0.8.0), python3-sendfile (>= 2.0.0), python3-six (>= 1.10.0), python3-sqlalchemy (>= 1.0.10), python3-stevedore (>= 1:1.20.0), python3-swiftclient (>= 1:3.2.0), python3-tooz (>= 1.58.0), python3-tz (>= 2013.6), python3-webob (>= 1:1.7.1), python3-wsme (>= 0.9.3), python3.7:any, python3:any Section: net Priority: extra Description: Openstack bare metal provisioning service - Python 3 library Ironic is an Incubated OpenStack project which aims to provision bare metal machines instead of virtual machines, forked from the Nova Baremetal driver. It is best thought of as a bare metal hypervisor **API** and a set of plugins which interact with the bare metal hypervisors. By default, it will use PXE and IPMI in concert to provision and turn on/off machines, but Ironic also supports vendor-specific plugins which may implement additional functionality. . This package contains the Python 3 libraries. drwxr-xr-x root/root 0 2020-03-11 19:32 ./ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/bin/ -rwxr-xr-x root/root 155 2020-03-11 19:32 ./usr/bin/ironic-api -rwxr-xr-x root/root 1839 2020-03-11 19:32 ./usr/bin/ironic-api-wsgi -rwxr-xr-x root/root 161 2020-03-11 19:32 ./usr/bin/ironic-conductor -rwxr-xr-x root/root 158 2020-03-11 19:32 ./usr/bin/ironic-dbsync -rwxr-xr-x root/root 158 2020-03-11 19:32 ./usr/bin/ironic-rootwrap -rwxr-xr-x root/root 158 2020-03-11 19:32 ./usr/bin/ironic-status drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic-12.1.4.dev5.202003111929.disco.egg-info/ -rw-r--r-- root/root 2523 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic-12.1.4.dev5.202003111929.disco.egg-info/PKG-INFO -rw-r--r-- root/root 1 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic-12.1.4.dev5.202003111929.disco.egg-info/dependency_links.txt -rw-r--r-- root/root 5819 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic-12.1.4.dev5.202003111929.disco.egg-info/entry_points.txt -rw-r--r-- root/root 1 2020-03-11 19:31 ./usr/lib/python3/dist-packages/ironic-12.1.4.dev5.202003111929.disco.egg-info/not-zip-safe -rw-r--r-- root/root 49 2020-03-11 19:31 ./usr/lib/python3/dist-packages/ironic-12.1.4.dev5.202003111929.disco.egg-info/pbr.json -rw-r--r-- root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic-12.1.4.dev5.202003111929.disco.egg-info/requires.txt -rw-r--r-- root/root 7 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic-12.1.4.dev5.202003111929.disco.egg-info/top_level.txt drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/__init__.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/api/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/__init__.py -rw-r--r-- root/root 4814 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/app.py -rw-r--r-- root/root 763 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/app.wsgi -rw-r--r-- root/root 1353 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/config.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/api/controllers/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/__init__.py -rw-r--r-- root/root 4284 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/base.py -rw-r--r-- root/root 2030 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/link.py -rw-r--r-- root/root 2474 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/root.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/ -rw-r--r-- root/root 12277 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/__init__.py -rw-r--r-- root/root 19325 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/allocation.py -rw-r--r-- root/root 4649 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/bios.py -rw-r--r-- root/root 14668 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/chassis.py -rw-r--r-- root/root 2067 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/collection.py -rw-r--r-- root/root 9757 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/conductor.py -rw-r--r-- root/root 17664 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/deploy_template.py -rw-r--r-- root/root 17548 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/driver.py -rw-r--r-- root/root 1893 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/event.py -rw-r--r-- root/root 97821 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/node.py -rw-r--r-- root/root 7497 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/notification_utils.py -rw-r--r-- root/root 33643 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/port.py -rw-r--r-- root/root 26124 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/portgroup.py -rw-r--r-- root/root 7527 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/ramdisk.py -rw-r--r-- root/root 1083 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/state.py -rw-r--r-- root/root 15409 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/types.py -rw-r--r-- root/root 42279 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/utils.py -rw-r--r-- root/root 6837 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/versions.py -rw-r--r-- root/root 3524 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume.py -rw-r--r-- root/root 21508 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_connector.py -rw-r--r-- root/root 21323 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_target.py -rw-r--r-- root/root 2112 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/controllers/version.py -rw-r--r-- root/root 897 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/expose.py -rw-r--r-- root/root 6877 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/hooks.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/api/middleware/ -rw-r--r-- root/root 1001 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/middleware/__init__.py -rw-r--r-- root/root 2283 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/middleware/auth_token.py -rw-r--r-- root/root 1489 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/middleware/json_ext.py -rw-r--r-- root/root 4152 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/middleware/parsable_error.py -rw-r--r-- root/root 1267 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/api/wsgi.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/cmd/ -rw-r--r-- root/root 1137 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/cmd/__init__.py -rw-r--r-- root/root 1498 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/cmd/api.py -rw-r--r-- root/root 3159 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/cmd/conductor.py -rw-r--r-- root/root 15554 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/cmd/dbsync.py -rw-r--r-- root/root 2358 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/cmd/status.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/common/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/__init__.py -rw-r--r-- root/root 1334 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/boot_devices.py -rw-r--r-- root/root 1023 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/boot_modes.py -rw-r--r-- root/root 19590 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/cinder.py -rw-r--r-- root/root 1222 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/config.py -rw-r--r-- root/root 2582 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/context.py -rw-r--r-- root/root 3565 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/dhcp_factory.py -rw-r--r-- root/root 17591 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/driver_factory.py -rw-r--r-- root/root 25372 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/exception.py -rw-r--r-- root/root 1002 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/faults.py -rw-r--r-- root/root 6041 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/fsm.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/common/glance_service/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/glance_service/__init__.py -rw-r--r-- root/root 9204 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/glance_service/base_image_service.py -rw-r--r-- root/root 5340 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/glance_service/service_utils.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/common/glance_service/v2/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/glance_service/v2/__init__.py -rw-r--r-- root/root 10295 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/glance_service/v2/image_service.py -rw-r--r-- root/root 158 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/grub_conf.template -rw-r--r-- root/root 3824 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/hash_ring.py -rw-r--r-- root/root 900 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/i18n.py -rw-r--r-- root/root 10808 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/image_service.py -rw-r--r-- root/root 23922 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/images.py -rw-r--r-- root/root 101 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/isolinux_config.template drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/common/json_rpc/ -rw-r--r-- root/root 701 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/json_rpc/__init__.py -rw-r--r-- root/root 6505 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/json_rpc/client.py -rw-r--r-- root/root 9855 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/json_rpc/server.py -rw-r--r-- root/root 4500 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/keystone.py -rw-r--r-- root/root 5369 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/network.py -rw-r--r-- root/root 29808 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/neutron.py -rw-r--r-- root/root 22570 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/policy.py -rw-r--r-- root/root 2455 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/profiler.py -rw-r--r-- root/root 42123 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/pxe_utils.py -rw-r--r-- root/root 7210 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/raid.py -rw-r--r-- root/root 7814 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/release_mappings.py -rw-r--r-- root/root 5087 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/rpc.py -rw-r--r-- root/root 3535 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/rpc_service.py -rw-r--r-- root/root 1297 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/service.py -rw-r--r-- root/root 17145 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/states.py -rw-r--r-- root/root 8303 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/swift.py -rw-r--r-- root/root 18909 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/utils.py -rw-r--r-- root/root 2316 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/common/wsgi_service.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/conductor/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conductor/__init__.py -rw-r--r-- root/root 9341 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conductor/allocations.py -rw-r--r-- root/root 26091 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conductor/base_manager.py -rw-r--r-- root/root 197501 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conductor/manager.py -rw-r--r-- root/root 7492 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conductor/notification_utils.py -rw-r--r-- root/root 53038 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conductor/rpcapi.py -rw-r--r-- root/root 23743 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conductor/steps.py -rw-r--r-- root/root 22554 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conductor/task_manager.py -rw-r--r-- root/root 36145 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conductor/utils.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/conf/ -rw-r--r-- root/root 2509 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/__init__.py -rw-r--r-- root/root 6861 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/agent.py -rw-r--r-- root/root 7495 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/ansible.py -rw-r--r-- root/root 3229 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/api.py -rw-r--r-- root/root 1533 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/audit.py -rw-r--r-- root/root 2845 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/auth.py -rw-r--r-- root/root 2116 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/cinder.py -rw-r--r-- root/root 1771 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/cisco.py -rw-r--r-- root/root 11679 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/conductor.py -rw-r--r-- root/root 2567 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/console.py -rw-r--r-- root/root 928 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/database.py -rw-r--r-- root/root 17857 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/default.py -rw-r--r-- root/root 7576 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/deploy.py -rw-r--r-- root/root 985 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/dhcp.py -rw-r--r-- root/root 1054 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/drac.py -rw-r--r-- root/root 8192 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/glance.py -rw-r--r-- root/root 1118 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/healthcheck.py -rw-r--r-- root/root 1105 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/ibmc.py -rw-r--r-- root/root 4566 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/ilo.py -rw-r--r-- root/root 1767 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/inspector.py -rw-r--r-- root/root 2595 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/ipmi.py -rw-r--r-- root/root 5314 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/irmc.py -rw-r--r-- root/root 1329 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/iscsi.py -rw-r--r-- root/root 1645 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/json_rpc.py -rw-r--r-- root/root 2383 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/metrics.py -rw-r--r-- root/root 1250 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/metrics_statsd.py -rw-r--r-- root/root 6388 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/neutron.py -rw-r--r-- root/root 3571 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/opts.py -rw-r--r-- root/root 7464 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/pxe.py -rw-r--r-- root/root 2138 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/redfish.py -rw-r--r-- root/root 1182 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/service_catalog.py -rw-r--r-- root/root 1804 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/snmp.py -rw-r--r-- root/root 1179 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/swift.py -rw-r--r-- root/root 1880 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/conf/xclarity.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/db/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/__init__.py -rw-r--r-- root/root 47240 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/api.py -rw-r--r-- root/root 1560 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/migration.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/__init__.py -rw-r--r-- root/root 975 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic.ini drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/ -rw-r--r-- root/root 434 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/README -rw-r--r-- root/root 1971 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/env.py -rw-r--r-- root/root 349 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/script.py.mako drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/ -rw-r--r-- root/root 1192 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -rw-r--r-- root/root 2225 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -rw-r--r-- root/root 1040 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -rw-r--r-- root/root 973 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -rw-r--r-- root/root 1222 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -rw-r--r-- root/root 969 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -rw-r--r-- root/root 2060 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -rw-r--r-- root/root 1022 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -rw-r--r-- root/root 4331 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -rw-r--r-- root/root 971 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -rw-r--r-- root/root 2715 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -rw-r--r-- root/root 984 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -rw-r--r-- root/root 1088 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -rw-r--r-- root/root 1096 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -rw-r--r-- root/root 1020 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -rw-r--r-- root/root 1074 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -rw-r--r-- root/root 929 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -rw-r--r-- root/root 1022 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -rw-r--r-- root/root 1027 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -rw-r--r-- root/root 1208 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -rw-r--r-- root/root 1440 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -rw-r--r-- root/root 1314 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -rw-r--r-- root/root 950 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -rw-r--r-- root/root 1007 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -rw-r--r-- root/root 1523 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -rw-r--r-- root/root 2485 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -rw-r--r-- root/root 1005 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -rw-r--r-- root/root 1170 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -rw-r--r-- root/root 1084 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -rw-r--r-- root/root 1459 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -rw-r--r-- root/root 2044 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -rw-r--r-- root/root 1125 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -rw-r--r-- root/root 985 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -rw-r--r-- root/root 1530 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -rw-r--r-- root/root 999 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -rw-r--r-- root/root 1024 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -rw-r--r-- root/root 1929 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -rw-r--r-- root/root 1388 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -rw-r--r-- root/root 983 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -rw-r--r-- root/root 2057 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -rw-r--r-- root/root 1208 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -rw-r--r-- root/root 1009 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -rw-r--r-- root/root 2406 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -rw-r--r-- root/root 988 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -rw-r--r-- root/root 1081 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -rw-r--r-- root/root 988 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -rw-r--r-- root/root 1177 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -rw-r--r-- root/root 980 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -rw-r--r-- root/root 80388 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/api.py -rw-r--r-- root/root 3680 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/migration.py -rw-r--r-- root/root 15259 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/db/sqlalchemy/models.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/dhcp/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/dhcp/__init__.py -rw-r--r-- root/root 3525 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/dhcp/base.py -rw-r--r-- root/root 10037 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/dhcp/neutron.py -rw-r--r-- root/root 980 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/dhcp/none.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/__init__.py -rw-r--r-- root/root 59998 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/base.py -rw-r--r-- root/root 2300 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/cisco_ucs.py -rw-r--r-- root/root 2225 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/drac.py -rw-r--r-- root/root 3262 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/fake_hardware.py -rw-r--r-- root/root 4156 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/generic.py -rw-r--r-- root/root 4264 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/hardware_type.py -rw-r--r-- root/root 1452 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/ibmc.py -rw-r--r-- root/root 2767 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/ilo.py -rw-r--r-- root/root 1689 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/ipmi.py -rw-r--r-- root/root 2834 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/irmc.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/__init__.py -rw-r--r-- root/root 43750 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/agent.py -rw-r--r-- root/root 36569 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/agent_base_vendor.py -rw-r--r-- root/root 17555 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/agent_client.py -rw-r--r-- root/root 480 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/agent_config.template drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/__init__.py -rw-r--r-- root/root 27218 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/deploy.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/ -rw-r--r-- root/root 312 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -rw-r--r-- root/root 1631 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/ansible.cfg drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins/ -rw-r--r-- root/root 361 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -rw-r--r-- root/root 5552 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -rw-r--r-- root/root 83 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/clean.yaml -rw-r--r-- root/root 413 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -rw-r--r-- root/root 192 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/deploy.yaml -rw-r--r-- root/root 35 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/inventory drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/ -rw-r--r-- root/root 2351 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -rw-r--r-- root/root 3251 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/root_hints.py -rw-r--r-- root/root 4041 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/stream_url.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/ -rw-r--r-- root/root 22 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/ -rw-r--r-- root/root 90 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -rw-r--r-- root/root 177 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -rw-r--r-- root/root 933 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -rw-r--r-- root/root 604 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/ -rw-r--r-- root/root 74 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/ -rw-r--r-- root/root 2472 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -rw-r--r-- root/root 196 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -rw-r--r-- root/root 215 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/ -rwxr-xr-x root/root 4116 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/ -rw-r--r-- root/root 1598 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -rw-r--r-- root/root 487 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -rw-r--r-- root/root 172 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -rw-r--r-- root/root 575 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/ -rw-r--r-- root/root 343 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -rw-r--r-- root/root 297 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/ -rw-r--r-- root/root 99 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -rw-r--r-- root/root 1870 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/ -rw-r--r-- root/root 109 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -rw-r--r-- root/root 86 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/shutdown.yaml -rw-r--r-- root/root 777 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/boot.ipxe -rw-r--r-- root/root 11765 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/boot_mode_utils.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/__init__.py -rw-r--r-- root/root 2709 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/common.py -rw-r--r-- root/root 6266 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/management.py -rw-r--r-- root/root 7659 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/power.py -rw-r--r-- root/root 15233 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/console_utils.py -rw-r--r-- root/root 59648 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/deploy_utils.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/drac/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/drac/__init__.py -rw-r--r-- root/root 7035 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/drac/bios.py -rw-r--r-- root/root 4382 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/drac/common.py -rw-r--r-- root/root 8856 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/drac/inspect.py -rw-r--r-- root/root 2830 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/drac/job.py -rw-r--r-- root/root 14600 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/drac/management.py -rw-r--r-- root/root 7581 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/drac/power.py -rw-r--r-- root/root 35821 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/drac/raid.py -rw-r--r-- root/root 7548 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/drac/vendor_passthru.py -rw-r--r-- root/root 776 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/elilo_efi_pxe_config.template -rw-r--r-- root/root 10691 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/fake.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/__init__.py -rw-r--r-- root/root 9938 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/management.py -rw-r--r-- root/root 2469 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/mappings.py -rw-r--r-- root/root 5931 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/power.py -rw-r--r-- root/root 6934 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/utils.py -rw-r--r-- root/root 3248 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/vendor.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/__init__.py -rw-r--r-- root/root 9644 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/bios.py -rw-r--r-- root/root 32139 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/boot.py -rw-r--r-- root/root 33565 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/common.py -rw-r--r-- root/root 1882 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/console.py -rw-r--r-- root/root 19269 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/firmware_processor.py -rw-r--r-- root/root 12149 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/inspect.py -rw-r--r-- root/root 26903 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/management.py -rw-r--r-- root/root 15537 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/power.py -rw-r--r-- root/root 10028 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/raid.py -rw-r--r-- root/root 4406 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/vendor.py -rw-r--r-- root/root 18894 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/image_cache.py -rw-r--r-- root/root 2053 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/inspect_utils.py -rw-r--r-- root/root 7646 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/inspector.py -rw-r--r-- root/root 59637 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ipmitool.py -rw-r--r-- root/root 13428 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ipxe.py -rw-r--r-- root/root 2800 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ipxe_config.template drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/__init__.py -rw-r--r-- root/root 6303 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/bios.py -rw-r--r-- root/root 47219 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/boot.py -rw-r--r-- root/root 8869 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/common.py -rw-r--r-- root/root 11178 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/inspect.py -rw-r--r-- root/root 14844 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/management.py -rw-r--r-- root/root 12036 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/power.py -rw-r--r-- root/root 20756 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/raid.py -rw-r--r-- root/root 26111 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/iscsi_deploy.py -rw-r--r-- root/root 132 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/master_grub_cfg.txt drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/network/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/network/__init__.py -rw-r--r-- root/root 24960 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/network/common.py -rw-r--r-- root/root 7138 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/network/flat.py -rw-r--r-- root/root 11157 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/network/neutron.py -rw-r--r-- root/root 3791 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/network/noop.py -rw-r--r-- root/root 2637 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/noop.py -rw-r--r-- root/root 2090 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/noop_mgmt.py -rw-r--r-- root/root 17092 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/pxe.py -rw-r--r-- root/root 4419 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/pxe_base.py -rw-r--r-- root/root 954 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/pxe_config.template -rw-r--r-- root/root 932 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/pxe_grub_config.template drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/__init__.py -rw-r--r-- root/root 13804 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/bios.py -rw-r--r-- root/root 9641 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/inspect.py -rw-r--r-- root/root 9876 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/management.py -rw-r--r-- root/root 6498 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/power.py -rw-r--r-- root/root 11797 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/utils.py -rw-r--r-- root/root 42384 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/snmp.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/storage/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/storage/__init__.py -rw-r--r-- root/root 20481 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/storage/cinder.py -rw-r--r-- root/root 2525 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/storage/external.py -rw-r--r-- root/root 938 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/storage/noop.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/__init__.py -rw-r--r-- root/root 4381 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/helper.py -rw-r--r-- root/root 5797 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/management.py -rw-r--r-- root/root 9230 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/power.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/__init__.py -rw-r--r-- root/root 6887 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/common.py -rw-r--r-- root/root 9839 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/management.py -rw-r--r-- root/root 5220 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/power.py -rw-r--r-- root/root 4067 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/raid_config_schema.json -rw-r--r-- root/root 1788 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/redfish.py -rw-r--r-- root/root 1192 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/snmp.py -rw-r--r-- root/root 12914 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/utils.py -rw-r--r-- root/root 1196 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/drivers/xclarity.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/hacking/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/hacking/__init__.py -rw-r--r-- root/root 1979 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/hacking/checks.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/objects/ -rw-r--r-- root/root 1647 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/__init__.py -rw-r--r-- root/root 13371 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/allocation.py -rw-r--r-- root/root 18804 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/base.py -rw-r--r-- root/root 11522 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/bios.py -rw-r--r-- root/root 10359 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/chassis.py -rw-r--r-- root/root 8373 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/conductor.py -rw-r--r-- root/root 13127 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/deploy_template.py -rw-r--r-- root/root 4306 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/fields.py -rw-r--r-- root/root 2078 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/indirection.py -rw-r--r-- root/root 43218 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/node.py -rw-r--r-- root/root 7703 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/notification.py -rw-r--r-- root/root 21115 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/port.py -rw-r--r-- root/root 18033 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/portgroup.py -rw-r--r-- root/root 8119 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/trait.py -rw-r--r-- root/root 13116 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/volume_connector.py -rw-r--r-- root/root 14316 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/objects/volume_target.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/releasenotes/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/releasenotes/notes/ -rw-r--r-- root/root 755 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/releasenotes/notes/add-protection-for-available-nodes-25f163d69782ef63.yaml drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/__init__.py -rw-r--r-- root/root 9532 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/base.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/functional/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/functional/__init__.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/ -rw-r--r-- root/root 1573 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/__init__.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/__init__.py -rw-r--r-- root/root 10456 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/base.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/__init__.py -rw-r--r-- root/root 5322 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/test_base.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/__init__.py -rw-r--r-- root/root 36193 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_allocation.py -rw-r--r-- root/root 30483 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_chassis.py -rw-r--r-- root/root 10726 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_conductor.py -rw-r--r-- root/root 43713 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_deploy_template.py -rw-r--r-- root/root 24198 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_driver.py -rw-r--r-- root/root 9213 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_event.py -rw-r--r-- root/root 2963 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_expose.py -rw-r--r-- root/root 294090 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_node.py -rw-r--r-- root/root 10401 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_notification_utils.py -rw-r--r-- root/root 122430 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_port.py -rw-r--r-- root/root 79622 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_portgroup.py -rw-r--r-- root/root 11727 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_ramdisk.py -rw-r--r-- root/root 2476 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_root.py -rw-r--r-- root/root 17898 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_types.py -rw-r--r-- root/root 37153 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_utils.py -rw-r--r-- root/root 3618 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_versions.py -rw-r--r-- root/root 2196 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume.py -rw-r--r-- root/root 48386 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_connector.py -rw-r--r-- root/root 46259 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_target.py -rw-r--r-- root/root 4195 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/test_acl.py -rw-r--r-- root/root 1985 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/test_audit.py -rw-r--r-- root/root 1395 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/test_healthcheck.py -rw-r--r-- root/root 11219 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/test_hooks.py -rw-r--r-- root/root 4418 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/test_middleware.py -rw-r--r-- root/root 1463 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/test_ospmiddleware.py -rw-r--r-- root/root 4512 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/test_root.py -rw-r--r-- root/root 7833 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/api/utils.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/cmd/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/cmd/__init__.py -rw-r--r-- root/root 2687 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_conductor.py -rw-r--r-- root/root 13648 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_dbsync.py -rw-r--r-- root/root 1446 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_status.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/__init__.py -rw-r--r-- root/root 37386 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_cinder.py -rw-r--r-- root/root 3118 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_context.py -rw-r--r-- root/root 25760 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_driver_factory.py -rw-r--r-- root/root 3100 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_exception.py -rw-r--r-- root/root 3719 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_fsm.py -rw-r--r-- root/root 42489 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_glance_service.py -rw-r--r-- root/root 5380 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_hash_ring.py -rw-r--r-- root/root 15096 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_image_service.py -rw-r--r-- root/root 46646 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_images.py -rw-r--r-- root/root 22576 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_json_rpc.py -rw-r--r-- root/root 3815 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_keystone.py -rw-r--r-- root/root 16858 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_network.py -rw-r--r-- root/root 55662 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_neutron.py -rw-r--r-- root/root 5937 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_policy.py -rw-r--r-- root/root 84550 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_pxe_utils.py -rw-r--r-- root/root 13585 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_raid.py -rw-r--r-- root/root 8022 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_release_mappings.py -rw-r--r-- root/root 9053 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc.py -rw-r--r-- root/root 2255 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc_service.py -rw-r--r-- root/root 1461 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_states.py -rw-r--r-- root/root 8202 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_swift.py -rw-r--r-- root/root 25897 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_utils.py -rw-r--r-- root/root 3002 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/common/test_wsgi_service.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/__init__.py -rw-r--r-- root/root 5749 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/mgr_utils.py -rw-r--r-- root/root 20815 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_allocations.py -rw-r--r-- root/root 21435 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_base_manager.py -rw-r--r-- root/root 455338 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_manager.py -rw-r--r-- root/root 9639 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_notification_utils.py -rw-r--r-- root/root 24884 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_rpcapi.py -rw-r--r-- root/root 36493 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_steps.py -rw-r--r-- root/root 47945 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_task_manager.py -rw-r--r-- root/root 91066 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_utils.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/conf/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conf/__init__.py -rw-r--r-- root/root 2309 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/conf/test_auth.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/__init__.py -rw-r--r-- root/root 2239 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/base.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/__init__.py -rw-r--r-- root/root 1448 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_api.py -rw-r--r-- root/root 47528 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_migrations.py -rw-r--r-- root/root 1143 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_models.py -rw-r--r-- root/root 3385 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_types.py -rw-r--r-- root/root 12662 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_allocations.py -rw-r--r-- root/root 10049 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_api.py -rw-r--r-- root/root 6277 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_bios_settings.py -rw-r--r-- root/root 3335 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_chassis.py -rw-r--r-- root/root 17262 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_conductor.py -rw-r--r-- root/root 9340 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_deploy_templates.py -rw-r--r-- root/root 4702 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_tags.py -rw-r--r-- root/root 7579 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_traits.py -rw-r--r-- root/root 37263 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_nodes.py -rw-r--r-- root/root 9199 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_portgroups.py -rw-r--r-- root/root 5442 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_ports.py -rw-r--r-- root/root 6721 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_volume_connectors.py -rw-r--r-- root/root 7546 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/test_volume_targets.py -rw-r--r-- root/root 22740 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/db/utils.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/__init__.py -rw-r--r-- root/root 4039 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_factory.py -rw-r--r-- root/root 19630 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_neutron.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/ -rw-r--r-- root/root 1001 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/__init__.py -rw-r--r-- root/root 759 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/boot.ipxe -rw-r--r-- root/root 643 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/elilo_efi_pxe_config.template -rw-r--r-- root/root 996 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/ipxe_config.template -rw-r--r-- root/root 1522 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -rw-r--r-- root/root 1333 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -rw-r--r-- root/root 1080 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/ipxe_config_timeout.template drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/__init__.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/__init__.py -rw-r--r-- root/root 54652 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/test_deploy.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/__init__.py -rw-r--r-- root/root 5225 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_common.py -rw-r--r-- root/root 5674 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_management.py -rw-r--r-- root/root 15948 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_power.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/__init__.py -rw-r--r-- root/root 6693 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_bios.py -rw-r--r-- root/root 5425 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_common.py -rw-r--r-- root/root 17676 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_inspect.py -rw-r--r-- root/root 6173 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_job.py -rw-r--r-- root/root 25212 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_management.py -rw-r--r-- root/root 14476 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -rw-r--r-- root/root 6473 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_power.py -rw-r--r-- root/root 61348 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_raid.py -rw-r--r-- root/root 3239 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/utils.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/__init__.py -rw-r--r-- root/root 1656 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/base.py -rw-r--r-- root/root 12188 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_management.py -rw-r--r-- root/root 12074 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_power.py -rw-r--r-- root/root 7127 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_utils.py -rw-r--r-- root/root 2412 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ibmc/test_vendor.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/__init__.py -rw-r--r-- root/root 23397 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_bios.py -rw-r--r-- root/root 72994 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_boot.py -rw-r--r-- root/root 54694 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_common.py -rw-r--r-- root/root 2522 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_console.py -rw-r--r-- root/root 28681 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -rw-r--r-- root/root 25179 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_inspect.py -rw-r--r-- root/root 46429 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_management.py -rw-r--r-- root/root 23165 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_power.py -rw-r--r-- root/root 17920 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_raid.py -rw-r--r-- root/root 4539 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_vendor.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/__init__.py -rw-r--r-- root/root 4271 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -rw-r--r-- root/root 4241 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -rw-r--r-- root/root 6545 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_bios.py -rw-r--r-- root/root 88149 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_boot.py -rw-r--r-- root/root 11208 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_common.py -rw-r--r-- root/root 31193 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_inspect.py -rw-r--r-- root/root 22156 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_management.py -rw-r--r-- root/root 14573 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -rw-r--r-- root/root 19084 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_power.py -rw-r--r-- root/root 32538 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_raid.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/__init__.py -rw-r--r-- root/root 67905 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_common.py -rw-r--r-- root/root 13884 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_flat.py -rw-r--r-- root/root 39930 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_neutron.py -rw-r--r-- root/root 3650 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_noop.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/__init__.py -rw-r--r-- root/root 16224 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_bios.py -rw-r--r-- root/root 9669 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_inspect.py -rw-r--r-- root/root 11466 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_management.py -rw-r--r-- root/root 10567 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_power.py -rw-r--r-- root/root 14516 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_utils.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/__init__.py -rw-r--r-- root/root 27837 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_cinder.py -rw-r--r-- root/root 2995 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_external.py -rw-r--r-- root/root 115047 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent.py -rw-r--r-- root/root 91656 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent_base_vendor.py -rw-r--r-- root/root 17459 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent_client.py -rw-r--r-- root/root 2404 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -rw-r--r-- root/root 30530 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_console_utils.py -rw-r--r-- root/root 121737 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_deploy_utils.py -rw-r--r-- root/root 35925 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_image_cache.py -rw-r--r-- root/root 4268 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_inspect_utils.py -rw-r--r-- root/root 8314 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_inspector.py -rw-r--r-- root/root 129872 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_ipmitool.py -rw-r--r-- root/root 44483 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_ipxe.py -rw-r--r-- root/root 66538 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_iscsi_deploy.py -rw-r--r-- root/root 3046 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_noop.py -rw-r--r-- root/root 1518 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_noop_mgmt.py -rw-r--r-- root/root 57865 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_pxe.py -rw-r--r-- root/root 87124 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_snmp.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/__init__.py -rw-r--r-- root/root 7265 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/test_helper.py -rw-r--r-- root/root 5681 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/test_management.py -rw-r--r-- root/root 17563 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/test_power.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/__init__.py -rw-r--r-- root/root 5128 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_common.py -rw-r--r-- root/root 6960 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_management.py -rw-r--r-- root/root 6749 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_power.py -rw-r--r-- root/root 958 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/pxe_config.template -rw-r--r-- root/root 885 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/pxe_grub_config.template -rw-r--r-- root/root 30108 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_base.py -rw-r--r-- root/root 6589 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_cisco.py -rw-r--r-- root/root 4792 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_drac.py -rw-r--r-- root/root 5072 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_fake_hardware.py -rw-r--r-- root/root 4246 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_generic.py -rw-r--r-- root/root 2135 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ibmc.py -rw-r--r-- root/root 10409 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ilo.py -rw-r--r-- root/root 4936 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_ipmi.py -rw-r--r-- root/root 9658 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_irmc.py -rw-r--r-- root/root 2353 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_redfish.py -rw-r--r-- root/root 2569 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_snmp.py -rw-r--r-- root/root 17305 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_utils.py -rw-r--r-- root/root 2036 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_xclarity.py -rw-r--r-- root/root 3579 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/third_party_driver_mock_specs.py -rw-r--r-- root/root 13074 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/drivers/third_party_driver_mocks.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/ -rw-r--r-- root/root 0 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/__init__.py -rw-r--r-- root/root 6497 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_allocation.py -rw-r--r-- root/root 10444 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_bios.py -rw-r--r-- root/root 6011 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_chassis.py -rw-r--r-- root/root 9035 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_conductor.py -rw-r--r-- root/root 6857 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_deploy_template.py -rw-r--r-- root/root 5020 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_fields.py -rw-r--r-- root/root 47068 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_node.py -rw-r--r-- root/root 12030 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_notification.py -rw-r--r-- root/root 41457 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_objects.py -rw-r--r-- root/root 16247 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_port.py -rw-r--r-- root/root 11304 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_portgroup.py -rw-r--r-- root/root 4846 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_trait.py -rw-r--r-- root/root 9684 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_connector.py -rw-r--r-- root/root 10034 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_target.py -rw-r--r-- root/root 12721 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/objects/utils.py -rw-r--r-- root/root 1666 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/policy_fixture.py -rw-r--r-- root/root 6004 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/raid_constants.py -rw-r--r-- root/root 2475 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/stubs.py -rw-r--r-- root/root 3573 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/tests/unit/test_base.py -rw-r--r-- root/root 705 2020-03-11 19:29 ./usr/lib/python3/dist-packages/ironic/version.py drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/doc/ drwxr-xr-x root/root 0 2020-03-11 19:32 ./usr/share/doc/python3-ironic/ -rw-r--r-- root/root 4716 2020-03-11 19:32 ./usr/share/doc/python3-ironic/changelog.Debian.gz -rw-r--r-- root/root 1667 2020-03-11 19:32 ./usr/share/doc/python3-ironic/copyright +------------------------------------------------------------------------------+ | Post Build | +------------------------------------------------------------------------------+ +------------------------------------------------------------------------------+ | Cleanup | +------------------------------------------------------------------------------+ Purging /<> Not removing build depends: as requested +------------------------------------------------------------------------------+ | Summary | +------------------------------------------------------------------------------+ Build Architecture: amd64 Build-Space: 49192 Build-Time: 211 Distribution: disco Host Architecture: amd64 Install-Time: 87 Job: ironic_12.1.4.dev5.202003111929.disco-0ubuntu1.dsc Machine Architecture: amd64 Package: ironic Package-Time: 298 Source-Version: 1:12.1.4.dev5.202003111929.disco-0ubuntu1 Space: 49192 Status: successful Version: 1:12.1.4.dev5.202003111929.disco-0ubuntu1 -------------------------------------------------------------------------------- Finished at 20200311-1948 Build needed 00:04:58, 49192k disc space RUN: /usr/share/launchpad-buildd/bin/in-target scan-for-processes --backend=chroot --series=disco --arch=amd64 PACKAGEBUILD-18828275 Scanning for processes to kill in build PACKAGEBUILD-18828275