Diff of the two buildlogs:

--
--- b1/build.log	2023-05-03 01:24:39.496773054 +0000
+++ b2/build.log	2023-05-03 01:53:57.311591910 +0000
@@ -1,6 +1,6 @@
 I: pbuilder: network access will be disabled during build
-I: Current time: Tue May  2 13:11:44 -12 2023
-I: pbuilder-time-stamp: 1683076304
+I: Current time: Tue Jun  4 21:47:43 +14 2024
+I: pbuilder-time-stamp: 1717487263
 I: Building the build Environment
 I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz]
 I: copying local configuration
@@ -16,7 +16,7 @@
 I: copying [./ironic-inspector_11.1.0.orig.tar.xz]
 I: copying [./ironic-inspector_11.1.0-2.debian.tar.xz]
 I: Extracting source
-gpgv: Signature made Tue Jan 10 01:53:23 2023 -12
+gpgv: Signature made Wed Jan 11 03:53:23 2023 +14
 gpgv:                using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE
 gpgv: Can't check signature: No public key
 dpkg-source: warning: cannot verify inline signature for ./ironic-inspector_11.1.0-2.dsc: no acceptable signature found
@@ -29,135 +29,167 @@
 dpkg-source: info: applying Rename-NodeInfo._lock-to-avoid-conflict-with-Mock._lock-in-tests.patch
 I: using fakeroot in build.
 I: Installing the build-deps
-I: user script /srv/workspace/pbuilder/2935949/tmp/hooks/D02_print_environment starting
+I: user script /srv/workspace/pbuilder/1751295/tmp/hooks/D01_modify_environment starting
+debug: Running on ionos15-amd64.
+I: Changing host+domainname to test build reproducibility
+I: Adding a custom variable just for the fun of it...
+I: Changing /bin/sh to bash
+'/bin/sh' -> '/bin/bash'
+lrwxrwxrwx 1 root root 9 Jun  4 21:47 /bin/sh -> /bin/bash
+I: Setting pbuilder2's login shell to /bin/bash
+I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other
+I: user script /srv/workspace/pbuilder/1751295/tmp/hooks/D01_modify_environment finished
+I: user script /srv/workspace/pbuilder/1751295/tmp/hooks/D02_print_environment starting
 I: set
-  BUILDDIR='/build'
-  BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other'
-  BUILDUSERNAME='pbuilder1'
-  BUILD_ARCH='amd64'
-  DEBIAN_FRONTEND='noninteractive'
-  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=15'
-  DISTRIBUTION='bookworm'
-  HOME='/root'
-  HOST_ARCH='amd64'
+  BASH=/bin/sh
+  BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath
+  BASH_ALIASES=()
+  BASH_ARGC=()
+  BASH_ARGV=()
+  BASH_CMDS=()
+  BASH_LINENO=([0]="12" [1]="0")
+  BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.
+  BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment")
+  BASH_VERSINFO=([0]="5" [1]="2" [2]="15" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
+  BASH_VERSION='5.2.15(1)-release'
+  BUILDDIR=/build
+  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
+  BUILDUSERNAME=pbuilder2
+  BUILD_ARCH=amd64
+  DEBIAN_FRONTEND=noninteractive
+  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=16'
+  DIRSTACK=()
+  DISTRIBUTION=bookworm
+  EUID=0
+  FUNCNAME=([0]="Echo" [1]="main")
+  GROUPS=()
+  HOME=/root
+  HOSTNAME=i-capture-the-hostname
+  HOSTTYPE=x86_64
+  HOST_ARCH=amd64
   IFS=' 	
   '
-  INVOCATION_ID='596ca381d43440249cc2e7486df7f74b'
-  LANG='C'
-  LANGUAGE='en_US:en'
-  LC_ALL='C'
-  MAIL='/var/mail/root'
-  OPTIND='1'
-  PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
-  PBCURRENTCOMMANDLINEOPERATION='build'
-  PBUILDER_OPERATION='build'
-  PBUILDER_PKGDATADIR='/usr/share/pbuilder'
-  PBUILDER_PKGLIBDIR='/usr/lib/pbuilder'
-  PBUILDER_SYSCONFDIR='/etc'
-  PPID='2935949'
-  PS1='# '
-  PS2='> '
+  INVOCATION_ID=df71e85433be467692c6e05228406525
+  LANG=C
+  LANGUAGE=et_EE:et
+  LC_ALL=C
+  MACHTYPE=x86_64-pc-linux-gnu
+  MAIL=/var/mail/root
+  OPTERR=1
+  OPTIND=1
+  OSTYPE=linux-gnu
+  PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path
+  PBCURRENTCOMMANDLINEOPERATION=build
+  PBUILDER_OPERATION=build
+  PBUILDER_PKGDATADIR=/usr/share/pbuilder
+  PBUILDER_PKGLIBDIR=/usr/lib/pbuilder
+  PBUILDER_SYSCONFDIR=/etc
+  PIPESTATUS=([0]="0")
+  POSIXLY_CORRECT=y
+  PPID=1751295
   PS4='+ '
-  PWD='/'
-  SHELL='/bin/bash'
-  SHLVL='2'
-  SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.kxg3F6IS/pbuilderrc_bxWR --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.kxg3F6IS/b1 --logfile b1/build.log ironic-inspector_11.1.0-2.dsc'
-  SUDO_GID='111'
-  SUDO_UID='106'
-  SUDO_USER='jenkins'
-  TERM='unknown'
-  TZ='/usr/share/zoneinfo/Etc/GMT+12'
-  USER='root'
-  _='/usr/bin/systemd-run'
-  http_proxy='http://78.137.99.97:3128'
+  PWD=/
+  SHELL=/bin/bash
+  SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix
+  SHLVL=3
+  SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.kxg3F6IS/pbuilderrc_hpr0 --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.kxg3F6IS/b2 --logfile b2/build.log --extrapackages usrmerge ironic-inspector_11.1.0-2.dsc'
+  SUDO_GID=111
+  SUDO_UID=106
+  SUDO_USER=jenkins
+  TERM=unknown
+  TZ=/usr/share/zoneinfo/Etc/GMT-14
+  UID=0
+  USER=root
+  _='I: set'
+  http_proxy=http://85.184.249.68:3128
 I: uname -a
-  Linux ionos11-amd64 5.10.0-22-amd64 #1 SMP Debian 5.10.178-3 (2023-04-22) x86_64 GNU/Linux
+  Linux i-capture-the-hostname 6.1.0-0.deb11.6-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.15-1~bpo11+1 (2023-03-16) x86_64 GNU/Linux
 I: ls -l /bin
   total 5632
-  -rwxr-xr-x 1 root root 1265648 Apr 23 09:23 bash
-  -rwxr-xr-x 3 root root   39224 Sep 18  2022 bunzip2
-  -rwxr-xr-x 3 root root   39224 Sep 18  2022 bzcat
-  lrwxrwxrwx 1 root root       6 Sep 18  2022 bzcmp -> bzdiff
-  -rwxr-xr-x 1 root root    2225 Sep 18  2022 bzdiff
-  lrwxrwxrwx 1 root root       6 Sep 18  2022 bzegrep -> bzgrep
-  -rwxr-xr-x 1 root root    4893 Nov 27  2021 bzexe
-  lrwxrwxrwx 1 root root       6 Sep 18  2022 bzfgrep -> bzgrep
-  -rwxr-xr-x 1 root root    3775 Sep 18  2022 bzgrep
-  -rwxr-xr-x 3 root root   39224 Sep 18  2022 bzip2
-  -rwxr-xr-x 1 root root   14568 Sep 18  2022 bzip2recover
-  lrwxrwxrwx 1 root root       6 Sep 18  2022 bzless -> bzmore
-  -rwxr-xr-x 1 root root    1297 Sep 18  2022 bzmore
-  -rwxr-xr-x 1 root root   44016 Sep 20  2022 cat
-  -rwxr-xr-x 1 root root   68656 Sep 20  2022 chgrp
-  -rwxr-xr-x 1 root root   64496 Sep 20  2022 chmod
-  -rwxr-xr-x 1 root root   72752 Sep 20  2022 chown
-  -rwxr-xr-x 1 root root  151152 Sep 20  2022 cp
-  -rwxr-xr-x 1 root root  125640 Jan  5 01:20 dash
-  -rwxr-xr-x 1 root root  121904 Sep 20  2022 date
-  -rwxr-xr-x 1 root root   89240 Sep 20  2022 dd
-  -rwxr-xr-x 1 root root  102200 Sep 20  2022 df
-  -rwxr-xr-x 1 root root  151344 Sep 20  2022 dir
-  -rwxr-xr-x 1 root root   88656 Mar 22 22:02 dmesg
-  lrwxrwxrwx 1 root root       8 Dec 19 01:33 dnsdomainname -> hostname
-  lrwxrwxrwx 1 root root       8 Dec 19 01:33 domainname -> hostname
-  -rwxr-xr-x 1 root root   43856 Sep 20  2022 echo
-  -rwxr-xr-x 1 root root      41 Jan 24 02:43 egrep
-  -rwxr-xr-x 1 root root   35664 Sep 20  2022 false
-  -rwxr-xr-x 1 root root      41 Jan 24 02:43 fgrep
-  -rwxr-xr-x 1 root root   85600 Mar 22 22:02 findmnt
-  -rwsr-xr-x 1 root root   35128 Mar 22 20:35 fusermount
-  -rwxr-xr-x 1 root root  203152 Jan 24 02:43 grep
-  -rwxr-xr-x 2 root root    2346 Apr  9  2022 gunzip
-  -rwxr-xr-x 1 root root    6447 Apr  9  2022 gzexe
-  -rwxr-xr-x 1 root root   98136 Apr  9  2022 gzip
-  -rwxr-xr-x 1 root root   22680 Dec 19 01:33 hostname
-  -rwxr-xr-x 1 root root   72824 Sep 20  2022 ln
-  -rwxr-xr-x 1 root root   53024 Mar 23 00:40 login
-  -rwxr-xr-x 1 root root  151344 Sep 20  2022 ls
-  -rwxr-xr-x 1 root root  207168 Mar 22 22:02 lsblk
-  -rwxr-xr-x 1 root root   97552 Sep 20  2022 mkdir
-  -rwxr-xr-x 1 root root   72912 Sep 20  2022 mknod
-  -rwxr-xr-x 1 root root   43952 Sep 20  2022 mktemp
-  -rwxr-xr-x 1 root root   59712 Mar 22 22:02 more
-  -rwsr-xr-x 1 root root   59704 Mar 22 22:02 mount
-  -rwxr-xr-x 1 root root   18744 Mar 22 22:02 mountpoint
-  -rwxr-xr-x 1 root root  142968 Sep 20  2022 mv
-  lrwxrwxrwx 1 root root       8 Dec 19 01:33 nisdomainname -> hostname
-  lrwxrwxrwx 1 root root      14 Apr  2 18:25 pidof -> /sbin/killall5
-  -rwxr-xr-x 1 root root   43952 Sep 20  2022 pwd
-  lrwxrwxrwx 1 root root       4 Apr 23 09:23 rbash -> bash
-  -rwxr-xr-x 1 root root   52112 Sep 20  2022 readlink
-  -rwxr-xr-x 1 root root   72752 Sep 20  2022 rm
-  -rwxr-xr-x 1 root root   56240 Sep 20  2022 rmdir
-  -rwxr-xr-x 1 root root   27560 Nov  2 04:31 run-parts
-  -rwxr-xr-x 1 root root  126424 Jan  5 07:55 sed
-  lrwxrwxrwx 1 root root       4 Jan  5 01:20 sh -> dash
-  -rwxr-xr-x 1 root root   43888 Sep 20  2022 sleep
-  -rwxr-xr-x 1 root root   85008 Sep 20  2022 stty
-  -rwsr-xr-x 1 root root   72000 Mar 22 22:02 su
-  -rwxr-xr-x 1 root root   39824 Sep 20  2022 sync
-  -rwxr-xr-x 1 root root  531984 Apr  6 02:25 tar
-  -rwxr-xr-x 1 root root   14520 Nov  2 04:31 tempfile
-  -rwxr-xr-x 1 root root  109616 Sep 20  2022 touch
-  -rwxr-xr-x 1 root root   35664 Sep 20  2022 true
-  -rwxr-xr-x 1 root root   14568 Mar 22 20:35 ulockmgr_server
-  -rwsr-xr-x 1 root root   35128 Mar 22 22:02 umount
-  -rwxr-xr-x 1 root root   43888 Sep 20  2022 uname
-  -rwxr-xr-x 2 root root    2346 Apr  9  2022 uncompress
-  -rwxr-xr-x 1 root root  151344 Sep 20  2022 vdir
-  -rwxr-xr-x 1 root root   72024 Mar 22 22:02 wdctl
-  lrwxrwxrwx 1 root root       8 Dec 19 01:33 ypdomainname -> hostname
-  -rwxr-xr-x 1 root root    1984 Apr  9  2022 zcat
-  -rwxr-xr-x 1 root root    1678 Apr  9  2022 zcmp
-  -rwxr-xr-x 1 root root    6460 Apr  9  2022 zdiff
-  -rwxr-xr-x 1 root root      29 Apr  9  2022 zegrep
-  -rwxr-xr-x 1 root root      29 Apr  9  2022 zfgrep
-  -rwxr-xr-x 1 root root    2081 Apr  9  2022 zforce
-  -rwxr-xr-x 1 root root    8103 Apr  9  2022 zgrep
-  -rwxr-xr-x 1 root root    2206 Apr  9  2022 zless
-  -rwxr-xr-x 1 root root    1842 Apr  9  2022 zmore
-  -rwxr-xr-x 1 root root    4577 Apr  9  2022 znew
-I: user script /srv/workspace/pbuilder/2935949/tmp/hooks/D02_print_environment finished
+  -rwxr-xr-x 1 root root 1265648 Apr 24  2023 bash
+  -rwxr-xr-x 3 root root   39224 Sep 19  2022 bunzip2
+  -rwxr-xr-x 3 root root   39224 Sep 19  2022 bzcat
+  lrwxrwxrwx 1 root root       6 Sep 19  2022 bzcmp -> bzdiff
+  -rwxr-xr-x 1 root root    2225 Sep 19  2022 bzdiff
+  lrwxrwxrwx 1 root root       6 Sep 19  2022 bzegrep -> bzgrep
+  -rwxr-xr-x 1 root root    4893 Nov 28  2021 bzexe
+  lrwxrwxrwx 1 root root       6 Sep 19  2022 bzfgrep -> bzgrep
+  -rwxr-xr-x 1 root root    3775 Sep 19  2022 bzgrep
+  -rwxr-xr-x 3 root root   39224 Sep 19  2022 bzip2
+  -rwxr-xr-x 1 root root   14568 Sep 19  2022 bzip2recover
+  lrwxrwxrwx 1 root root       6 Sep 19  2022 bzless -> bzmore
+  -rwxr-xr-x 1 root root    1297 Sep 19  2022 bzmore
+  -rwxr-xr-x 1 root root   44016 Sep 21  2022 cat
+  -rwxr-xr-x 1 root root   68656 Sep 21  2022 chgrp
+  -rwxr-xr-x 1 root root   64496 Sep 21  2022 chmod
+  -rwxr-xr-x 1 root root   72752 Sep 21  2022 chown
+  -rwxr-xr-x 1 root root  151152 Sep 21  2022 cp
+  -rwxr-xr-x 1 root root  125640 Jan  6  2023 dash
+  -rwxr-xr-x 1 root root  121904 Sep 21  2022 date
+  -rwxr-xr-x 1 root root   89240 Sep 21  2022 dd
+  -rwxr-xr-x 1 root root  102200 Sep 21  2022 df
+  -rwxr-xr-x 1 root root  151344 Sep 21  2022 dir
+  -rwxr-xr-x 1 root root   88656 Mar 24  2023 dmesg
+  lrwxrwxrwx 1 root root       8 Dec 20  2022 dnsdomainname -> hostname
+  lrwxrwxrwx 1 root root       8 Dec 20  2022 domainname -> hostname
+  -rwxr-xr-x 1 root root   43856 Sep 21  2022 echo
+  -rwxr-xr-x 1 root root      41 Jan 25  2023 egrep
+  -rwxr-xr-x 1 root root   35664 Sep 21  2022 false
+  -rwxr-xr-x 1 root root      41 Jan 25  2023 fgrep
+  -rwxr-xr-x 1 root root   85600 Mar 24  2023 findmnt
+  -rwsr-xr-x 1 root root   35128 Mar 23  2023 fusermount
+  -rwxr-xr-x 1 root root  203152 Jan 25  2023 grep
+  -rwxr-xr-x 2 root root    2346 Apr 10  2022 gunzip
+  -rwxr-xr-x 1 root root    6447 Apr 10  2022 gzexe
+  -rwxr-xr-x 1 root root   98136 Apr 10  2022 gzip
+  -rwxr-xr-x 1 root root   22680 Dec 20  2022 hostname
+  -rwxr-xr-x 1 root root   72824 Sep 21  2022 ln
+  -rwxr-xr-x 1 root root   53024 Mar 24  2023 login
+  -rwxr-xr-x 1 root root  151344 Sep 21  2022 ls
+  -rwxr-xr-x 1 root root  207168 Mar 24  2023 lsblk
+  -rwxr-xr-x 1 root root   97552 Sep 21  2022 mkdir
+  -rwxr-xr-x 1 root root   72912 Sep 21  2022 mknod
+  -rwxr-xr-x 1 root root   43952 Sep 21  2022 mktemp
+  -rwxr-xr-x 1 root root   59712 Mar 24  2023 more
+  -rwsr-xr-x 1 root root   59704 Mar 24  2023 mount
+  -rwxr-xr-x 1 root root   18744 Mar 24  2023 mountpoint
+  -rwxr-xr-x 1 root root  142968 Sep 21  2022 mv
+  lrwxrwxrwx 1 root root       8 Dec 20  2022 nisdomainname -> hostname
+  lrwxrwxrwx 1 root root      14 Apr  3  2023 pidof -> /sbin/killall5
+  -rwxr-xr-x 1 root root   43952 Sep 21  2022 pwd
+  lrwxrwxrwx 1 root root       4 Apr 24  2023 rbash -> bash
+  -rwxr-xr-x 1 root root   52112 Sep 21  2022 readlink
+  -rwxr-xr-x 1 root root   72752 Sep 21  2022 rm
+  -rwxr-xr-x 1 root root   56240 Sep 21  2022 rmdir
+  -rwxr-xr-x 1 root root   27560 Nov  3  2022 run-parts
+  -rwxr-xr-x 1 root root  126424 Jan  6  2023 sed
+  lrwxrwxrwx 1 root root       9 Jun  4 21:47 sh -> /bin/bash
+  -rwxr-xr-x 1 root root   43888 Sep 21  2022 sleep
+  -rwxr-xr-x 1 root root   85008 Sep 21  2022 stty
+  -rwsr-xr-x 1 root root   72000 Mar 24  2023 su
+  -rwxr-xr-x 1 root root   39824 Sep 21  2022 sync
+  -rwxr-xr-x 1 root root  531984 Apr  7  2023 tar
+  -rwxr-xr-x 1 root root   14520 Nov  3  2022 tempfile
+  -rwxr-xr-x 1 root root  109616 Sep 21  2022 touch
+  -rwxr-xr-x 1 root root   35664 Sep 21  2022 true
+  -rwxr-xr-x 1 root root   14568 Mar 23  2023 ulockmgr_server
+  -rwsr-xr-x 1 root root   35128 Mar 24  2023 umount
+  -rwxr-xr-x 1 root root   43888 Sep 21  2022 uname
+  -rwxr-xr-x 2 root root    2346 Apr 10  2022 uncompress
+  -rwxr-xr-x 1 root root  151344 Sep 21  2022 vdir
+  -rwxr-xr-x 1 root root   72024 Mar 24  2023 wdctl
+  lrwxrwxrwx 1 root root       8 Dec 20  2022 ypdomainname -> hostname
+  -rwxr-xr-x 1 root root    1984 Apr 10  2022 zcat
+  -rwxr-xr-x 1 root root    1678 Apr 10  2022 zcmp
+  -rwxr-xr-x 1 root root    6460 Apr 10  2022 zdiff
+  -rwxr-xr-x 1 root root      29 Apr 10  2022 zegrep
+  -rwxr-xr-x 1 root root      29 Apr 10  2022 zfgrep
+  -rwxr-xr-x 1 root root    2081 Apr 10  2022 zforce
+  -rwxr-xr-x 1 root root    8103 Apr 10  2022 zgrep
+  -rwxr-xr-x 1 root root    2206 Apr 10  2022 zless
+  -rwxr-xr-x 1 root root    1842 Apr 10  2022 zmore
+  -rwxr-xr-x 1 root root    4577 Apr 10  2022 znew
+I: user script /srv/workspace/pbuilder/1751295/tmp/hooks/D02_print_environment finished
  -> Attempting to satisfy build-dependencies
  -> Creating pbuilder-satisfydepends-dummy package
 Package: pbuilder-satisfydepends-dummy
@@ -734,7 +766,7 @@
 Get: 437 http://deb.debian.org/debian bookworm/main amd64 python3-sphinxcontrib.svg2pdfconverter all 1.2.2-1 [6840 B]
 Get: 438 http://deb.debian.org/debian bookworm/main amd64 python3-zake all 0.2.2-4 [15.4 kB]
 Get: 439 http://deb.debian.org/debian bookworm/main amd64 python3-tooz all 3.1.0-3 [52.3 kB]
-Fetched 144 MB in 25s (5714 kB/s)
+Fetched 144 MB in 3s (53.2 MB/s)
 debconf: delaying package configuration, since apt-utils is not installed
 Selecting previously unselected package libargon2-1:amd64.
 (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 19596 files and directories currently installed.)
@@ -2546,10 +2578,17 @@
 Reading package lists...
 Building dependency tree...
 Reading state information...
+usrmerge is already the newest version (35).
 fakeroot is already the newest version (1.31-1.2).
 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 I: Building the package
-I: Running cd /build/ironic-inspector-11.1.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S  > ../ironic-inspector_11.1.0-2_source.changes
+I: user script /srv/workspace/pbuilder/1751295/tmp/hooks/A99_set_merged_usr starting
+Re-configuring usrmerge...
+removed '/etc/unsupported-skip-usrmerge-conversion'
+The system has been successfully converted.
+I: user script /srv/workspace/pbuilder/1751295/tmp/hooks/A99_set_merged_usr finished
+hostname: Name or service not known
+I: Running cd /build/ironic-inspector-11.1.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S  > ../ironic-inspector_11.1.0-2_source.changes
 dpkg-buildpackage: info: source package ironic-inspector
 dpkg-buildpackage: info: source version 11.1.0-2
 dpkg-buildpackage: info: source distribution unstable
@@ -2654,15 +2693,13 @@
 creating build
 creating build/lib
 creating build/lib/ironic_inspector
-creating build/lib/ironic_inspector/cmd
-copying ironic_inspector/cmd/wsgi.py -> build/lib/ironic_inspector/cmd
-copying ironic_inspector/cmd/status.py -> build/lib/ironic_inspector/cmd
-copying ironic_inspector/cmd/migration.py -> build/lib/ironic_inspector/cmd
-copying ironic_inspector/cmd/dbsync.py -> build/lib/ironic_inspector/cmd
-copying ironic_inspector/cmd/conductor.py -> build/lib/ironic_inspector/cmd
-copying ironic_inspector/cmd/all.py -> build/lib/ironic_inspector/cmd
-copying ironic_inspector/cmd/__init__.py -> build/lib/ironic_inspector/cmd
 creating build/lib/ironic_inspector/test
+copying ironic_inspector/test/functional.py -> build/lib/ironic_inspector/test
+copying ironic_inspector/test/base.py -> build/lib/ironic_inspector/test
+copying ironic_inspector/test/__init__.py -> build/lib/ironic_inspector/test
+creating build/lib/ironic_inspector/conductor
+copying ironic_inspector/conductor/manager.py -> build/lib/ironic_inspector/conductor
+copying ironic_inspector/conductor/__init__.py -> build/lib/ironic_inspector/conductor
 creating build/lib/ironic_inspector/test/unit
 copying ironic_inspector/test/unit/test_node_cache.py -> build/lib/ironic_inspector/test/unit
 copying ironic_inspector/test/unit/test_introspect.py -> build/lib/ironic_inspector/test/unit
@@ -2700,6 +2737,31 @@
 copying ironic_inspector/test/unit/test_acl.py -> build/lib/ironic_inspector/test/unit
 copying ironic_inspector/test/unit/policy_fixture.py -> build/lib/ironic_inspector/test/unit
 copying ironic_inspector/test/unit/__init__.py -> build/lib/ironic_inspector/test/unit
+creating build/lib/ironic_inspector/cmd
+copying ironic_inspector/cmd/wsgi.py -> build/lib/ironic_inspector/cmd
+copying ironic_inspector/cmd/status.py -> build/lib/ironic_inspector/cmd
+copying ironic_inspector/cmd/migration.py -> build/lib/ironic_inspector/cmd
+copying ironic_inspector/cmd/dbsync.py -> build/lib/ironic_inspector/cmd
+copying ironic_inspector/cmd/conductor.py -> build/lib/ironic_inspector/cmd
+copying ironic_inspector/cmd/all.py -> build/lib/ironic_inspector/cmd
+copying ironic_inspector/cmd/__init__.py -> build/lib/ironic_inspector/cmd
+creating build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/standard.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/rules.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/raid_device.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/physnet_cidr_map.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/pci_devices.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/local_link_connection.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/lldp_basic.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/introspection_data.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/extra_hardware.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/example.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/discovery.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/capabilities.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/base_physnet.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/base.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/accel_device.py -> build/lib/ironic_inspector/plugins
+copying ironic_inspector/plugins/__init__.py -> build/lib/ironic_inspector/plugins
 creating build/lib/ironic_inspector/conf
 copying ironic_inspector/conf/swift.py -> build/lib/ironic_inspector/conf
 copying ironic_inspector/conf/service_catalog.py -> build/lib/ironic_inspector/conf
@@ -2719,9 +2781,19 @@
 copying ironic_inspector/conf/capabilities.py -> build/lib/ironic_inspector/conf
 copying ironic_inspector/conf/accelerators.py -> build/lib/ironic_inspector/conf
 copying ironic_inspector/conf/__init__.py -> build/lib/ironic_inspector/conf
-creating build/lib/ironic_inspector/conductor
-copying ironic_inspector/conductor/manager.py -> build/lib/ironic_inspector/conductor
-copying ironic_inspector/conductor/__init__.py -> build/lib/ironic_inspector/conductor
+copying ironic_inspector/node_cache.py -> build/lib/ironic_inspector
+copying ironic_inspector/wsgi_service.py -> build/lib/ironic_inspector
+copying ironic_inspector/version.py -> build/lib/ironic_inspector
+copying ironic_inspector/utils.py -> build/lib/ironic_inspector
+copying ironic_inspector/rules.py -> build/lib/ironic_inspector
+copying ironic_inspector/process.py -> build/lib/ironic_inspector
+copying ironic_inspector/policy.py -> build/lib/ironic_inspector
+copying ironic_inspector/main.py -> build/lib/ironic_inspector
+copying ironic_inspector/introspection_state.py -> build/lib/ironic_inspector
+copying ironic_inspector/introspect.py -> build/lib/ironic_inspector
+copying ironic_inspector/db.py -> build/lib/ironic_inspector
+copying ironic_inspector/api_tools.py -> build/lib/ironic_inspector
+copying ironic_inspector/__init__.py -> build/lib/ironic_inspector
 creating build/lib/ironic_inspector/common
 copying ironic_inspector/common/swift.py -> build/lib/ironic_inspector/common
 copying ironic_inspector/common/service_utils.py -> build/lib/ironic_inspector/common
@@ -2742,39 +2814,6 @@
 copying ironic_inspector/pxe_filter/interface.py -> build/lib/ironic_inspector/pxe_filter
 copying ironic_inspector/pxe_filter/base.py -> build/lib/ironic_inspector/pxe_filter
 copying ironic_inspector/pxe_filter/__init__.py -> build/lib/ironic_inspector/pxe_filter
-creating build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/standard.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/rules.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/raid_device.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/physnet_cidr_map.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/pci_devices.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/local_link_connection.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/lldp_basic.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/introspection_data.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/extra_hardware.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/example.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/discovery.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/capabilities.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/base_physnet.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/base.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/accel_device.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/plugins/__init__.py -> build/lib/ironic_inspector/plugins
-copying ironic_inspector/node_cache.py -> build/lib/ironic_inspector
-copying ironic_inspector/wsgi_service.py -> build/lib/ironic_inspector
-copying ironic_inspector/version.py -> build/lib/ironic_inspector
-copying ironic_inspector/utils.py -> build/lib/ironic_inspector
-copying ironic_inspector/rules.py -> build/lib/ironic_inspector
-copying ironic_inspector/process.py -> build/lib/ironic_inspector
-copying ironic_inspector/policy.py -> build/lib/ironic_inspector
-copying ironic_inspector/main.py -> build/lib/ironic_inspector
-copying ironic_inspector/introspection_state.py -> build/lib/ironic_inspector
-copying ironic_inspector/introspect.py -> build/lib/ironic_inspector
-copying ironic_inspector/db.py -> build/lib/ironic_inspector
-copying ironic_inspector/api_tools.py -> build/lib/ironic_inspector
-copying ironic_inspector/__init__.py -> build/lib/ironic_inspector
-copying ironic_inspector/test/functional.py -> build/lib/ironic_inspector/test
-copying ironic_inspector/test/base.py -> build/lib/ironic_inspector/test
-copying ironic_inspector/test/__init__.py -> build/lib/ironic_inspector/test
 running egg_info
 creating ironic_inspector.egg-info
 writing ironic_inspector.egg-info/PKG-INFO
@@ -2917,36 +2956,6 @@
 copying build/lib/ironic_inspector/locale/en_GB/LC_MESSAGES/ironic_inspector.po -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/locale/en_GB/LC_MESSAGES
 copying build/lib/ironic_inspector/known_accelerators.yaml -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
 copying build/lib/ironic_inspector/alembic.ini -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/api_tools.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/db.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/introspect.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/introspection_state.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/main.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/policy.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/process.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/rules.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/utils.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/version.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/wsgi_service.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-copying build/lib/ironic_inspector/node_cache.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
-creating /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/accel_device.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/base.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/base_physnet.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/capabilities.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/discovery.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/example.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/extra_hardware.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/introspection_data.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/lldp_basic.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/local_link_connection.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/pci_devices.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/physnet_cidr_map.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/raid_device.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/rules.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
-copying build/lib/ironic_inspector/plugins/standard.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
 creating /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/pxe_filter
 copying build/lib/ironic_inspector/pxe_filter/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/pxe_filter
 copying build/lib/ironic_inspector/pxe_filter/base.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/pxe_filter
@@ -2967,9 +2976,19 @@
 copying build/lib/ironic_inspector/common/rpc_service.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/common
 copying build/lib/ironic_inspector/common/service_utils.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/common
 copying build/lib/ironic_inspector/common/swift.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/common
-creating /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conductor
-copying build/lib/ironic_inspector/conductor/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conductor
-copying build/lib/ironic_inspector/conductor/manager.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conductor
+copying build/lib/ironic_inspector/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/api_tools.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/db.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/introspect.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/introspection_state.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/main.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/policy.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/process.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/rules.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/utils.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/version.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/wsgi_service.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
+copying build/lib/ironic_inspector/node_cache.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector
 creating /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf
 copying build/lib/ironic_inspector/conf/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf
 copying build/lib/ironic_inspector/conf/accelerators.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf
@@ -2989,10 +3008,35 @@
 copying build/lib/ironic_inspector/conf/pxe_filter.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf
 copying build/lib/ironic_inspector/conf/service_catalog.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf
 copying build/lib/ironic_inspector/conf/swift.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf
+creating /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/accel_device.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/base.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/base_physnet.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/capabilities.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/discovery.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/example.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/extra_hardware.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/introspection_data.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/lldp_basic.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/local_link_connection.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/pci_devices.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/physnet_cidr_map.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/raid_device.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/rules.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+copying build/lib/ironic_inspector/plugins/standard.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins
+creating /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
+copying build/lib/ironic_inspector/cmd/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
+copying build/lib/ironic_inspector/cmd/all.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
+copying build/lib/ironic_inspector/cmd/conductor.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
+copying build/lib/ironic_inspector/cmd/dbsync.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
+copying build/lib/ironic_inspector/cmd/migration.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
+copying build/lib/ironic_inspector/cmd/status.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
+copying build/lib/ironic_inspector/cmd/wsgi.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
+creating /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conductor
+copying build/lib/ironic_inspector/conductor/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conductor
+copying build/lib/ironic_inspector/conductor/manager.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conductor
 creating /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test
-copying build/lib/ironic_inspector/test/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test
-copying build/lib/ironic_inspector/test/base.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test
-copying build/lib/ironic_inspector/test/functional.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test
 creating /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit
 copying build/lib/ironic_inspector/test/unit/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit
 copying build/lib/ironic_inspector/test/unit/policy_fixture.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit
@@ -3030,14 +3074,9 @@
 copying build/lib/ironic_inspector/test/unit/test_iptables.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit
 copying build/lib/ironic_inspector/test/unit/test_introspect.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit
 copying build/lib/ironic_inspector/test/unit/test_node_cache.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit
-creating /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
-copying build/lib/ironic_inspector/cmd/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
-copying build/lib/ironic_inspector/cmd/all.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
-copying build/lib/ironic_inspector/cmd/conductor.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
-copying build/lib/ironic_inspector/cmd/dbsync.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
-copying build/lib/ironic_inspector/cmd/migration.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
-copying build/lib/ironic_inspector/cmd/status.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
-copying build/lib/ironic_inspector/cmd/wsgi.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd
+copying build/lib/ironic_inspector/test/__init__.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test
+copying build/lib/ironic_inspector/test/base.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test
+copying build/lib/ironic_inspector/test/functional.py -> /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/migrations/versions/e169a4a81d88_add_invert_field_to_rule_condition.py to e169a4a81d88_add_invert_field_to_rule_condition.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/migrations/versions/d588418040d_add_rules.py to d588418040d_add_rules.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/migrations/versions/d2e48801c8ef_introducing_node_state_attribute.py to d2e48801c8ef_introducing_node_state_attribute.cpython-311.pyc
@@ -3049,35 +3088,6 @@
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/migrations/versions/2970d2d44edc_add_manage_boot_to_nodes.py to 2970d2d44edc_add_manage_boot_to_nodes.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/migrations/versions/18440d0834af_introducing_the_aborting_state.py to 18440d0834af_introducing_the_aborting_state.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/migrations/env.py to env.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/__init__.py to __init__.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/api_tools.py to api_tools.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/db.py to db.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/introspect.py to introspect.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/introspection_state.py to introspection_state.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/main.py to main.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/policy.py to policy.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/process.py to process.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/rules.py to rules.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/utils.py to utils.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/version.py to version.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/wsgi_service.py to wsgi_service.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/node_cache.py to node_cache.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/__init__.py to __init__.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/accel_device.py to accel_device.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/base.py to base.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/base_physnet.py to base_physnet.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/capabilities.py to capabilities.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/discovery.py to discovery.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/example.py to example.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/extra_hardware.py to extra_hardware.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/introspection_data.py to introspection_data.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/lldp_basic.py to lldp_basic.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/local_link_connection.py to local_link_connection.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/pci_devices.py to pci_devices.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/physnet_cidr_map.py to physnet_cidr_map.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/raid_device.py to raid_device.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/rules.py to rules.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/standard.py to standard.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/pxe_filter/__init__.py to __init__.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/pxe_filter/base.py to base.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/pxe_filter/interface.py to interface.cpython-311.pyc
@@ -3096,8 +3106,19 @@
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/common/rpc_service.py to rpc_service.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/common/service_utils.py to service_utils.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/common/swift.py to swift.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conductor/__init__.py to __init__.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conductor/manager.py to manager.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/__init__.py to __init__.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/api_tools.py to api_tools.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/db.py to db.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/introspect.py to introspect.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/introspection_state.py to introspection_state.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/main.py to main.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/policy.py to policy.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/process.py to process.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/rules.py to rules.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/utils.py to utils.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/version.py to version.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/wsgi_service.py to wsgi_service.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/node_cache.py to node_cache.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf/__init__.py to __init__.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf/accelerators.py to accelerators.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf/capabilities.py to capabilities.cpython-311.pyc
@@ -3116,9 +3137,31 @@
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf/pxe_filter.py to pxe_filter.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf/service_catalog.py to service_catalog.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conf/swift.py to swift.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/__init__.py to __init__.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/base.py to base.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/functional.py to functional.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/__init__.py to __init__.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/accel_device.py to accel_device.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/base.py to base.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/base_physnet.py to base_physnet.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/capabilities.py to capabilities.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/discovery.py to discovery.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/example.py to example.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/extra_hardware.py to extra_hardware.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/introspection_data.py to introspection_data.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/lldp_basic.py to lldp_basic.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/local_link_connection.py to local_link_connection.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/pci_devices.py to pci_devices.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/physnet_cidr_map.py to physnet_cidr_map.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/raid_device.py to raid_device.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/rules.py to rules.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/plugins/standard.py to standard.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/__init__.py to __init__.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/all.py to all.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/conductor.py to conductor.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/dbsync.py to dbsync.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/migration.py to migration.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/status.py to status.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/wsgi.py to wsgi.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conductor/__init__.py to __init__.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/conductor/manager.py to manager.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit/__init__.py to __init__.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit/policy_fixture.py to policy_fixture.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit/test_acl.py to test_acl.cpython-311.pyc
@@ -3155,13 +3198,9 @@
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit/test_iptables.py to test_iptables.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit/test_introspect.py to test_introspect.cpython-311.pyc
 byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/unit/test_node_cache.py to test_node_cache.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/__init__.py to __init__.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/all.py to all.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/conductor.py to conductor.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/dbsync.py to dbsync.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/migration.py to migration.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/status.py to status.cpython-311.pyc
-byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/cmd/wsgi.py to wsgi.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/__init__.py to __init__.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/base.py to base.cpython-311.pyc
+byte-compiling /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector/test/functional.py to functional.cpython-311.pyc
 running install_egg_info
 Copying ironic_inspector.egg-info to /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic_inspector-11.1.0.egg-info
 Skipping SOURCES.txt
@@ -3180,100 +3219,869 @@
 + PYTHON3S=disabled
 + TEST_PARALLEL_OPT=--parallel
 + TEST_SERIAL_OPT=
-+ echo WARNING: --no-py2 is deprecated, and always on.
++ for i in $@
++ case "${1}" in
++ echo 'WARNING: --no-py2 is deprecated, and always on.'
 WARNING: --no-py2 is deprecated, and always on.
 + shift
-+ py3versions -vr
++ for i in $@
++ case "${1}" in
+++ py3versions -vr
 + PYTHON3S=3.11
-+ [ yes = no ]
-+ [ no = yes ]
-+ [ 3.11 = disabled ]
-+ echo 3.11
-+ cut -d. -f1
++ '[' yes = no ']'
++ '[' no = yes ']'
++ for pyvers in ${PYTHON3S}
++ '[' 3.11 = disabled ']'
+++ echo 3.11
+++ cut -d. -f1
 + PYMAJOR=3
-+ echo ===> Testing with python (python3)
++ echo '===> Testing with python (python3)'
 ===> Testing with python (python3)
-+ pwd
-+ [ -d /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages ]
-+ [ -z  ]
-+ pwd
-+ echo Implicitly adding PYTHONPATH=/build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages
+++ pwd
++ '[' -d /build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages ']'
++ '[' -z '' ']'
+++ pwd
++ echo 'Implicitly adding PYTHONPATH=/build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages'
 Implicitly adding PYTHONPATH=/build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages
-+ pwd
+++ pwd
 + export PYTHONPATH=/build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages
-+ [ -e .stestr.conf ]
-+ [ -x /usr/bin/python3-stestr ]
++ PYTHONPATH=/build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages
++ '[' -e .stestr.conf ']'
++ '[' -x /usr/bin/python3-stestr ']'
 + STESTR=stestr
 + rm -rf .stestr
-+ PYTHON=python3.11 stestr run --parallel --subunit ironic_inspector\.test\.unit\.(?!(test_migrations\.TestMigrationSqlite\.test_upgrade_and_version|test_migrations\.TestMigrationSqlite\.test_walk_versions))
 + subunit2pyunit
++ PYTHON=python3.11
++ stestr run --parallel --subunit 'ironic_inspector\.test\.unit\.(?!(test_migrations\.TestMigrationSqlite\.test_upgrade_and_version|test_migrations\.TestMigrationSqlite\.test_walk_versions))'
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestShouldEnableUnknownHosts.test_introspection_active
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestShouldEnableUnknownHosts.test_introspection_active ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestShouldEnableUnknownHosts.test_introspection_not_active
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestShouldEnableUnknownHosts.test_introspection_not_active ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_main.TestApiReapply.test_api_ok
+ironic_inspector.test.unit.test_main.TestApiReapply.test_api_ok ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Oops
+ironic_inspector.test.unit.test_main.TestApiReapply.test_generic_error
+ironic_inspector.test.unit.test_main.TestApiReapply.test_generic_error ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] The store is crashed
+ironic_inspector.test.unit.test_main.TestApiReapply.test_get_introspection_data_error
+ironic_inspector.test.unit.test_main.TestApiReapply.test_get_introspection_data_error ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_main.TestApiReapply.test_reapply_with_node_name
+ironic_inspector.test.unit.test_main.TestApiReapply.test_reapply_with_node_name ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Invalid data: expected a JSON object, got None
+ironic_inspector.test.unit.test_main.TestApiReapply.test_user_data
+ironic_inspector.test.unit.test_main.TestApiReapply.test_user_data ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_main.TestApiReapply.test_user_data_valid
+ironic_inspector.test.unit.test_main.TestApiReapply.test_user_data_valid ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] boom
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_intospect_failed
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_intospect_failed ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_can_manage_boot_false
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_can_manage_boot_false ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Managed boot is requested, but this installation cannot manage boot ((can_manage_boot set to False)
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_can_manage_boot_false_failed
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_can_manage_boot_false_failed ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Boom
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_failed_authentication
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_failed_authentication ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_no_manage_boot
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_no_manage_boot ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Invalid boolean value for manage_boot: foo
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_wrong_manage_boot
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_wrong_manage_boot ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_root_endpoint_with_prefix
+ironic_inspector.test.unit.test_main.TestApiIntrospect.test_root_endpoint_with_prefix ... ok
+   ERROR [ironic_inspector.utils] Bad request: Oops!
+ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_assertion_error
+ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_assertion_error ... ok
+ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_ok
+ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_ok ... ok
+   ERROR [ironic_inspector.utils] Bad request: Oops!
+ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_value_error
+ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_value_error ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_custom_ioerror
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_custom_ioerror ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_would_block
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_would_block ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_would_block_too_many_times
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_would_block_too_many_times ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_main.TestApiContinue.test_continue
+ironic_inspector.test.unit.test_main.TestApiContinue.test_continue ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] boom
+ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_no_retries_on_python_error
+ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_no_retries_on_python_error ... ok
+ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_no_retries_on_success
+ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_no_retries_on_success ... ok
+ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_retries_on_ironicclient_error
+ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_retries_on_ironicclient_error ... ok
+ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_retries_on_ironicclient_error_with_failure
+ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_retries_on_ironicclient_error_with_failure ... ok
+ironic_inspector.test.unit.test_common_ironic.TestCapabilities.test_capabilities_to_dict
+ironic_inspector.test.unit.test_common_ironic.TestCapabilities.test_capabilities_to_dict ... ok
+ironic_inspector.test.unit.test_common_ironic.TestCapabilities.test_dict_to_capabilities
+ironic_inspector.test.unit.test_common_ironic.TestCapabilities.test_dict_to_capabilities ... ok
+ironic_inspector.test.unit.test_main.TestApiContinue.test_continue_failed
+ironic_inspector.test.unit.test_main.TestApiContinue.test_continue_failed ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Invalid data: expected a JSON object, got int
+ironic_inspector.test.unit.test_main.TestApiContinue.test_continue_wrong_type
+ironic_inspector.test.unit.test_main.TestApiContinue.test_continue_wrong_type ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] [unidentified node] BMC addresses 1.2.3.4, 42.42.42.42 correspond to more than one node: 537fa20a-e562-4ea9-88ff-d861d2cdf79d, another
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_bmc_duplicates
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_bmc_duplicates ... ok
+ironic_inspector.test.unit.test_main.TestApiRules.test_create
+ironic_inspector.test.unit.test_main.TestApiRules.test_create ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_main.TestApiRules.test_create_api_less_1_6
+ironic_inspector.test.unit.test_main.TestApiRules.test_create_api_less_1_6 ... ok
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_bmc_only
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_bmc_only ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Invalid UUID value
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_both
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_both ... ok
+ironic_inspector.test.unit.test_main.TestApiRules.test_create_bad_uuid
+ironic_inspector.test.unit.test_main.TestApiRules.test_create_bad_uuid ... ok
+   ERROR [ironic_inspector.utils] MAC addresses 11:22:33:44:55:66, 66:55:44:33:22:11, 7c:fe:90:29:26:52 and BMC addresses 1.2.3.4, 2001:1234:1234:1234:1234:1234:1234:1234/64 correspond to different nodes: another and 59d9d3c5-56a4-49e8-821e-c0813eddc7bc
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] boom
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_both_duplicates
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_both_duplicates ... ok
+ironic_inspector.test.unit.test_main.TestApiRules.test_delete_all
+ironic_inspector.test.unit.test_main.TestApiRules.test_delete_all ... ok
+ironic_inspector.test.unit.test_main.TestApiMisc.test_404_expected
+ironic_inspector.test.unit.test_main.TestApiMisc.test_404_expected ... ok
+   ERROR [ironic_inspector.utils] [unidentified node] MAC addresses 11:22:33:44:55:66, 66:55:44:33:22:11, 7c:fe:90:29:26:52 correspond to more than one node: e1fcee74-57cf-4533-9053-b1428ac9912c, another
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Version v42 not found.
+ironic_inspector.test.unit.test_locking.TestToozLock.test_acquire
+ironic_inspector.test.unit.test_locking.TestToozLock.test_acquire ... ok
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_mac_duplicates
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_mac_duplicates ... ok
+ironic_inspector.test.unit.test_main.TestApiMisc.test_404_unexpected
+ironic_inspector.test.unit.test_main.TestApiMisc.test_404_unexpected ... ok
+ironic_inspector.test.unit.test_main.TestApiRules.test_delete_one
+ironic_inspector.test.unit.test_main.TestApiRules.test_delete_one ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_locking.TestToozLock.test_context
+ironic_inspector.test.unit.test_locking.TestToozLock.test_context ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.main] Internal server error
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 186, in wrapper
+    return func(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 303, in wrapper
+    return func(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 384, in api_introspection
+    node_info = node_cache.get_node(node_id)
+                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "<string>", line 3, in get_node
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_mac_only
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_mac_only ... ok
+ironic_inspector.test.unit.test_main.TestApiRules.test_get_all
+ironic_inspector.test.unit.test_main.TestApiRules.test_get_all ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_locking.TestToozLock.test_release
+ironic_inspector.test.unit.test_locking.TestToozLock.test_release ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Node 90f1aab2-aabc-497f-8683-40467c4e7d58 was not found in Ironic
+   ERROR [ironic_inspector.utils] Cannot get node 90f1aab2-aabc-497f-8683-40467c4e7d58: Error
+ironic_inspector.test.unit.test_main.TestApiMisc.test_500_with_debug
+ironic_inspector.test.unit.test_main.TestApiMisc.test_500_with_debug ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_no_input_no_result
+ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_no_input_no_result ... ok
+ironic_inspector.test.unit.test_main.TestApiRules.test_get_one
+ironic_inspector.test.unit.test_main.TestApiRules.test_get_one ... ok
+ironic_inspector.test.unit.test_common_ironic.TestGetClientBase.test_get_client
+ironic_inspector.test.unit.test_common_ironic.TestGetClientBase.test_get_client ... ok
+   ERROR [ironic_inspector.main] Internal server error
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 186, in wrapper
+    return func(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 303, in wrapper
+    return func(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 384, in api_introspection
+    node_info = node_cache.get_node(node_id)
+                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "<string>", line 3, in get_node
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_failed_to_get_node
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_failed_to_get_node ... ok
+   ERROR [ironic_inspector.utils] [node: <Mock name='mock.node()' id='140248030401744'>] Failed validation of power interface: ValidationException
+ironic_inspector.test.unit.test_main.TestApiMisc.test_500_without_debug
+ironic_inspector.test.unit.test_main.TestApiMisc.test_500_without_debug ... ok
+ironic_inspector.test.unit.test_db.TestDB.test__create_context_manager
+ironic_inspector.test.unit.test_db.TestDB.test__create_context_manager ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_init_filter
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_init_filter ... ok
+ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_do_introspect
+ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_do_introspect ... ok
+   ERROR [ironic_inspector.utils] Boom.
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_failed_to_validate_node
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_failed_to_validate_node ... ok
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Bad request: State(s) "invalid" are not valid
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_reset
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_reset ... ok
+ironic_inspector.test.unit.test_db.TestDB.test_ensure_transaction_new_session
+ironic_inspector.test.unit.test_db.TestDB.test_ensure_transaction_new_session ... ok
+ironic_inspector.test.unit.test_manager.TestManagerContinue.test_continue_failed
+ironic_inspector.test.unit.test_manager.TestManagerContinue.test_continue_failed ... ok
+ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_do_introspect_with_manage_boot
+ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_do_introspect_with_manage_boot ... ok
+   ERROR [ironic_inspector.utils] boom
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_forced_persistent_boot
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_forced_persistent_boot ... ok
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_invalid_state
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_invalid_state ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_coordination.TestGetCoordinator.test_get
+ironic_inspector.test.unit.test_coordination.TestGetCoordinator.test_get ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_sync
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_sync ... ok
+ironic_inspector.test.unit.test_db.TestDB.test_ensure_transaction_session
+ironic_inspector.test.unit.test_db.TestDB.test_ensure_transaction_session ... ok
+ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_introspect_failed
+ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_introspect_failed ... ok
+ironic_inspector.test.unit.test_manager.TestManagerContinue.test_continue_ok
+ironic_inspector.test.unit.test_manager.TestManagerContinue.test_continue_ok ... ok
+   ERROR [ironic_inspector.utils] Bad request: invalid literal for int() with base 10: 'foo'
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_forced_persistent_boot_compat
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_forced_persistent_boot_compat ... ok
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_limit
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_limit ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_db.TestDB.test_get_reader_session
+ironic_inspector.test.unit.test_db.TestDB.test_get_reader_session ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_tear_down_filter
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_tear_down_filter ... ok
+ironic_inspector.test.unit.test_coordination.TestGetCoordinator.test_get_with_prefix
+ironic_inspector.test.unit.test_coordination.TestGetCoordinator.test_get_with_prefix ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_additional_fields
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_additional_fields ... ok
+   ERROR [ironic_inspector.utils] Configuration error: [pxe_filter]deny_unknown_macs isenabled and [processing]node_not_found_hook is enabled.These options cannot both be enabled simultaneously.
+ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_migrate_up
+ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_migrate_up ... ok
+ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_invalid_value
+ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_invalid_value ... ok
+   ERROR [ironic_inspector.utils] [node: <Mock id='140445997640592'>] Failed to resolve the hostname (meow) for node uuid1
+   ERROR [ironic_inspector.utils] Bad request: Limit cannot be negative
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_makrer
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_makrer ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_inspect_wait_state_allowed
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_inspect_wait_state_allowed ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_db.TestDB.test_get_writer_session
+ironic_inspector.test.unit.test_db.TestDB.test_get_writer_session ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestConfiguration.test_deny_unknown_macs_and_node_not_found_hook_bad
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestConfiguration.test_deny_unknown_macs_and_node_not_found_hook_bad ... ok
+ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_migrate_up_with_data
+ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_migrate_up_with_data ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_admin ... ok
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_bad_hostname_errors
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_bad_hostname_errors ... ok
+ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_negative
+ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_negative ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ WARNING [ironic_inspector.introspect] [node: <Mock id='139758745914320'>] Failed to sync the PXE filter: Boom
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_multiple_state
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_multiple_state ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_delay
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_delay ... ok
+ironic_inspector.test.unit.test_db.TestDB.test_model_query
+ironic_inspector.test.unit.test_db.TestDB.test_model_query ... ok
+ironic_inspector.test.unit.test_main.TestApiGetData.test_get_introspection_data_from_db
+ironic_inspector.test.unit.test_main.TestApiGetData.test_get_introspection_data_from_db ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_good_hostname_resolves
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_good_hostname_resolves ... ok
+ironic_inspector.test.unit.test_introspect.TestAbort.test_firewall_update_exception
+ironic_inspector.test.unit.test_introspect.TestAbort.test_firewall_update_exception ... ok
+ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_ok
+ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_ok ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_walk_versions_all_default
+ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_walk_versions_all_default ... ok
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_state
+ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_state ... ok
+   ERROR [ironic_inspector.utils] Bad request: Limit over 1000
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__allowlist_mac
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__allowlist_mac ... ok
+ironic_inspector.test.unit.test_main.TestApiGetData.test_get_introspection_data_from_swift
+ironic_inspector.test.unit.test_main.TestApiGetData.test_get_introspection_data_from_swift ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetByPath.test_get_by_path
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetByPath.test_get_by_path ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_delay_not_needed
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_delay_not_needed ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_ironic_preset
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_ironic_preset ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_not_provided
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_not_provided ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_provided
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_provided ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_ironic_preset
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_ironic_preset ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_not_provided
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_not_provided ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_provided
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_provided ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_provided_list
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_provided_list ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Access denied by policy
+   ERROR [ironic_inspector.utils] boom
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipmi_bridging_enabled
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipmi_bridging_enabled ... ok
+ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_over
+ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_over ... ok
+ironic_inspector.test.unit.test_introspect.TestAbort.test_no_manage_boot
+ironic_inspector.test.unit.test_introspect.TestAbort.test_no_manage_boot ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__allowlist_unknown_hosts
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__allowlist_unknown_hosts ... ok
+ironic_inspector.test.unit.test_main.TestApiGetData.test_get_unprocessed_data_from_swift
+ironic_inspector.test.unit.test_main.TestApiGetData.test_get_unprocessed_data_from_swift ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_member ... ok
+ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_walk_versions_all_false
+ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_walk_versions_all_false ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Introspection data storage is disabled
+   ERROR [ironic_inspector.utils] [node: <Mock id='139758760358672'>] Node is locked, please, retry later
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_no_delay_without_manage_boot
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_no_delay_without_manage_boot ... ok
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_all_valid_data
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_all_valid_data ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+   ERROR [ironic_inspector.utils] [unidentified node] Port 11:22:33:44:55:66 already exists, uuid: <MagicMock name='mock.id' id='139701596466128'>
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_intospect_failed
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_intospect_failed ... ok
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipv4_in_resolves
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipv4_in_resolves ... ok
+ WARNING [ironic_inspector.common.ironic] [node: <Mock name='mock.node()' id='140248025588240'>] Ignoring loopback BMC address 127.0.0.1
+ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_zero
+ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_zero ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_allowlist
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_allowlist ... ok
+ironic_inspector.test.unit.test_main.TestApiGetData.test_introspection_data_not_stored
+ironic_inspector.test.unit.test_main.TestApiGetData.test_introspection_data_not_stored ... ok
+ironic_inspector.test.unit.test_introspect.TestAbort.test_node_locked
+ironic_inspector.test.unit.test_introspect.TestAbort.test_node_locked ... ok
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_existing_mac
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_existing_mac ... ok
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_bad_value_linkagg
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_bad_value_linkagg ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Introspection data storage is disabled
+   ERROR [ironic_inspector.utils] Not found.
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ WARNING [ironic_inspector.plugins.discovery] No suitable interfaces found for discovered node. Check that validate_interfaces hook is listed in [processing]default_processing_hooks config option
+   ERROR [ironic_inspector.utils] [unidentified node] Node <MagicMock name='mock.id' id='139701596578064'> already has BMC address 1.2.3.4
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipv6_in_resolves
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipv6_in_resolves ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_loopback_bmc_address
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_loopback_bmc_address ... ok
+ WARNING [ironic_inspector.common.ironic] [node: <Mock id='140445999254864'>] Ignoring loopback BMC address 127.0.0.2
    ERROR [ironic_inspector.utils] Access denied by policy
+   ERROR [ironic_inspector.utils] [node: <Mock id='140248028643728'>] No lookup attributes were found, inspector won't be able to find it after introspection, consider creating ironic ports or providing an IPMI address
+   ERROR [ironic_inspector.node_cache] [node: <Mock id='140248028643728'>] Processing the error event because of an exception <class 'ironic_inspector.utils.Error'>: No lookup attributes were found, inspector won't be able to find it after introspection, consider creating ironic ports or providing an IPMI address raised by ironic_inspector.introspect._do_introspect
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect ... ok
+ironic_inspector.test.unit.test_main.TestApiGetData.test_unprocessed_data_not_stored
+ironic_inspector.test.unit.test_main.TestApiGetData.test_unprocessed_data_not_stored ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_denylist
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_denylist ... ok
+ironic_inspector.test.unit.test_introspect.TestAbort.test_node_not_found
+ironic_inspector.test.unit.test_introspect.TestAbort.test_node_not_found ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_existing_node
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_existing_node ... ok
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_bad_value_macphy
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_bad_value_macphy ... ok
+ WARNING [ironic_inspector.introspect] [node: <Mock id='139758745042000'>] Failed to power off node: BadaBoom
+ WARNING [ironic_inspector.plugins.discovery] No suitable interfaces found for discovered node. Check that validate_interfaces hook is listed in [processing]default_processing_hooks config option
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test__create_group
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test__create_group ... ok
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_loopback_address
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_loopback_address ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_reader ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_lookup_attrs
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_lookup_attrs ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_denylist_deny_unknown
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_denylist_deny_unknown ... ok
+ironic_inspector.test.unit.test_main.TestApiGetData.test_with_name
+ironic_inspector.test.unit.test_main.TestApiGetData.test_with_name ... ok
+ironic_inspector.test.unit.test_introspect.TestAbort.test_node_power_off_exception
+ironic_inspector.test.unit.test_introspect.TestAbort.test_node_power_off_exception ... ok
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_new_mac
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_new_mac ... ok
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_can_manage_boot_false
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_can_manage_boot_false ... ok
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_chassis_ids
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_chassis_ids ... ok
+ WARNING [ironic_inspector.plugins.discovery] No suitable interfaces found for discovered node. Check that validate_interfaces hook is listed in [processing]default_processing_hooks config option
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_lookup_attrs_with_node_not_found_hook
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_lookup_attrs_with_node_not_found_hook ... ok
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_lock
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_lock ... ok
+   ERROR [ironic_inspector.utils] Managed boot is requested, but this installation cannot manage boot ((can_manage_boot set to False)
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__denylist_mac
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__denylist_mac ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host ... ok
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_new_node
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_new_node ... ok
+ironic_inspector.test.unit.test_introspect.TestAbort.test_ok
+ironic_inspector.test.unit.test_introspect.TestAbort.test_ok ... ok
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_duplicate_tlvs
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_duplicate_tlvs ... ok
+ WARNING [ironic_inspector.plugins.discovery] No BMC address provided, discovered node will be created without ipmi address
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address_ipv4
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address_ipv4 ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_macs
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_macs ... ok
    ERROR [ironic_inspector.utils] Introspection data storage is disabled
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_can_manage_boot_false_failed
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_can_manage_boot_false_failed ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__denylist_unknown_hosts
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__denylist_unknown_hosts ... ok
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_members
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_members ... ok
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_default
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_default ... ok
+   ERROR [ironic_inspector.utils] Authentication required
+ WARNING [ironic_inspector.plugins.discovery] No BMC address provided, discovered node will be created without ipmi address
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_invalid_ip
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_invalid_ip ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_admin ... ok
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address_ipv6
+ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address_ipv6 ... ok
+ironic_inspector.test.unit.test_locking.TestGetLock.test_get_lock_internal
+ironic_inspector.test.unit.test_locking.TestGetLock.test_get_lock_internal ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_manage_boot
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_manage_boot ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_abort_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_abort_baremetal_admin ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_allowlist
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_allowlist ... ok
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_failed_authentication
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_failed_authentication ... ok
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_fields
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_fields ... ok
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_members_no_such_group
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_members_no_such_group ... ok
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_multiple_interfaces
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_multiple_interfaces ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_abort_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_abort_baremetal_observer ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_baremetal_admin ... ok
+ironic_inspector.test.unit.test_locking.TestGetLock.test_get_lock_tooz
+ironic_inspector.test.unit.test_locking.TestGetLock.test_get_lock_tooz ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_denylist
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_denylist ... ok
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_ipmi_address
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_ipmi_address ... ok
    ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_baremetal_observer ... ok
+   ERROR [ironic_inspector.utils] Coordinator should be started before executing coordination actions.
+   ERROR [ironic_inspector.utils] Coordinator should be started before executing coordination actions.
+   ERROR [ironic_inspector.utils] Coordinator should be started before executing coordination actions.
+   ERROR [ironic_inspector.utils] Coordinator should be started before executing coordination actions.
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_null_strings
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_null_strings ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok_ilo_and_drac
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok_ilo_and_drac ... ok
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_no_manage_boot
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_no_manage_boot ... ok
+ironic_inspector.test.unit.test_main.TestApiVersions.test_404_unexpected
+ironic_inspector.test.unit.test_main.TestApiVersions.test_404_unexpected ... ok
+ironic_inspector.test.unit.test_locking.TestInternalLock.test_acquire
+ironic_inspector.test.unit.test_locking.TestInternalLock.test_acquire ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_member ... ok
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_invalid_state
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_invalid_state ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_no_allowlist
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_no_allowlist ... ok
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_ipmi_v6address
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_ipmi_v6address ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ WARNING [ironic_inspector.plugins.discovery] No BMC address provided, discovered node will be created without ipmi address
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok_retries_node_locked
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok_retries_node_locked ... ok
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_truncated_int
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_truncated_int ... ok
+   ERROR [ironic_inspector.utils] Invalid boolean value for manage_boot: foo
+   ERROR [ironic_inspector.utils] [node: <Mock id='140248023095760'>] Failed to power on the node, check its power management configuration: Error
+   ERROR [ironic_inspector.node_cache] [node: <Mock id='140248023095760'>] Processing the error event because of an exception <class 'ironic_inspector.utils.Error'>: Failed to power on the node, check its power management configuration: Error raised by ironic_inspector.introspect._do_introspect
+ironic_inspector.test.unit.test_main.TestApiVersions.test_request_correct_version
+ironic_inspector.test.unit.test_main.TestApiVersions.test_request_correct_version ... ok
+ironic_inspector.test.unit.test_locking.TestInternalLock.test_context
+ironic_inspector.test.unit.test_locking.TestInternalLock.test_context ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_no_denylist
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_no_denylist ... ok
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_non_default_driver
+ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_non_default_driver ... ok
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_wrong_manage_boot
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_wrong_manage_boot ... ok
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_join_group
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_join_group ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_power_failure
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_power_failure ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_truncated_mac
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_truncated_mac ... ok
+ WARNING [ironic_inspector.common.lldp_parsers] [node: 7d355bf8-323a-49e9-b73d-a5680c80da79] Organizationally Unique ID 009069 not recognized
+ WARNING [ironic_inspector.common.lldp_parsers] [node: 7d355bf8-323a-49e9-b73d-a5680c80da79] Organizationally Unique ID 23ac00 not recognized
+ WARNING [ironic_inspector.common.lldp_parsers] [node: 7d355bf8-323a-49e9-b73d-a5680c80da79] Organizationally Unique ID 00120e not recognized
+ironic_inspector.test.unit.test_main.TestApiVersions.test_request_latest_version
+ironic_inspector.test.unit.test_main.TestApiVersions.test_request_latest_version ... ok
+   ERROR [ironic_inspector.utils] Access denied by policy
+ironic_inspector.test.unit.test_locking.TestInternalLock.test_init_lock
+ironic_inspector.test.unit.test_locking.TestInternalLock.test_init_lock ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__macs_unknown_hosts_deny_unknown
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__macs_unknown_hosts_deny_unknown ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_remove
+ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_remove ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_resolved_bmc_address
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_resolved_bmc_address ... ok
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_unhandled_oui
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_unhandled_oui ... ok
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_root_endpoint_with_prefix
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_root_endpoint_with_prefix ... ok
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_join_group_not_exist
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_join_group_not_exist ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_reader ... ok
+ironic_inspector.test.unit.test_main.TestApiVersions.test_request_unsupported_version
+ironic_inspector.test.unit.test_main.TestApiVersions.test_request_unsupported_version ... ok
+   ERROR [ironic_inspector.utils] [node: <Mock id='140248043718032'>] Failed to set boot device to PXE: Error
+   ERROR [ironic_inspector.node_cache] [node: <Mock id='140248043718032'>] Processing the error event because of an exception <class 'ironic_inspector.utils.Error'>: Failed to set boot device to PXE: Error raised by ironic_inspector.introspect._do_introspect
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_locking.TestInternalLock.test_release
+ironic_inspector.test.unit.test_locking.TestInternalLock.test_release ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__purge_dhcp_hostsdir
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__purge_dhcp_hostsdir ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_remove_not_found
+ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_remove_not_found ... ok
+   ERROR [ironic_inspector.utils] Authentication required
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_unhandled_tlvs
+ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_unhandled_tlvs ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_set_boot_device_failure
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_set_boot_device_failure ... ok
+ironic_inspector.test.unit.test_main.TestApiVersions.test_root_endpoint
+ironic_inspector.test.unit.test_main.TestApiVersions.test_root_endpoint ... ok
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_unauthenticated_public_api
+ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_unauthenticated_public_api ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test_disabled__purge_dhcp_hostsdir
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test_disabled__purge_dhcp_hostsdir ... ok
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_leave_group
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_leave_group ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_validate
+ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_validate ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.node_cache] [node: <Mock id='140248023691088'>] Processing the error event because of an exception <class 'RuntimeError'>:  raised by ironic_inspector.introspect._do_introspect
+   ERROR [ironic_inspector.utils] Locked.
+ WARNING [ironic_inspector.plugins.capabilities] [node: 3dc2964a-fd33-4885-a56a-541f489b7aeb state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
    ERROR [ironic_inspector.utils] Invalid data: expected a JSON object, got None
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_unprocessed_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_unprocessed_baremetal_admin ... ok
-   ERROR [ironic_inspector.utils] [unidentified node] BMC addresses 1.2.3.4, 42.42.42.42 correspond to more than one node: another, a54bfa21-fb05-46b6-8b9c-9037f03eb491
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_bmc_duplicates
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_bmc_duplicates ... ok
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_bmc_only
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_bmc_only ... ok
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_both
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_both ... ok
-   ERROR [ironic_inspector.utils] MAC addresses 11:22:33:44:55:66, 66:55:44:33:22:11, 7c:fe:90:29:26:52 and BMC addresses 1.2.3.4, 2001:1234:1234:1234:1234:1234:1234:1234/64 correspond to different nodes: another and e11d3340-2791-418e-bffd-8fbb6c0045ad
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_both_duplicates
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_both_duplicates ... ok
-   ERROR [ironic_inspector.utils] [unidentified node] MAC addresses 11:22:33:44:55:66, 66:55:44:33:22:11, 7c:fe:90:29:26:52 correspond to more than one node: 799cef06-ece0-4082-9633-4d544f208262, another
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_mac_duplicates
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_mac_duplicates ... ok
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_mac_only
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_lookup_by_mac_only ... ok
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_no_input_no_result
-ironic_inspector.test.unit.test_common_ironic.TestLookupNode.test_no_input_no_result ... ok
-ironic_inspector.test.unit.test_db.TestDB.test__create_context_manager
-ironic_inspector.test.unit.test_db.TestDB.test__create_context_manager ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_dict
+ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_dict ... ok
+ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test__should_enable_dhcp_false
+ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test__should_enable_dhcp_false ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test__create_port
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test__create_port ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_unexpected_error
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_unexpected_error ... ok
+ironic_inspector.test.unit.test_main.TestApiVersions.test_usual_requests
+ironic_inspector.test.unit.test_main.TestApiVersions.test_usual_requests ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_start
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_start ... ok
+ironic_inspector.test.unit.test_main.TestApiAbort.test_abort_failed
+ironic_inspector.test.unit.test_main.TestApiAbort.test_abort_failed ... ok
+   ERROR [ironic_inspector.utils] [node: <Mock name='mock.node()' id='140248023874448'>] Invalid provision state for introspection: "active", valid states are "['enroll', 'inspect failed', 'inspect wait', 'manageable', 'inspecting']"
+ironic_inspector.test.unit.test_process.TestProcessNode.test_no_manage_boot
+ironic_inspector.test.unit.test_process.TestProcessNode.test_no_manage_boot ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_admin ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ WARNING [ironic_inspector.plugins.capabilities] [node: eaf35677-ca5c-48e2-b127-2cfc7aa9b5d3 state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_list
+ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_list ... ok
+ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test_introspection_active
+ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test_introspection_active ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports ... ok
+ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint
+ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint ... ok
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_wrong_provision_state
+ironic_inspector.test.unit.test_introspect.TestIntrospect.test_wrong_provision_state ... ok
+ironic_inspector.test.unit.test_main.TestApiAbort.test_no_authentication
+ironic_inspector.test.unit.test_main.TestApiAbort.test_no_authentication ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Version v-1 not found.
+ironic_inspector.test.unit.test_process.TestProcessNode.test_no_power_off
+ironic_inspector.test.unit.test_process.TestProcessNode.test_no_power_off ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+   ERROR [ironic_inspector.utils] Not Found.
+ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_string
+ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_string ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_stop
+ironic_inspector.test.unit.test_coordination.TestCoordinator.test_stop ... ok
+ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test_node_not_found_hook_set
+ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test_node_not_found_hook_set ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: 27c60dff-7f5d-4cb8-86eb-d835c578703d state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports_not_update_pxe
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports_not_update_pxe ... ok
    ERROR [ironic_inspector.utils] Access denied by policy
+   ERROR [ironic_inspector.utils] Introspection for node 1021d60f-993b-447f-bfca-897a0c102240 already finished on 2024-06-04 08:16:17.134141
+ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint_invalid
+ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint_invalid ... ok
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_validate_processing_hooks_exception
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_validate_processing_hooks_exception ... ok
+ironic_inspector.test.unit.test_main.TestTopic.test_get_client_compat_non_standalone
+ironic_inspector.test.unit.test_main.TestTopic.test_get_client_compat_non_standalone ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_main.TestApiAbort.test_node_not_found
+ironic_inspector.test.unit.test_main.TestApiAbort.test_node_not_found ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_none
+ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_none ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_process.TestProcessNode.test_ok
+ironic_inspector.test.unit.test_process.TestProcessNode.test_ok ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync ... ok
+   ERROR [ironic_inspector.utils] [unidentified node] boom
+ WARNING [ironic_inspector.plugins.capabilities] [node: bf5998ed-d2dd-41e2-af6d-858dbadf6107 state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_already_finished
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_already_finished ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_member ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports_with_conflicts
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports_with_conflicts ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint_with_slash
+ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint_with_slash ... ok
+   ERROR [ironic_inspector.utils] Node 8f4619a9-fce7-4085-9cb7-dadce7d60086 is not active, its provision state is deploying
+ironic_inspector.test.unit.test_main.TestApiAbort.test_ok
+ironic_inspector.test.unit.test_main.TestApiAbort.test_ok ... ok
+ironic_inspector.test.unit.test_main.TestTopic.test_get_client_compat_standalone
+ironic_inspector.test.unit.test_main.TestTopic.test_get_client_compat_standalone ... ok
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_coordinator
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_coordinator ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestFailAction.test_apply
+ironic_inspector.test.unit.test_plugins_rules.TestFailAction.test_apply ... ok
+ironic_inspector.test.unit.test_process.TestProcessNode.test_ok_node_active
+ironic_inspector.test.unit.test_process.TestProcessNode.test_ok_node_active ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_enable_unknown_hosts
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_enable_unknown_hosts ... ok
+ WARNING [ironic_inspector.node_cache] [node: 0fd80bbf-d460-4eec-88f5-df8bfd7efb29 state processing] Port 11:22:33:44:55:66 already exists, skipping
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_bmc
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_bmc ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: 0fd80bbf-d460-4eec-88f5-df8bfd7efb29 state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port ... ok
+ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_bad_provision_state
+ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_bad_provision_state ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_all_match
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_all_match ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute_empty
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute_empty ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestFailAction.test_validate
+ironic_inspector.test.unit.test_plugins_rules.TestFailAction.test_validate ... ok
+ WARNING [ironic_inspector.plugins.standard] Using hint {'size': 10} skipping devices: /dev/sdc
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_coordinator_failed
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_coordinator_failed ... ok
+   ERROR [ironic_inspector.utils] Access denied by policy
+ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic
+ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_ironic_unavailable
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_ironic_unavailable ... ok
+ironic_inspector.test.unit.test_process.TestProcessNode.test_port_failed
+ironic_inspector.test.unit.test_process.TestProcessNode.test_port_failed ... ok
+ WARNING [ironic_inspector.main] Found invalid member b'this_should_not_happen'
+   ERROR [ironic_inspector.utils] No available conductor service
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_both
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_both ... ok
+ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_no_lookup_data
+ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_no_lookup_data ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port_by_mac
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port_by_mac ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: 338d5701-6cf2-4d1e-acc7-9923b8d574a3 state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+   ERROR [ironic_inspector.utils] Could not find node 2ae0848c-04ba-4484-9f14-f55709887a84 in introspection cache, probably it's not on introspection now
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_reader ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute_ignoring_errors
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute_ignoring_errors ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_first_match_on_skip_list_use_second
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_first_match_on_skip_list_use_second ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test___init__
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test___init__ ... ok
+ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_host_bypass_invalid
+ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_host_bypass_invalid ... ok
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_not_enable_unknown_hosts
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_not_enable_unknown_hosts ... ok
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_mdns
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_mdns ... ok
+ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_not_found
+ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_not_found ... ok
+ironic_inspector.test.unit.test_process.TestProcessNode.test_power_off_enroll_state
+ironic_inspector.test.unit.test_process.TestProcessNode.test_power_off_enroll_state ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port_retries
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port_retries ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_inconsistency
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_inconsistency ... ok
+ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_args_ipv4
+ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_args_ipv4 ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: fcbd7bda-e16c-40f9-ac9e-d09ba4eb97f0 state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+   ERROR [ironic_inspector.utils] [node: fcbd7bda-e16c-40f9-ac9e-d09ba4eb97f0 MAC 11:22:33:44:55:66 BMC 1.2.3.4] Failed to power off node fcbd7bda-e16c-40f9-ac9e-d09ba4eb97f0, check its power management configuration: boom
+   ERROR [ironic_inspector.node_cache] [node: fcbd7bda-e16c-40f9-ac9e-d09ba4eb97f0] Processing the error event because of an exception <class 'ironic_inspector.utils.Error'>: Failed to power off node fcbd7bda-e16c-40f9-ac9e-d09ba4eb97f0, check its power management configuration: boom raised by ironic_inspector.process._finish
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_local_gb_without_spacing
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_local_gb_without_spacing ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.pxe_filter.base] The PXE filter IptablesFilter, state=<MagicMock name='fsm.current_state' id='140251471962128'> encountered an exception: Oops!; resetting the filter
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_automaton_error
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_automaton_error ... ok
+ WARNING [ironic_lib.utils] No device found that matches the root device hints {'size': 10}
+   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='139758764204816'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks satisfied root device hints
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_with_port_list_retries
+ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_with_port_list_retries ... ok
+ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_host_with_domain
+ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_host_with_domain ... ok
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_no_introspection_data_store
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_no_introspection_data_store ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch ... ok
+ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_success
+ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_success ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_input_filtering
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_input_filtering ... ok
+ironic_inspector.test.unit.test_process.TestProcessNode.test_power_off_failed
+ironic_inspector.test.unit.test_process.TestProcessNode.test_power_off_failed ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_args_ipv6
+ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_args_ipv6 ... ok
+   ERROR [ironic_inspector.utils] No available conductor service
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_disks
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_disks ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_reset_on_error
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_reset_on_error ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: 0de39ffe-09c5-4b79-81b4-67cdfc6be985 state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_path_with_leading_slash
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_path_with_leading_slash ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_admin ... ok
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_expected_data
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_expected_data ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+   ERROR [ironic_inspector.pxe_filter.base] The PXE filter TestFilter, state=<MagicMock name='fsm.current_state' id='139870307518544'> encountered an exception: Oops!; resetting the filter
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/pxe_filter/base.py", line 151, in fsm_reset_on_error
+    yield self.fsm
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/test/unit/test_pxe_filter.py", line 186, in fun
+    raise MyError('Oops!')
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_reset_on_error_ctx_custom_error.<locals>.MyError: Oops!
+ironic_inspector.test.unit.test_main.TestApiGetStatus.test_get_introspection_finished
+ironic_inspector.test.unit.test_main.TestApiGetStatus.test_get_introspection_finished ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs ... ok
+ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_no_member
+ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_no_member ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_hints
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_hints ... ok
+ WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_process.TestProcessNode.test_return_includes_uuid
+ironic_inspector.test.unit.test_process.TestProcessNode.test_return_includes_uuid ... ok
+   ERROR [ironic_inspector.utils] Multiple nodes match the same number of attributes {'mac': ['11:22:33:44:55:66', '00:00:00:00:00:00']}: ['f14cb2cf-24b6-499e-8001-e27aa5fdded3', 'uuid2']
+   ERROR [ironic_inspector.pxe_filter.base] The PXE filter IptablesFilter, state=<MagicMock name='fsm.current_state' id='139946310068560'> encountered an exception: Oops!; resetting the filter
 Traceback (most recent call last):
   File "/build/ironic-inspector-11.1.0/ironic_inspector/pxe_filter/base.py", line 151, in fsm_reset_on_error
     yield self.fsm
@@ -3298,8 +4106,43 @@
   File "/usr/lib/python3.11/unittest/mock.py", line 1181, in _execute_mock_call
     raise result
 RuntimeError: Oops!
+   ERROR [ironic_inspector.utils] Oops
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_path_wo_leading_slash
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_path_wo_leading_slash ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: 22a7f537-8845-45a9-88fb-8e6bd29e7169 state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_reset_on_error_ctx_custom_error
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_reset_on_error_ctx_custom_error ... ok
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_interface_not_in_all_interfaces
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_interface_not_in_all_interfaces ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_main.TestApiGetStatus.test_get_introspection_in_progress
+ironic_inspector.test.unit.test_main.TestApiGetStatus.test_get_introspection_in_progress ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs_multiple_found
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs_multiple_found ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_hints_no_overwrite
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_hints_no_overwrite ... ok
+ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_clean_cache_on_error_ipv4
+ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_clean_cache_on_error_ipv4 ... ok
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_generic_error
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_generic_error ... ok
+   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='139758747465424'> MAC 11:22:33:44:55:66] Hardware inventory is empty or missing
    ERROR [ironic_inspector.utils] Access denied by policy
-   ERROR [ironic_inspector.pxe_filter.base] The PXE filter IptablesFilter, state=<MagicMock name='fsm.current_state' id='140251484130064'> encountered an exception: Oops!; resetting the filter
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test__delete_node
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test__delete_node ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_port
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_port ... ok
+ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_no_logs_with_database
+ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_no_logs_with_database ... ok
+   ERROR [ironic_inspector.utils] The store is empty
+ WARNING [ironic_inspector.plugins.capabilities] [node: ebef1c10-1a27-4206-a9ea-084feac5f236 state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_interface_not_in_ironic
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_interface_not_in_ironic ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply
+ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_inventory
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_inventory ... ok
+   ERROR [ironic_inspector.utils] [unidentified node] Hardware inventory is empty or missing
+   ERROR [ironic_inspector.pxe_filter.base] The PXE filter IptablesFilter, state=<MagicMock name='fsm.current_state' id='139946294903952'> encountered an exception: Oops!; resetting the filter
 Traceback (most recent call last):
   File "/build/ironic-inspector-11.1.0/ironic_inspector/pxe_filter/base.py", line 151, in fsm_reset_on_error
     yield self.fsm
@@ -3324,50 +4167,141 @@
   File "/usr/lib/python3.11/unittest/mock.py", line 1181, in _execute_mock_call
     raise result
 RuntimeError: Oops!
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs_not_found
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs_not_found ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_member ... ok
+ WARNING [ironic_lib.utils] No device found that matches the root device hints {'size': 10, 'model': 'Model 42'}
+   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='139758747241936'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks satisfied root device hints
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_db.TestDB.test_ensure_transaction_new_session
-ironic_inspector.test.unit.test_db.TestDB.test_ensure_transaction_new_session ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_unprocessed_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_unprocessed_baremetal_observer ... ok
-ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_args_ipv4
-ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_args_ipv4 ... ok
-ironic_inspector.test.unit.test_db.TestDB.test_ensure_transaction_session
-ironic_inspector.test.unit.test_db.TestDB.test_ensure_transaction_session ... ok
-ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_args_ipv6
-ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_args_ipv6 ... ok
-ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_clean_cache_on_error_ipv4
-ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_clean_cache_on_error_ipv4 ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_port_by_mac
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_port_by_mac ... ok
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_get_introspection_data_error
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_get_introspection_data_error ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test__list_node_uuids
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test__list_node_uuids ... ok
+ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_no_logs_with_swift
+ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_no_logs_with_swift ... ok
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_inventory
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_inventory ... ok
+   ERROR [ironic_inspector.utils] Locked.
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_clean_cache_on_error_ipv6
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_clean_cache_on_error_ipv6 ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver
+ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_fails
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_fails ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: dc7ba539-81e6-43c3-bac1-1477580eca79 state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_no_data
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_no_data ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_active_macs
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_active_macs ... ok
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_node_locked
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_node_locked ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_with_args
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_with_args ... ok
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_mapping
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_mapping ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver_no_reset_interfaces
+ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver_no_reset_interfaces ... ok
+ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_with_database
+ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_with_database ... ok
+   ERROR [ironic_inspector.utils] Access denied by policy
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_kwargs
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test__iptables_kwargs ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_introspect_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_introspect_baremetal_admin ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_introspect_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_introspect_baremetal_observer ... ok
-ironic_inspector.test.unit.test_db.TestDB.test_get_reader_session
-ironic_inspector.test.unit.test_db.TestDB.test_get_reader_session ... ok
-ironic_inspector.test.unit.test_db.TestDB.test_get_writer_session
-ironic_inspector.test.unit.test_db.TestDB.test_get_writer_session ... ok
-ironic_inspector.test.unit.test_db.TestDB.test_model_query
-ironic_inspector.test.unit.test_db.TestDB.test_model_query ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_list_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_list_baremetal_admin ... ok
+   ERROR [ironic_inspector.utils] Not found.
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_matches
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_matches ... ok
+ WARNING [ironic_inspector.plugins.rules] [node: 52df07b8-f606-45ac-bff6-3cb0ef767466] Not passing reset_interfaces to Ironic, since  API 1.46 and/or ironicclient >= 2.5.0 are not available
+ WARNING [ironic_inspector.plugins.rules] [node: 52df07b8-f606-45ac-bff6-3cb0ef767466] Not passing reset_interfaces to Ironic, since  API 1.46 and/or ironicclient >= 2.5.0 are not available
+ WARNING [ironic_inspector.plugins.capabilities] [node: d4af739c-b81e-484b-899d-8f93f516d0bc state processing MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
    ERROR [ironic_inspector.utils] Configuration error: [pxe_filter]deny_unknown_macs isenabled and [processing]node_not_found_hook is enabled.These options cannot both be enabled simultaneously.
+ WARNING [ironic_inspector.plugins.standard] Using hint {'size': 10} skipping devices: /dev/sdc
+ WARNING [ironic_lib.utils] No device found that matches the root device hints {'size': 10}
+   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='139758791706448'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks satisfied root device hints
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_same_bmc_different_macs
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_same_bmc_different_macs ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute ... ok
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_overwrite
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_overwrite ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_reader ... ok
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_node_not_found
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_node_not_found ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver_not_supported
+ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver_not_supported ... ok
+   ERROR [ironic_inspector.utils] Multiple nodes match the same number of attributes {'bmc_address': '1.2.3.4'}: ['dcdaf241-ee98-4ea4-b5ce-88f66cd75406', '342f4fd8-6236-4d8c-91b1-78d5041aab5c']
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_deny_unknown_macs_and_node_not_found_hook_bad
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_deny_unknown_macs_and_node_not_found_hook_bad ... ok
+ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_with_swift
+ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_with_swift ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_that_matches_on_skip_list
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_that_matches_on_skip_list ... ok
+   ERROR [ironic_inspector.utils] [node: <Mock name='get_client().update_node()' id='139701577518032'>] Invalid provision state for introspection: "active", valid states are "['enroll', 'inspecting', 'inspect failed', 'manageable', 'inspect wait']"
+   ERROR [ironic_inspector.node_cache] [node: 4f875d42-cec0-4fe8-aa76-7d07ab93f81e state processing] Processing the error event because of an exception <class 'ironic_inspector.utils.Error'>: Invalid provision state for introspection: "active", valid states are "['enroll', 'inspecting', 'inspect failed', 'manageable', 'inspect wait']" raised by ironic_inspector.process._process_node
+   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='139758747283216'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks could be found using the root device hints {'size': 'foo'} because they failed to validate. Error: Root device hint "size" is not an integer value. Current value: foo
+   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='139758747283216'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks could be found using the root device hints {'size': None} because they failed to validate. Error: Root device hint "size" is not an integer value. Current value: None
+   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='139758747283216'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks could be found using the root device hints {'size': {}} because they failed to validate. Error: Root device hint "size" is not an integer value. Current value: {}
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_not_found
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_not_found ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute_same_name
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute_same_name ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_same_bmc_raises
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_same_bmc_raises ... ok
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_noop
+ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_noop ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_validate
+ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_validate ... ok
+   ERROR [ironic_inspector.node_cache] Failed to create new node: SDKException
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_init_args
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_init_args ... ok
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+   ERROR [ironic_inspector.utils] [node: 0217e6f6-6ef0-4ab0-93ce-c674310d5ff5 state waiting] Node processing already finished with error: None
+ironic_inspector.test.unit.test_process.TestProcessNode.test_wrong_provision_state
+ironic_inspector.test.unit.test_process.TestProcessNode.test_wrong_provision_state ... ok
  WARNING [ironic_inspector.pxe_filter.iptables] iptables does not support -w flag, please update it to at least version 1.4.21
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_size_invalid
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_size_invalid ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_same_value
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_same_value ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute_same_value
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute_same_value ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_create_client_error
+ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_create_client_error ... ok
+ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_not_in_edeploy_format
+ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_not_in_edeploy_format ... ok
+ironic_inspector.test.unit.test_process.TestProcess.test_already_finished
+ironic_inspector.test.unit.test_process.TestProcess.test_already_finished ... ok
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_init_args_old_iptables
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_init_args_old_iptables ... ok
-   ERROR [ironic_inspector.pxe_filter.base] The PXE filter IptablesFilter, state=<MagicMock name='fsm.current_state' id='140251468007312'> encountered an exception: Oops!; resetting the filter
+ WARNING [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
+   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
+Look up error: BOOM
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok_db
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok_db ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_size_string
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_size_string ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: 86f345a9-3206-4d66-94f4-4df8eec58763 state reapplying MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_admin ... ok
+ WARNING [ironic_inspector.plugins.standard] [node: <Mock spec='NodeInfo' id='139758741934160'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] The requested root disk is too small (smaller than 1 GiB) or its size cannot be detected: {'model': 'Floppy', 'size': 0, 'name': '/dev/sdf'}
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_with_default
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_with_default ... ok
+   ERROR [ironic_inspector.pxe_filter.base] The PXE filter IptablesFilter, state=<MagicMock name='fsm.current_state' id='139946291626768'> encountered an exception: Oops!; resetting the filter
 Traceback (most recent call last):
   File "/build/ironic-inspector-11.1.0/ironic_inspector/pxe_filter/base.py", line 151, in fsm_reset_on_error
     yield self.fsm
@@ -3385,67 +4319,260 @@
   File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
     raise effect
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_init_fails.<locals>.MyError: Oops!
+ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_create_with_args
+ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_create_with_args ... ok
+ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_not_in_edeploy_format_strict_mode
+ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_not_in_edeploy_format_strict_mode ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_node
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_node ... ok
+ironic_inspector.test.unit.test_process.TestProcess.test_error_if_node_not_found_hook
+ironic_inspector.test.unit.test_process.TestProcess.test_error_if_node_not_found_hook ... ok
+   ERROR [ironic_inspector.utils] boom
+ WARNING [ironic_inspector.process] [node: 00d0697a-69db-4c6c-ae7a-36a2ddb4ecb3 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
+ironic_inspector.test.unit.test_process.TestReapplyNode.test_ok
+ironic_inspector.test.unit.test_process.TestReapplyNode.test_ok ... ok
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok_swift
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok_swift ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_zero_size
+ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_zero_size ... ok
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_init_fails
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_init_fails ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_update_capabilities
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_update_capabilities ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_default_create
+ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_default_create ... ok
+ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_recieved
+ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_recieved ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_attributes
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_attributes ... ok
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook example failed, delaying error report until node look up: Failed.
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+Exception: Failed.
+   ERROR [ironic_inspector.utils] [node: 8ad29283-2d3f-4840-be75-91383f2e902e state reapplying] Pre-processing failures detected reapplying introspection on stored data:
+Unexpected exception Exception during preprocessing in hook example: Failed.
+   ERROR [ironic_inspector.node_cache] [node: 8ad29283-2d3f-4840-be75-91383f2e902e state reapplying] Processing the error event because of an exception <class 'ironic_inspector.utils.Error'>: Pre-processing failures detected reapplying introspection on stored data:
+Unexpected exception Exception during preprocessing in hook example: Failed. raised by ironic_inspector.process._reapply_with_data
+   ERROR [ironic_inspector.process] [node: 8ad29283-2d3f-4840-be75-91383f2e902e state reapplying MAC 11:22:33:44:55:66 BMC 1.2.3.4] Failed reapply for node 8ad29283-2d3f-4840-be75-91383f2e902e, Error: Pre-processing failures detected reapplying introspection on stored data:
+Unexpected exception Exception during preprocessing in hook example: Failed.
+ironic_inspector.test.unit.test_process.TestProcess.test_expected_exception
+ironic_inspector.test.unit.test_process.TestProcess.test_expected_exception ... ok
+ WARNING [ironic_inspector.node_cache] Node d4575d79-1ddd-49c6-982f-c74bfc9c5ce4 was deleted from Ironic, dropping from Ironic Inspector database
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_init_kwargs
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_init_kwargs ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_list_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_list_baremetal_observer ... ok
-ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_ok
-ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_ok ... ok
-ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_with_default
-ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_with_default ... ok
-ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_with_default_returns_default
-ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_with_default_returns_default ... ok
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_reapply_with_data
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_reapply_with_data ... ok
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_update_properties
+ironic_inspector.test.unit.test_node_cache.TestUpdate.test_update_properties ... ok
+ironic_inspector.test.unit.test_process.TestReapplyNode.test_prehook_failure
+ironic_inspector.test.unit.test_process.TestReapplyNode.test_prehook_failure ... ok
+ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_recieved_with_errors
+ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_recieved_with_errors ... ok
+   ERROR [ironic_inspector.utils] Introspection data storage is disabled
+ WARNING [ironic_inspector.plugins.raid_device] [node: 6062dbe6-64ee-419e-8576-f66da32335ad] Root device cannot be identified because multiple new devices were found
+   ERROR [ironic_inspector.utils] Inspector is not configured to store introspection data. Set the [processing]store_data configuration option to change this.
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_delete_nodes_not_in_list
+ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_delete_nodes_not_in_list ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_member ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_error
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_error ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_process.TestProcess.test_found_in_cache_active_introspection
+ironic_inspector.test.unit.test_process.TestProcess.test_found_in_cache_active_introspection ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_iptables_command_ipv4
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_iptables_command_ipv4 ... ok
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_multiple_new_devices
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_multiple_new_devices ... ok
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_store_data_disabled
+ironic_inspector.test.unit.test_manager.TestManagerReapply.test_store_data_disabled ... ok
+ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_no_data_recieved
+ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_no_data_recieved ... ok
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook ramdisk_error failed, delaying error report until node look up: boom
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ WARNING [ironic_inspector.plugins.raid_device] [node: 30b13423-2fd4-405c-99ce-39ada8573df1] No block device was received from ramdisk
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook root_disk_selection failed, delaying error report until node look up: boom
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_no_timeout
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_no_timeout ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_release_lock
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_release_lock ... ok
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook scheduler failed, delaying error report until node look up: boom
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_iptables_command_ipv6
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_iptables_command_ipv6 ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook validate_interfaces failed, delaying error report until node look up: boom
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_block_devices_from_ramdisk
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_block_devices_from_ramdisk ... ok
+ WARNING [ironic_inspector.plugins.raid_device] [node: 2655d3a7-90d8-4ffd-a564-a834c3f9f64c] No new devices were found
+ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_contains
+ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_contains ...    ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook capabilities failed, delaying error report until node look up: boom
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ok
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook pci_devices failed, delaying error report until node look up: boom
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ WARNING [ironic_inspector.process] [node: 717f498f-dbf6-4762-a275-671d8cf99a33 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
+   ERROR [ironic_inspector.utils] [node: 717f498f-dbf6-4762-a275-671d8cf99a33 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
+Unexpected exception RuntimeError during preprocessing in hook ramdisk_error: boom
+Unexpected exception RuntimeError during preprocessing in hook root_disk_selection: boom
+Unexpected exception RuntimeError during preprocessing in hook scheduler: boom
+Unexpected exception RuntimeError during preprocessing in hook validate_interfaces: boom
+Unexpected exception RuntimeError during preprocessing in hook capabilities: boom
+Unexpected exception RuntimeError during preprocessing in hook pci_devices: boom
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_ok ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_reader ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_success
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_success ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_ironic_unavailable_allowlist
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_ironic_unavailable_allowlist ... ok
+   ERROR [ironic_inspector.node_cache] Introspection for nodes ['cd631b87-72cd-49bb-82eb-7d0e606b361f'] has timed out
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_new_devices
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_new_devices ... ok
+ironic_inspector.test.unit.test_process.TestProcess.test_hook_unexpected_exceptions
+ironic_inspector.test.unit.test_process.TestProcess.test_hook_unexpected_exceptions ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_matches
+ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_matches ... ok
+   ERROR [ironic_inspector.utils] not found
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook ramdisk_error failed, delaying error report until node look up: boom
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook root_disk_selection failed, delaying error report until node look up: boom
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout ... ok
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_ironic_unavailable_denylist
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_ironic_unavailable_denylist ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Bad request: State(s) "invalid" are not valid
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_invalid_state
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_invalid_state ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_limit
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_limit ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_makrer
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_makrer ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_multiple_state
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_multiple_state ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_state
-ironic_inspector.test.unit.test_main.TestApiListStatus.test_list_introspection_state ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] boom
-ironic_inspector.test.unit.test_main.TestApiMisc.test_404_expected
-ironic_inspector.test.unit.test_main.TestApiMisc.test_404_expected ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Version v42 not found.
-ironic_inspector.test.unit.test_main.TestApiMisc.test_404_unexpected
-ironic_inspector.test.unit.test_main.TestApiMisc.test_404_unexpected ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.main] Internal server error
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_previous_block_devices
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_previous_block_devices ... ok
+   ERROR [ironic_inspector.node_cache] Introspection for nodes ['f3ee05a2-d363-4ee8-9a70-bb5600c6ed38'] has timed out
+   ERROR [ironic_inspector.node_cache] [node: f3ee05a2-d363-4ee8-9a70-bb5600c6ed38 state starting] Something went wrong, timeout occurred while introspection in "starting" state
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_custom_exc_fsm_event
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_custom_exc_fsm_event ... ok
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook scheduler failed, delaying error report until node look up: boom
 Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 186, in wrapper
-    return func(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 303, in wrapper
-    return func(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 384, in api_introspection
-    node_info = node_cache.get_node(node_id)
-                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "<string>", line 3, in get_node
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
   File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
     return self._mock_call(*args, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -3455,21 +4582,15 @@
   File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
     raise effect
 RuntimeError: boom
-ironic_inspector.test.unit.test_main.TestApiMisc.test_500_with_debug
-ironic_inspector.test.unit.test_main.TestApiMisc.test_500_with_debug ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.main] Internal server error
+ WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
+   ERROR [ironic_inspector.node_cache] Introspection for nodes ['f3ee05a2-d363-4ee8-9a70-bb5600c6ed38'] has timed out
+   ERROR [ironic_inspector.node_cache] [node: f3ee05a2-d363-4ee8-9a70-bb5600c6ed38 state enrolling] Something went wrong, timeout occurred while introspection in "enrolling" state
+ WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook validate_interfaces failed, delaying error report until node look up: boom
 Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 186, in wrapper
-    return func(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 303, in wrapper
-    return func(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/main.py", line 384, in api_introspection
-    node_info = node_cache.get_node(node_id)
-                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "<string>", line 3, in get_node
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
   File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
     return self._mock_call(*args, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -3479,232 +4600,257 @@
   File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
     raise effect
 RuntimeError: boom
-ironic_inspector.test.unit.test_main.TestApiMisc.test_500_without_debug
-ironic_inspector.test.unit.test_main.TestApiMisc.test_500_without_debug ... ok
+   ERROR [ironic_inspector.node_cache] Introspection for nodes ['f3ee05a2-d363-4ee8-9a70-bb5600c6ed38'] has timed out
+ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_validate
+ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_validate ... ok
+   ERROR [ironic_inspector.node_cache] [node: f3ee05a2-d363-4ee8-9a70-bb5600c6ed38 state processing] Something went wrong, timeout occurred while introspection in "processing" state
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_abort_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_abort_baremetal_admin ... ok
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook capabilities failed, delaying error report until node look up: boom
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
+   ERROR [ironic_inspector.node_cache] Introspection for nodes ['f3ee05a2-d363-4ee8-9a70-bb5600c6ed38'] has timed out
+   ERROR [ironic_inspector.node_cache] [node: f3ee05a2-d363-4ee8-9a70-bb5600c6ed38 state reapplying] Something went wrong, timeout occurred while introspection in "reapplying" state
+ WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook pci_devices failed, delaying error report until node look up: boom
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
+    hook_ext.obj.before_processing(introspection_data)
+  File "<string>", line 3, in before_processing
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ WARNING [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
+   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
+Unexpected exception RuntimeError during preprocessing in hook ramdisk_error: boom
+Unexpected exception RuntimeError during preprocessing in hook root_disk_selection: boom
+Unexpected exception RuntimeError during preprocessing in hook scheduler: boom
+Unexpected exception RuntimeError during preprocessing in hook validate_interfaces: boom
+Unexpected exception RuntimeError during preprocessing in hook capabilities: boom
+Unexpected exception RuntimeError during preprocessing in hook pci_devices: boom
+Look up error: not found
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_allowlist_ipv4
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_allowlist_ipv4 ... ok
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_expected_data
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_expected_data ... ok
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_interface_not_in_all_interfaces
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_interface_not_in_all_interfaces ... ok
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_interface_not_in_ironic
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_interface_not_in_ironic ... ok
-   ERROR [ironic_inspector.utils] [unidentified node] Hardware inventory is empty or missing
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_inventory
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_inventory ... ok
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_mapping
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_mapping ... ok
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_overwrite
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_no_overwrite ... ok
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_noop
-ironic_inspector.test.unit.test_plugins_base_physnet.TestBasePortPhysnetHook.test_noop ... ok
-ironic_inspector.test.unit.test_plugins_introspection_data.TestDatabaseStore.test_store_and_get_data
-ironic_inspector.test.unit.test_plugins_introspection_data.TestDatabaseStore.test_store_and_get_data ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_all_valid_data
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_all_valid_data ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_bad_value_linkagg
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_bad_value_linkagg ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_bad_value_macphy
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_bad_value_macphy ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_chassis_ids
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_chassis_ids ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_duplicate_tlvs
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_duplicate_tlvs ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_invalid_ip
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_invalid_ip ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_multiple_interfaces
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_multiple_interfaces ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_null_strings
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_null_strings ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_truncated_int
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_truncated_int ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_truncated_mac
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_truncated_mac ... ok
- WARNING [ironic_inspector.common.lldp_parsers] [node: 8098d9c8-1cef-4435-b131-b4c8709907c0] Organizationally Unique ID 009069 not recognized
- WARNING [ironic_inspector.common.lldp_parsers] [node: 8098d9c8-1cef-4435-b131-b4c8709907c0] Organizationally Unique ID 23ac00 not recognized
- WARNING [ironic_inspector.common.lldp_parsers] [node: 8098d9c8-1cef-4435-b131-b4c8709907c0] Organizationally Unique ID 00120e not recognized
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_unhandled_oui
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_unhandled_oui ... ok
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_unhandled_tlvs
-ironic_inspector.test.unit.test_plugins_lldp_basic.TestLLDPBasicProcessingHook.test_unhandled_tlvs ... ok
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_loadable_by_name
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_loadable_by_name ... ok
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_local_gb_not_changed
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_local_gb_not_changed ... ok
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_missing_local_gb
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_missing_local_gb ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookLoad.test_hook_loadable_by_name
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookLoad.test_hook_loadable_by_name ... ok
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_create_action_none_value
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_create_action_none_value ... ok
-   ERROR [ironic_inspector.rules] Database integrity error (sqlite3.IntegrityError) UNIQUE constraint failed: rules.uuid
-[SQL: INSERT INTO rules (uuid, created_at, description, disabled, scope) VALUES (?, ?, ?, ?, ?)]
-[parameters: ('02614bc0-b386-4461-877a-fbef4f278de4', '2023-05-03 01:23:00.167948', None, 0, None)]
-(Background on this error at: https://sqlalche.me/e/14/gkpj) when creating a rule
-   ERROR [ironic_inspector.utils] Rule with UUID 02614bc0-b386-4461-877a-fbef4f278de4 already exists
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_duplicate_uuid
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_duplicate_uuid ... ok
-   ERROR [ironic_inspector.utils] Validation failed for actions: 'action' is a required property
-
-Failed validating 'required' in schema['items']:
-    {'additionalProperties': True,
-     'properties': {'action': {'description': 'action to take',
-                               'enum': ['add-trait',
-                                        'example',
-                                        'extend-attribute',
-                                        'fail',
-                                        'remove-trait',
-                                        'set-attribute',
-                                        'set-capability']}},
-     'required': ['action'],
-     'type': 'object'}
-
-On instance[0]:
-    {'message': 'boom!'}
-   ERROR [ironic_inspector.utils] Validation failed for actions: 'foobar' is not one of ['add-trait', 'example', 'extend-attribute', 'fail', 'remove-trait', 'set-attribute', 'set-capability']
-
-Failed validating 'enum' in schema['items']['properties']['action']:
-    {'description': 'action to take',
-     'enum': ['add-trait',
-              'example',
-              'extend-attribute',
-              'fail',
-              'remove-trait',
-              'set-attribute',
-              'set-capability']}
-
-On instance[0]['action']:
-    'foobar'
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_action
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_action ... ok
-   ERROR [ironic_inspector.utils] Bad request: Marker not UUID-like
-ironic_inspector.test.unit.test_api_tools.MarkerFieldTestCase.test_marker_check_fails
-ironic_inspector.test.unit.test_api_tools.MarkerFieldTestCase.test_marker_check_fails ... ok
-   ERROR [ironic_inspector.utils] Bad request: Oops!
-ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_assertion_error
-ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_assertion_error ... ok
-   ERROR [ironic_inspector.utils] Invalid parameters for action fail: unexpected parameter(s): foo
-ironic_inspector.test.unit.test_api_tools.MarkerFieldTestCase.test_marker_ok
-ironic_inspector.test.unit.test_api_tools.MarkerFieldTestCase.test_marker_ok ... ok
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_action_parameters
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_action_parameters ... ok
-ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_ok
-ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_ok ... ok
-   ERROR [ironic_inspector.utils] Bad request: Oops!
-ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_value_error
-ironic_inspector.test.unit.test_api_tools.RaisesCoercionExceptionTestCase.test_value_error ... ok
-   ERROR [ironic_inspector.utils] Validation failed for conditions: 'op' is a required property
-
-Failed validating 'required' in schema['items']:
-    {'additionalProperties': True,
-     'properties': {'field': {'description': 'JSON path to field for '
-                                             'matching',
-                              'type': 'string'},
-                    'invert': {'description': 'whether to invert the '
-                                              'result',
-                               'type': 'boolean'},
-                    'multiple': {'description': 'how to treat multiple '
-                                                'values',
-                                 'enum': ['all', 'any', 'first']},
-                    'op': {'description': 'condition operator',
-                           'enum': ['contains',
-                                    'eq',
-                                    'ge',
-                                    'gt',
-                                    'in-net',
-                                    'is-empty',
-                                    'le',
-                                    'lt',
-                                    'matches',
-                                    'ne']}},
-     'required': ['op', 'field'],
-     'type': 'object'}
-
-On instance[0]:
-    {'field': 'memory_mb', 'value': 1024}
-   ERROR [ironic_inspector.utils] Validation failed for conditions: 'foobar' is not one of ['contains', 'eq', 'ge', 'gt', 'in-net', 'is-empty', 'le', 'lt', 'matches', 'ne']
-
-Failed validating 'enum' in schema['items']['properties']['op']:
-    {'description': 'condition operator',
-     'enum': ['contains',
-              'eq',
-              'ge',
-              'gt',
-              'in-net',
-              'is-empty',
-              'le',
-              'lt',
-              'matches',
-              'ne']}
-
-On instance[0]['op']:
-    'foobar'
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__allowlist_mac
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__allowlist_mac ... ok
-   ERROR [ironic_inspector.utils] Unable to parse field JSON path !*!: Error on line 1, col 0: Unexpected character: ! 
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition_field
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition_field ... ok
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_previous_block_devices_old_ramdisk
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_previous_block_devices_old_ramdisk ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_admin ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_apply
+ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_apply ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout_active_state
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout_active_state ... ok
+ironic_inspector.test.unit.test_process.TestProcess.test_hook_unexpected_exceptions_no_node
+ironic_inspector.test.unit.test_process.TestProcess.test_hook_unexpected_exceptions_no_node ... ok
+   ERROR [ironic_inspector.node_cache] Introspection for nodes ['be5476a0-97d5-44a0-977c-cdc1724b14d3'] has timed out
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__allowlist_unknown_hosts
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__allowlist_unknown_hosts ... ok
-   ERROR [ironic_inspector.utils] Invalid parameters for operator eq: unexpected parameter(s): foo
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition_parameters
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition_parameters ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_allowlist
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_allowlist ... ok
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_ensure_start_on_error
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_ensure_start_on_error ... ok
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_already_exposed
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_already_exposed ... ok
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_allowlist_ipv6
 ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_allowlist_ipv6 ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_denylist
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_denylist ... ok
-   ERROR [ironic_inspector.utils] Validation failed for actions: [] is too short
-
-Failed validating 'minItems' in schema:
-    {'items': {'additionalProperties': True,
-               'properties': {'action': {'description': 'action to take',
-                                         'enum': ['add-trait',
-                                                  'example',
-                                                  'extend-attribute',
-                                                  'fail',
-                                                  'remove-trait',
-                                                  'set-attribute',
-                                                  'set-capability']}},
-               'required': ['action'],
-               'type': 'object'},
-     'minItems': 1,
-     'title': 'Inspector rule actions schema',
-     'type': 'array'}
-
-On instance:
-    []
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] boom
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Managed boot is requested, but this installation cannot manage boot ((can_manage_boot set to False)
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Boom
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Invalid boolean value for manage_boot: foo
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply ... ok
+   ERROR [ironic_inspector.utils] Oops!
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+   ERROR [ironic_inspector.utils] Access denied by policy
+ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_apply_with_existing
+ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_apply_with_existing ... ok
+ironic_inspector.test.unit.test_process.TestProcess.test_ipmi_not_detected
+ironic_inspector.test.unit.test_process.TestProcess.test_ipmi_not_detected ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout_lock_failed
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout_lock_failed ... ok
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_found
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_found ... ok
+ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_denylist_ipv4
+ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_denylist_ipv4 ... ok
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_error_fsm_event
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_error_fsm_event ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_abort_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_abort_baremetal_observer ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_validate
+ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_validate ... ok
+   ERROR [ironic_inspector.utils] Oops!
+ironic_inspector.test.unit.test_process.TestProcess.test_ipmi_not_detected_with_old_field
+ironic_inspector.test.unit.test_process.TestProcess.test_ipmi_not_detected_with_old_field ... ok
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_found_old_ramdisk
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_found_old_ramdisk ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply
+ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_member ... ok
+ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_denylist_ipv6
+ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_denylist_ipv6 ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_all
+ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_all ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_invalid_state
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_invalid_state ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookLoad.test_hook_loadable_by_name
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookLoad.test_hook_loadable_by_name ... ok
+ironic_inspector.test.unit.test_process.TestProcess.test_no_ipmi
+ironic_inspector.test.unit.test_process.TestProcess.test_no_ipmi ... ok
+   ERROR [ironic_inspector.utils] not found
+ WARNING [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
+   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
+Look up error: not found
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply_non_empty
+ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply_non_empty ... ok
+   ERROR [ironic_inspector.utils] Introspection data storage is disabled
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_ib_not_match
+ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_ib_not_match ... ok
+ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_cache
+ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_cache ... ok
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_ok_state
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_ok_state ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_baremetal_admin ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_custom_error
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_custom_error ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply_unique_with_existing
+ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply_unique_with_existing ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_matching_ib
+ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_matching_ib ... ok
+ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_cache_active_introspection
+ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_cache_active_introspection ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_no_role
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_no_role ... ok
+   ERROR [ironic_inspector.utils] Node state mismatch detected between the DB and the cached node_info object
+   ERROR [ironic_inspector.utils] Node 34d266a3-95e7-4b3f-8bdc-08004337b732 was not found in Ironic
+ WARNING [ironic_inspector.process] [node: 34d266a3-95e7-4b3f-8bdc-08004337b732 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_validate
+ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_validate ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_custom_spacing
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_custom_spacing ... ok
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_race_condition
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_race_condition ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_no_interfaces
+ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_no_interfaces ... ok
+ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_ironic
+ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_ironic ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+   ERROR [ironic_inspector.pxe_filter.base] Interface eth0 is not Ethernet Over InfiniBand; Skipping ...
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+   ERROR [ironic_inspector.utils] Access denied by policy
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_disabled
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_disabled ... ok
+ironic_inspector.test.unit.test_keystone.KeystoneTest.test_add_auth_options
+ironic_inspector.test.unit.test_keystone.KeystoneTest.test_add_auth_options ... ok
+ironic_inspector.test.unit.test_process.TestProcess.test_ok
+ironic_inspector.test.unit.test_process.TestProcess.test_ok ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_open_no_such_file
+ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_open_no_such_file ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_baremetal_observer ... ok
+   ERROR [ironic_inspector.process] Unexpected exception during processing
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 243, in process
+    result = _process_node(node_info, node, introspection_data)
+             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "<string>", line 3, in _process_node
+  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
+    return self._mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
+    return self._execute_mock_call(*args, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
+    raise effect
+RuntimeError: boom
+ WARNING [ironic_inspector.process] [node: b41224c0-e24a-42a3-8f01-8684a55b28fb state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
+   ERROR [ironic_inspector.utils] [node: b41224c0-e24a-42a3-8f01-8684a55b28fb state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] Unexpected exception RuntimeError during processing: boom
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_reader ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_invalid_state
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_invalid_state ... ok
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_not_in_db
+ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_not_in_db ... ok
+ironic_inspector.test.unit.test_keystone.KeystoneTest.test_get_session
+ironic_inspector.test.unit.test_keystone.KeystoneTest.test_get_session ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_process.TestProcess.test_unexpected_exception
+ironic_inspector.test.unit.test_process.TestProcess.test_unexpected_exception ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_hook_loadable_by_name
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_hook_loadable_by_name ... ok
+ironic_inspector.test.unit.test_keystone.KeystoneTest.test_register_auth_opts
+ironic_inspector.test.unit.test_keystone.KeystoneTest.test_register_auth_opts ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_init_filter
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_init_filter ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ WARNING [stevedore.named] Could not load foo
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ WARNING [ironic_inspector.plugins.standard] malformed or missing CPU information: {'count': 'none'}
+   ERROR [ironic_inspector.utils] Invalid data: expected a JSON object, got None
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_sync
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_sync ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestDriverManagerLoading.test_invalid_filter_driver
+ironic_inspector.test.unit.test_pxe_filter.TestDriverManagerLoading.test_invalid_filter_driver ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_missing_cpu
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_missing_cpu ... ok
+ WARNING [ironic_inspector.plugins.standard] malformed or missing memory information: {'total': 42}; introspection requires physical memory size from dmidecode
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoOptions.test_get
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoOptions.test_get ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_unprocessed_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_unprocessed_baremetal_admin ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_tear_down_filter
+ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_tear_down_filter ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_missing_memory
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_missing_memory ... ok
+ WARNING [ironic_inspector.plugins.standard] malformed or missing CPU information: {}
+ WARNING [ironic_inspector.plugins.standard] malformed or missing memory information: {}; introspection requires physical memory size from dmidecode
+ WARNING [ironic_inspector.plugins.standard] malformed or missing CPU information: None
+ WARNING [ironic_inspector.plugins.standard] malformed or missing memory information: None; introspection requires physical memory size from dmidecode
+ironic_inspector.test.unit.test_pxe_filter.TestDriverManagerLoading.test_pxe_filter_driver_loads
+ironic_inspector.test.unit.test_pxe_filter.TestDriverManagerLoading.test_pxe_filter_driver_loads ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoOptions.test_set
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoOptions.test_set ... ok
    ERROR [ironic_inspector.main] Internal server error
 Traceback (most recent call last):
   File "/usr/lib/python3/dist-packages/werkzeug/wrappers/request.py", line 586, in get_json
@@ -3751,752 +4897,200 @@
   File "/usr/lib/python3/dist-packages/flask/wrappers.py", line 133, in on_json_loading_failed
     raise BadRequest() from e
 werkzeug.exceptions.BadRequest: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_no_data
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_no_data ... ok
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_expected_data
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_expected_data ... ok
    ERROR [ironic_inspector.utils] Access denied by policy
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_admin ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_no_overwrite
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_no_overwrite ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_unprocessed_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_data_unprocessed_baremetal_observer ... ok
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_interface_not_in_all_interfaces
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_interface_not_in_all_interfaces ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_ok
+ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_ok ... ok
    ERROR [ironic_inspector.utils] Access denied by policy
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Rule foo was not found
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value ... ok
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_interface_not_in_ironic
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_interface_not_in_ironic ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Access denied by policy
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_member ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_invalid_chassis_id_subtype
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_invalid_chassis_id_subtype ... ok
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_admin
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_admin ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_introspect_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_introspect_baremetal_admin ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Rule foo was not found
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_invalid_port_id_subtype
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_invalid_port_id_subtype ... ok
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_basic
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_basic ... ok
    ERROR [ironic_inspector.utils] Access denied by policy
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ WARNING [ironic_inspector.plugins.local_link_connection] [node: d17b8245-5ce4-4f93-8d71-660ae1e10d22] No LLDP Data found for interface 11:11:11:11:11:11
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_lldp_none
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_lldp_none ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_reader ... ok
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_disabled
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_disabled ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+   ERROR [ironic_inspector.utils] [unidentified node] Hardware inventory is empty or missing
    ERROR [ironic_inspector.utils] Access denied by policy
+   ERROR [ironic_inspector.utils] Authentication required
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_no_inventory
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_no_inventory ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_introspect_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_introspect_baremetal_observer ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_denylist_deny_unknown
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__configure_removedlist_denylist_deny_unknown ... ok
-ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_denylist_ipv4
-ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_denylist_ipv4 ... ok
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_no_actions
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_no_actions ... ok
-ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_denylist_ipv6
-ironic_inspector.test.unit.test_iptables.TestIptablesDriver.test_sync_with_denylist_ipv6 ... ok
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_intospect_failed
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_intospect_failed ... ok
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_only_actions
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_only_actions ... ok
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_scope
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_scope ... ok
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect ... ok
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_can_manage_boot_false
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_can_manage_boot_false ... ok
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_can_manage_boot_false_failed
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_can_manage_boot_false_failed ... ok
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_failed_authentication
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_failed_authentication WARNING [ironic_inspector.introspect] [node: <Mock id='140451755183504'>] Failed to sync the PXE filter: Boom
- ... ok
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_no_manage_boot
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_no_manage_boot ... ok
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_wrong_manage_boot
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_introspect_wrong_manage_boot ... ok
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_root_endpoint_with_prefix
-ironic_inspector.test.unit.test_main.TestApiIntrospect.test_root_endpoint_with_prefix ... ok
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_with_conditions
-ironic_inspector.test.unit.test_rules.TestCreateRule.test_with_conditions ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_baremetal_admin ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_baremetal_observer ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_system_no_role
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_system_no_role ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_create_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_create_baremetal_admin ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_create_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_create_baremetal_observer ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_all_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_all_baremetal_admin ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_all_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_all_baremetal_observer ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_baremetal_admin ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_baremetal_observer ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_get_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_get_baremetal_admin ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_get_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_get_baremetal_observer ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_list_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_list_baremetal_admin ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_list_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_list_baremetal_observer ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_status_baremetal_admin
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_status_baremetal_admin ... ok
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_status_baremetal_observer
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_status_baremetal_observer ... ok
-ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_no_retries_on_python_error
-ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_no_retries_on_python_error ... ok
-ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_no_retries_on_success
-ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_no_retries_on_success ... ok
-ironic_inspector.test.unit.test_introspect.TestAbort.test_firewall_update_exception
-ironic_inspector.test.unit.test_introspect.TestAbort.test_firewall_update_exception ... ok
-ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_retries_on_ironicclient_error
-ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_retries_on_ironicclient_error ... ok
-ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_retries_on_ironicclient_error_with_failure
-ironic_inspector.test.unit.test_common_ironic.TestCallWithRetries.test_retries_on_ironicclient_error_with_failure ... ok
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test__create_group
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test__create_group ... ok
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_lock
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_lock ... ok
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_members
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_members ... ok
-ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version
-ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ...    ERROR [ironic_inspector.utils] Oops!
-   ERROR [ironic_inspector.utils] Oops!
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] boom
-skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect"
-ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice
-ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect"
-ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_walk_versions
-ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect"
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_custom_exc_fsm_event
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_custom_exc_fsm_event ... ok
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_ensure_start_on_error
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_ensure_start_on_error ... ok
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_error_fsm_event
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_error_fsm_event ... ok
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_members_no_such_group
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_get_members_no_such_group ... ok
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_invalid_state
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_invalid_state ... ok
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_ok_state
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_ok_state ... ok
-ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test__should_enable_dhcp_false
-ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test__should_enable_dhcp_false ... ok
-ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test_introspection_active
-ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test_introspection_active ... ok
-ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test_node_not_found_hook_set
-ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test_node_not_found_hook_set ... ok
-ironic_inspector.test.unit.test_main.TestApiVersions.test_404_unexpected
-ironic_inspector.test.unit.test_main.TestApiVersions.test_404_unexpected ... ok
-ironic_inspector.test.unit.test_main.TestApiVersions.test_request_correct_version
-ironic_inspector.test.unit.test_main.TestApiVersions.test_request_correct_version ... ok
-ironic_inspector.test.unit.test_main.TestApiVersions.test_request_latest_version
-ironic_inspector.test.unit.test_main.TestApiVersions.test_request_latest_version ... ok
-ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_do_introspect
-ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_do_introspect ... ok
-ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_do_introspect_with_manage_boot
-ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_do_introspect_with_manage_boot ... ok
-ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_introspect_failed
-ironic_inspector.test.unit.test_manager.TestManagerIntrospect.test_introspect_failed ... ok
-   ERROR [ironic_inspector.utils] Coordinator should be started before executing coordination actions.
-   ERROR [ironic_inspector.utils] Coordinator should be started before executing coordination actions.
-   ERROR [ironic_inspector.utils] Coordinator should be started before executing coordination actions.
-   ERROR [ironic_inspector.utils] Coordinator should be started before executing coordination actions.
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_invalid_state
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_invalid_state ... ok
-ironic_inspector.test.unit.test_common_ironic.TestCapabilities.test_capabilities_to_dict
-ironic_inspector.test.unit.test_common_ironic.TestCapabilities.test_capabilities_to_dict ... ok
-ironic_inspector.test.unit.test_common_ironic.TestCapabilities.test_dict_to_capabilities
-ironic_inspector.test.unit.test_common_ironic.TestCapabilities.test_dict_to_capabilities ... ok
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_join_group
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_join_group ... ok
-ironic_inspector.test.unit.test_introspect.TestAbort.test_no_manage_boot
-ironic_inspector.test.unit.test_introspect.TestAbort.test_no_manage_boot ... ok
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_join_group_not_exist
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_join_group_not_exist ... ok
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_leave_group
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_leave_group ... ok
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_start
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_start ... ok
-   ERROR [ironic_inspector.utils] Node state mismatch detected between the DB and the cached node_info object
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_race_condition
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_in_db_race_condition ... ok
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_stop
-ironic_inspector.test.unit.test_coordination.TestCoordinator.test_stop ... ok
-   ERROR [ironic_inspector.utils] Configuration error: [pxe_filter]deny_unknown_macs isenabled and [processing]node_not_found_hook is enabled.These options cannot both be enabled simultaneously.
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestConfiguration.test_deny_unknown_macs_and_node_not_found_hook_bad
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestConfiguration.test_deny_unknown_macs_and_node_not_found_hook_bad ... ok
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_not_in_db
-ironic_inspector.test.unit.test_node_cache.TestStartIntrospection.test_node_not_in_db ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute ... ok
-   ERROR [ironic_inspector.utils] [unidentified node] Port 11:22:33:44:55:66 already exists, uuid: <MagicMock name='mock.id' id='139699632505872'>
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__denylist_mac
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__denylist_mac ... ok
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_existing_mac
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_existing_mac ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute_empty
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute_empty ... ok
- WARNING [ironic_inspector.plugins.discovery] No suitable interfaces found for discovered node. Check that validate_interfaces hook is listed in [processing]default_processing_hooks config option
-   ERROR [ironic_inspector.utils] [unidentified node] Node <MagicMock name='mock.id' id='139699621180688'> already has BMC address 1.2.3.4
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__denylist_unknown_hosts
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__denylist_unknown_hosts ... ok
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_existing_node
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_existing_node ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute_ignoring_errors
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.Test_Execute.test__execute_ignoring_errors ... ok
-ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_acquire
-ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_acquire ... ok
-ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_acquire_non_blocking
-ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_acquire_non_blocking ... ok
-ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_release
-ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_release ... ok
-ironic_inspector.test.unit.test_plugins_introspection_data.TestSwiftStore.test_get_data
-ironic_inspector.test.unit.test_plugins_introspection_data.TestSwiftStore.test_get_data ... ok
-ironic_inspector.test.unit.test_plugins_introspection_data.TestSwiftStore.test_store_data
-ironic_inspector.test.unit.test_plugins_introspection_data.TestSwiftStore.test_store_data ... ok
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_expected_data
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_expected_data ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_allowlist
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_allowlist ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_denylist
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_denylist ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_no_allowlist
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_no_allowlist ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_no_denylist
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__get_no_denylist ... ok
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_interface_not_in_all_interfaces
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_interface_not_in_all_interfaces ... ok
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_interface_not_in_ironic
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_interface_not_in_ironic ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__macs_unknown_hosts_deny_unknown
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__macs_unknown_hosts_deny_unknown ... ok
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_invalid_chassis_id_subtype
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_invalid_chassis_id_subtype ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__purge_dhcp_hostsdir
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__purge_dhcp_hostsdir ... ok
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_invalid_port_id_subtype
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_invalid_port_id_subtype ... ok
- WARNING [ironic_inspector.plugins.local_link_connection] [node: b78d7d87-9f23-43cf-a219-b52931d3acdd] No LLDP Data found for interface 11:11:11:11:11:11
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_lldp_none
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_lldp_none ... ok
-   ERROR [ironic_inspector.utils] [unidentified node] Hardware inventory is empty or missing
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_no_inventory
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_no_inventory ... ok
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_invalid
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_invalid ... ok
+ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_any
+ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_any ... ok
+ironic_inspector.test.unit.test_rules.TestGetRule.test_get
+ironic_inspector.test.unit.test_rules.TestGetRule.test_get ... ok
 ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_no_overwrite
 ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_no_overwrite ... ok
-ironic_inspector.test.unit.test_main.TestTopic.test_get_client_compat_non_standalone
-ironic_inspector.test.unit.test_main.TestTopic.test_get_client_compat_non_standalone ... ok
- WARNING [ironic_inspector.plugins.discovery] No suitable interfaces found for discovered node. Check that validate_interfaces hook is listed in [processing]default_processing_hooks config option
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_patch_port_exception
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_patch_port_exception ... ok
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_new_mac
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_new_mac ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
- WARNING [ironic_inspector.plugins.discovery] No suitable interfaces found for discovered node. Check that validate_interfaces hook is listed in [processing]default_processing_hooks config option
-ironic_inspector.test.unit.test_main.TestApiVersions.test_request_unsupported_version
-ironic_inspector.test.unit.test_main.TestApiVersions.test_request_unsupported_version ... ok
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_port_id_subtype_mac
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_port_id_subtype_mac ... ok
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_new_node
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test__check_existing_nodes_new_node ... ok
-ironic_inspector.test.unit.test_main.TestTopic.test_get_client_compat_standalone
-ironic_inspector.test.unit.test_main.TestTopic.test_get_client_compat_standalone ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test_disabled__purge_dhcp_hostsdir
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test_disabled__purge_dhcp_hostsdir ... ok
-ironic_inspector.test.unit.test_locking.TestGetLock.test_get_lock_internal
-ironic_inspector.test.unit.test_locking.TestGetLock.test_get_lock_internal ... ok
-ironic_inspector.test.unit.test_locking.TestGetLock.test_get_lock_tooz
-ironic_inspector.test.unit.test_locking.TestGetLock.test_get_lock_tooz ... ok
-ironic_inspector.test.unit.test_locking.TestToozLock.test_acquire
-ironic_inspector.test.unit.test_locking.TestToozLock.test_acquire ... ok
-ironic_inspector.test.unit.test_locking.TestToozLock.test_context
-ironic_inspector.test.unit.test_locking.TestToozLock.test_context ... ok
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_chassis_id_not_mac
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_chassis_id_not_mac ... ok
-ironic_inspector.test.unit.test_locking.TestToozLock.test_release
-ironic_inspector.test.unit.test_locking.TestToozLock.test_release ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_available
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_available ... ok
-ironic_inspector.test.unit.test_main.TestApiGetData.test_get_introspection_data_from_db
-ironic_inspector.test.unit.test_main.TestApiGetData.test_get_introspection_data_from_db ... ok
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_chassis_only
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_chassis_only ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_port_only
-ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_port_only ... ok
-ironic_inspector.test.unit.test_main.TestApiGetData.test_get_introspection_data_from_swift
-ironic_inspector.test.unit.test_main.TestApiGetData.test_get_introspection_data_from_swift ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update ... ok
-ironic_inspector.test.unit.test_main.TestApiGetData.test_get_unprocessed_data_from_swift
-ironic_inspector.test.unit.test_main.TestApiGetData.test_get_unprocessed_data_from_swift ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Introspection data storage is disabled
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update_no_match
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update_no_match ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiGetData.test_introspection_data_not_stored
-ironic_inspector.test.unit.test_main.TestApiGetData.test_introspection_data_not_stored ... ok
-   ERROR [ironic_inspector.utils] Introspection data storage is disabled
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update_no_pci_info_from_ipa
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update_no_pci_info_from_ipa ... ok
-ironic_inspector.test.unit.test_main.TestApiGetData.test_unprocessed_data_not_stored
-ironic_inspector.test.unit.test_main.TestApiGetData.test_unprocessed_data_not_stored ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry ... ok
-ironic_inspector.test.unit.test_main.TestApiGetData.test_with_name
-ironic_inspector.test.unit.test_main.TestApiGetData.test_with_name ... ok
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_invalid_json
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_invalid_json ... ok
-   ERROR [ironic_inspector.utils] [node: <Mock id='140451769228752'>] Node is locked, please, retry later
-ironic_inspector.test.unit.test_introspect.TestAbort.test_node_locked
-ironic_inspector.test.unit.test_introspect.TestAbort.test_node_locked ... ok
-   ERROR [ironic_inspector.utils] Not found.
-ironic_inspector.test.unit.test_introspect.TestAbort.test_node_not_found
-ironic_inspector.test.unit.test_introspect.TestAbort.test_node_not_found ... ok
- WARNING [ironic_inspector.introspect] [node: <Mock id='140451752692176'>] Failed to power off node: BadaBoom
-ironic_inspector.test.unit.test_introspect.TestAbort.test_node_power_off_exception
-ironic_inspector.test.unit.test_introspect.TestAbort.test_node_power_off_exception ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_admin ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_admin ... ok
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_middleware
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_middleware ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_introspect.TestAbort.test_ok
-ironic_inspector.test.unit.test_introspect.TestAbort.test_ok ...  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ok
-ironic_inspector.test.unit.test_main.TestPlugins.test_hook
-ironic_inspector.test.unit.test_main.TestPlugins.test_hook ... ok
-ironic_inspector.test.unit.test_main.TestPlugins.test_manager_is_cached
-ironic_inspector.test.unit.test_main.TestPlugins.test_manager_is_cached ... ok
-ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic
-ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_no_timeout
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_no_timeout ... ok
- WARNING [ironic_inspector.main] Found invalid member b'this_should_not_happen'
-   ERROR [ironic_inspector.utils] No available conductor service
-ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_host_bypass_invalid
-ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_host_bypass_invalid ... ok
+ironic_inspector.test.unit.test_rules.TestCheckConditionsSchemePath.test_conditions_data_path
+ironic_inspector.test.unit.test_rules.TestCheckConditionsSchemePath.test_conditions_data_path ... ok
    ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_member ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_ok ... ok
-   ERROR [ironic_inspector.node_cache] Introspection for nodes ['c2e2f4ca-47ba-4cda-959e-9fd77859b498'] has timed out
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_patch_port_exception
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_patch_port_exception ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_list_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_list_baremetal_admin ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_not_admin
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_not_admin ... ok
    ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_abort_system_reader ... ok
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_port_id_subtype_mac
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_port_id_subtype_mac ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Introspection data storage is disabled
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_admin ... ok
- WARNING [ironic_inspector.plugins.discovery] No BMC address provided, discovered node will be created without ipmi address
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_default
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_default ... ok
-ironic_inspector.test.unit.test_main.TestApiVersions.test_root_endpoint
-ironic_inspector.test.unit.test_main.TestApiVersions.test_root_endpoint ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_member ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_public_api
+ironic_inspector.test.unit.test_utils.TestCheckAuth.test_public_api ... ok
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_chassis_id_not_mac
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_chassis_id_not_mac ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_list_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_list_baremetal_observer ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_member ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
    ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_system_reader ... ok
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_available
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_available ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Invalid data: expected a JSON object, got None
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_admin ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_reader ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_chassis_only
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_chassis_only ... ok
+ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete
+ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_baremetal_admin ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_member ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_port_only
+ironic_inspector.test.unit.test_plugins_local_link_connection.TestGenericLocalLinkConnectionHook.test_processed_data_port_only ... ok
+   ERROR [ironic_inspector.utils] Rule foo was not found
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_data_unprocessed_system_reader ... ok
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_dict
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_dict ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_admin ... ok
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_loadable_by_name
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_loadable_by_name ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.node_cache] Introspection for nodes ['baa2cc58-57d9-4e64-b876-7f00388e4e80'] has timed out
-   ERROR [ironic_inspector.node_cache] [node: baa2cc58-57d9-4e64-b876-7f00388e4e80 state starting] Something went wrong, timeout occurred while introspection in "starting" state
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_admin ... ok
- WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_invalid_keys
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_invalid_keys ... ok
-   ERROR [ironic_inspector.node_cache] Introspection for nodes ['baa2cc58-57d9-4e64-b876-7f00388e4e80'] has timed out
-   ERROR [ironic_inspector.node_cache] [node: baa2cc58-57d9-4e64-b876-7f00388e4e80 state enrolling] Something went wrong, timeout occurred while introspection in "enrolling" state
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_baremetal_observer ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
-   ERROR [ironic_inspector.node_cache] Introspection for nodes ['baa2cc58-57d9-4e64-b876-7f00388e4e80'] has timed out
-   ERROR [ironic_inspector.node_cache] [node: baa2cc58-57d9-4e64-b876-7f00388e4e80 state processing] Something went wrong, timeout occurred while introspection in "processing" state
- WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
-   ERROR [ironic_inspector.node_cache] Introspection for nodes ['baa2cc58-57d9-4e64-b876-7f00388e4e80'] has timed out
-   ERROR [ironic_inspector.node_cache] [node: baa2cc58-57d9-4e64-b876-7f00388e4e80 state reapplying] Something went wrong, timeout occurred while introspection in "reapplying" state
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_no_entries
-ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_no_entries ... ok
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_local_gb_not_changed
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_local_gb_not_changed ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
- WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout_active_state
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout_active_state ... ok
-   ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_member ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_contains
-ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_contains ... ok
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-   ERROR [ironic_inspector.node_cache] Introspection for nodes ['a46bef4c-b827-4d82-a280-c7676c32b46d'] has timed out
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_matches
-ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_matches ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout_lock_failed
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheCleanUp.test_timeout_lock_failed ... ok
    ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_validate
-ironic_inspector.test.unit.test_plugins_rules.TestReConditions.test_validate ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_introspect_system_reader ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_get
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_get ... ok
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test___init__
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test___init__ ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_get_missing_uuid
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_get_missing_uuid ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_automaton_error
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_automaton_error ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_admin ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_set
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_set ... ok
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_missing_local_gb
+ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetection.test_missing_local_gb ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestDriver.test_driver
+ironic_inspector.test.unit.test_pxe_filter.TestDriver.test_driver ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_member ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_system_no_role
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_system_no_role ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_reset_on_error
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_reset_on_error ... ok
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] [node: 17420481-b8a5-4af5-a8be-1e915a1044bc state starting] Node state mismatch detected between the DB and the cached node_info object
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_member ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_set_race
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_set_race ... ok
-   ERROR [ironic_inspector.pxe_filter.base] The PXE filter TestFilter, state=<MagicMock name='fsm.current_state' id='140572363254928'> encountered an exception: Oops!; resetting the filter
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/pxe_filter/base.py", line 151, in fsm_reset_on_error
-    yield self.fsm
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/test/unit/test_pxe_filter.py", line 186, in fun
-    raise MyError('Oops!')
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_reset_on_error_ctx_custom_error.<locals>.MyError: Oops!
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_reset_on_error_ctx_custom_error
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterFsmPrecautions.test_fsm_reset_on_error_ctx_custom_error ... ok
-   ERROR [ironic_inspector.utils] [unidentified node] boom
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [ironic_inspector.plugins.discovery] No BMC address provided, discovered node will be created without ipmi address
-ironic_inspector.test.unit.test_plugins_rules.TestFailAction.test_apply
-ironic_inspector.test.unit.test_plugins_rules.TestFailAction.test_apply ... ok
-ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_migrate_up
-ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_migrate_up ... ok
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
 ironic_inspector.test.unit.test_pxe_filter.TestDriverReset.test_reset
 ironic_inspector.test.unit.test_pxe_filter.TestDriverReset.test_reset ... ok
-ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_host_with_domain
-ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_host_with_domain ... ok
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_fields
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_fields ... ok
-   ERROR [ironic_inspector.utils] No available conductor service
-ironic_inspector.test.unit.test_main.TestApiVersions.test_usual_requests
-ironic_inspector.test.unit.test_main.TestApiVersions.test_usual_requests ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestFailAction.test_validate
-ironic_inspector.test.unit.test_plugins_rules.TestFailAction.test_validate ... ok
-ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_migrate_up_with_data
-ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_migrate_up_with_data ... ok
- WARNING [ironic_inspector.plugins.discovery] No BMC address provided, discovered node will be created without ipmi address
- WARNING [ironic_inspector.plugins.rules] [node: 99cf34ed-019e-4678-baf4-9dff8b8cb929] Not passing reset_interfaces to Ironic, since  API 1.46 and/or ironicclient >= 2.5.0 are not available
- WARNING [ironic_inspector.plugins.rules] [node: 99cf34ed-019e-4678-baf4-9dff8b8cb929] Not passing reset_interfaces to Ironic, since  API 1.46 and/or ironicclient >= 2.5.0 are not available
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Configuration error: add_ports set to disabled and keep_ports set to added. Please change keep_ports to all.
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Version v-1 not found.
-   ERROR [ironic_inspector.plugins.standard] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Malformed interface record: {'mac_address': '11:11:11:11:11:11', 'ipv4_address': '1.1.1.1'}
-   ERROR [ironic_inspector.plugins.standard] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Malformed interface record: {}
-   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No interfaces supplied by the ramdisk
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] [unidentified node] Hardware inventory is empty or missing
-   ERROR [ironic_inspector.utils] [unidentified node] Hardware inventory is empty or missing
-   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No network interfaces provided in the inventory
-   ERROR [ironic_inspector.utils] Locked.
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Not Found.
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_no_member
-ironic_inspector.test.unit.test_main.TestTopic.test_get_random_topic_no_member ... ok
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_ipmi_address
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_ipmi_address ... ok
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_ipmi_v6address
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_ipmi_v6address ... ok
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_non_default_driver
-ironic_inspector.test.unit.test_plugins_discovery.TestEnrollNodeNotFoundHook.test_enroll_with_non_default_driver ... ok
-ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_not_in_edeploy_format
-ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_not_in_edeploy_format ... ok
-ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_not_in_edeploy_format_strict_mode
-ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_not_in_edeploy_format_strict_mode ... ok
-ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_recieved
-ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_recieved ... ok
-ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_recieved_with_errors
-ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_data_recieved_with_errors ... ok
-ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_no_data_recieved
-ironic_inspector.test.unit.test_plugins_extra_hardware.TestExtraHardware.test_no_data_recieved ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply
-ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver
-ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver_no_reset_interfaces
-ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver_no_reset_interfaces ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver_not_supported
-ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_apply_driver_not_supported ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_validate
-ironic_inspector.test.unit.test_plugins_rules.TestSetAttributeAction.test_validate ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_all
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_all ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_disabled
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_disabled ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_disabled_bad_conf
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_disabled_bad_conf ... ok
-ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint
-ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_interfaces_with_ipv6_addresses_only
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_interfaces_with_ipv6_addresses_only ... ok
-ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint_invalid
-ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint_invalid ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_malformed_interfaces
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_malformed_interfaces ... ok
-ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint_with_slash
-ironic_inspector.test.unit.test_main.TestApiVersions.test_version_endpoint_with_slash ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_no_interfaces
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_no_interfaces ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_active
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_active ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_list_system_reader ... ok
-ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_failed
-ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_failed ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_admin ... ok
-ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_node_not_found
-ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_node_not_found ... ok
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_ok
-ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_ok ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_member ... ok
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-   ERROR [ironic_inspector.utils] Boom.
-   ERROR [ironic_inspector.utils] Introspection for node 73a20914-ba3d-4f49-bc96-26be6497e363 already finished on 2023-05-03 01:23:10.051546
-ironic_inspector.test.unit.test_manager.TestManagerContinue.test_continue_failed
-ironic_inspector.test.unit.test_manager.TestManagerContinue.test_continue_failed ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestDriver.test_driver
-ironic_inspector.test.unit.test_pxe_filter.TestDriver.test_driver ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe ... ok
-ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_walk_versions_all_default
-ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_walk_versions_all_default ... ok
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_already_finished
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_already_finished ... ok
-ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_no_scope
-ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_no_scope ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_mac_format
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_mac_format ... ok
-ironic_inspector.test.unit.test_manager.TestManagerContinue.test_continue_ok
-ironic_inspector.test.unit.test_manager.TestManagerContinue.test_continue_ok ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_bmc
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_bmc ... ok
- WARNING [ironic_inspector.plugins.standard] No boot interface provided in the introspection data, will add all ports with IP addresses
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_no_role
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_no_role ... ok
-   ERROR [ironic_inspector.utils] Oops
-ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_walk_versions_all_false
-ironic_inspector.test.unit.test_migrations.TestWalkVersions.test_walk_versions_all_false ... ok
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_scope_1
-ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_scope_1 ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_no_boot_interface
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_no_boot_interface ... ok
-   ERROR [ironic_inspector.utils] [node: MAC aa:bb:cc:dd:ee:ff BMC 1.2.3.4] No suitable interfaces found in {'eth1': {'ip': '1.2.1.2', 'mac': '11:22:33:44:55:66', 'client_id': None, 'pxe': False}, 'eth2': {'ip': None, 'mac': '12:12:21:12:21:12', 'client_id': None, 'pxe': False}, 'eth3': {'ip': '1.2.1.1', 'mac': '66:55:44:33:22:11', 'client_id': None, 'pxe': False}, 'ib0': {'ip': '1.2.1.3', 'mac': '7c:fe:90:29:26:52', 'client_id': 'ff:00:00:00:00:00:02:00:00:02:c9:00:7c:fe:90:03:00:29:26:52', 'pxe': False}}
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_generic_error
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_generic_error ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_both
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_both ... ok
-   ERROR [ironic_inspector.utils] Could not find node c172472d-28ba-45f7-a1d7-4fffb92b3f2e in introspection cache, probably it's not on introspection now
-   ERROR [ironic_inspector.utils] The store is empty
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test__delete_node
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test__delete_node ... ok
-ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_scope_2
-ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_scope_2 ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_not_found
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_not_found ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_inconsistency
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_inconsistency ... ok
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_get_introspection_data_error
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_get_introspection_data_error ... ok
- WARNING [ironic_inspector.plugins.standard] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] MAC foobar for interface em4 is not valid, skipping
-   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No suitable interfaces found in {'lo': {'ip': '1.1.1.1', 'mac': '11:11:11:11:11:11', 'client_id': None, 'pxe': False}, 'em1': {'ip': '127.0.0.1', 'mac': '22:22:22:22:22:22', 'client_id': None, 'pxe': False}}
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test__list_node_uuids
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test__list_node_uuids ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_skipped_interfaces
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_skipped_interfaces ... ok
-   ERROR [ironic_inspector.utils] Multiple nodes match the same number of attributes {'mac': ['11:22:33:44:55:66', '00:00:00:00:00:00']}: ['772b7cf8-d03d-4c9a-a0b4-a966049272a9', 'uuid2']
- WARNING [ironic_inspector.node_cache] Node 9f18958f-0e87-49f5-b402-30378e403dae was deleted from Ironic, dropping from Ironic Inspector database
-   ERROR [ironic_inspector.utils] Multiple nodes match the same number of attributes {'bmc_address': '1.2.3.4'}: ['ce093d61-31a7-494c-b140-732e867be702', '673c1e56-ea4e-4560-b37b-8f607db2675d']
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_input_filtering
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_input_filtering ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_root_system_reader ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_active_macs
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_active_macs ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute_same_name
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute_same_name ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute_same_value
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_attribute_same_value ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_node
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_add_node ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs_multiple_found
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs_multiple_found ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_attributes
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_attributes ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs_not_found
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_macs_not_found ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_delete_nodes_not_in_list
-ironic_inspector.test.unit.test_node_cache.TestNodeCache.test_delete_nodes_not_in_list ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_no_data
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_no_data ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetByPath.test_get_by_path
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetByPath.test_get_by_path ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply
-ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_same_bmc_different_macs
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_same_bmc_different_macs ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply_non_empty
-ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply_non_empty ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_same_bmc_raises
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheFind.test_same_bmc_raises ... ok
+   ERROR [ironic_inspector.utils] Access denied by policy
+ironic_inspector.test.unit.test_rules.TestCheckConditionsSchemePath.test_conditions_node_path
+ironic_inspector.test.unit.test_rules.TestCheckConditionsSchemePath.test_conditions_node_path ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_reader ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply_unique_with_existing
-ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_apply_unique_with_existing ... ok
-   ERROR [ironic_inspector.utils] Locked.
-ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_validate
-ironic_inspector.test.unit.test_plugins_rules.TestExtendAttributeAction.test_validate ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_error
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_error ... ok
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_always_store_logs
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_always_store_logs ... ok
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_admin
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_admin ... ok
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_node_locked
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_node_locked ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_release_lock
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_release_lock ... ok
+ironic_inspector.test.unit.test_utils.TestIsoTimestamp.test_none
+ironic_inspector.test.unit.test_utils.TestIsoTimestamp.test_none ... ok
+ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_default
+ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_default ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Ramdisk reported error: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook ramdisk_error failed, delaying error report until node look up: Ramdisk reported error: boom
-   ERROR [ironic_inspector.utils] [node: fd2bacbd-1a62-4741-9349-85b0968e91d9 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
-Preprocessing hook ramdisk_error: Ramdisk reported error: boom
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_basic
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_basic ... ok
-   ERROR [ironic_inspector.utils] Not found.
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_node_not_found
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_node_not_found ... ok
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_directory_is_created
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_directory_is_created ... ok
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_disabled
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_disabled ... ok
-   ERROR [ironic_inspector.utils] Authentication required
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_success
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoFinished.test_success ... ok
+ironic_inspector.test.unit.test_rules.TestGetRule.test_get_all
+ironic_inspector.test.unit.test_rules.TestGetRule.test_get_all ... ok
    ERROR [ironic_inspector.main] Internal server error
 Traceback (most recent call last):
   File "/usr/lib/python3/dist-packages/werkzeug/wrappers/request.py", line 586, in get_json
@@ -4543,562 +5137,257 @@
   File "/usr/lib/python3/dist-packages/flask/wrappers.py", line 133, in on_json_loading_failed
     raise BadRequest() from e
 werkzeug.exceptions.BadRequest: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok ... ok
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_invalid
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_invalid ... ok
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_failure_to_write
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_failure_to_write ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_apply
-ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_apply ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_admin ... ok
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook example failed, delaying error report until node look up: Hook Error
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-Exception: Hook Error
- WARNING [ironic_inspector.process] [node: 6ec5bf35-c8f5-4490-8362-4914bf62ce6a state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] Failed to store logs received from the ramdisk because ramdisk_logs_dir configuration option is not set
-   ERROR [ironic_inspector.utils] [node: 6ec5bf35-c8f5-4490-8362-4914bf62ce6a state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
-Unexpected exception Exception during preprocessing in hook example: Hook Error
+ironic_inspector.test.unit.test_utils.TestIsoTimestamp.test_ok
+ironic_inspector.test.unit.test_utils.TestIsoTimestamp.test_ok ... ok
+   ERROR [ironic_inspector.utils] Rule foo was not found
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_create_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_create_baremetal_admin ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_admin ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok_db
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok_db ... ok
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_middleware
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_middleware ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_apply_with_existing
-ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_apply_with_existing ... ok
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_logs_disabled
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_logs_disabled ... ok
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok_swift
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_ok_swift ... ok
-   ERROR [ironic_inspector.utils] Access denied by policy
-   ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_validate
-ironic_inspector.test.unit.test_plugins_rules.TestSetCapabilityAction.test_validate ... ok
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_not_admin
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_not_admin ... ok
-   ERROR [ironic_inspector.utils] [node: f1236cfc-95b9-4162-8f56-a399cdc162fd] Node locked, please, try again later
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_no_error_no_logs
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_no_error_no_logs ... ok
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_reapply_with_data
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_reapply_with_data ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_member ... ok
-ironic_inspector.test.unit.test_process.TestReapply.test_locking_failed
-ironic_inspector.test.unit.test_process.TestReapply.test_locking_failed ... ok
-   ERROR [ironic_inspector.utils] boom
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-   ERROR [ironic_inspector.utils] Introspection data storage is disabled
-   ERROR [ironic_inspector.utils] Inspector is not configured to store introspection data. Set the [processing]store_data configuration option to change this.
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_public_api
-ironic_inspector.test.unit.test_utils.TestCheckAuth.test_public_api ... ok
-ironic_inspector.test.unit.test_common_ironic.TestGetClientBase.test_get_client
-ironic_inspector.test.unit.test_common_ironic.TestGetClientBase.test_get_client ... ok
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_store_data_disabled
-ironic_inspector.test.unit.test_manager.TestManagerReapply.test_store_data_disabled ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_process.TestReapply.test_ok
-ironic_inspector.test.unit.test_process.TestReapply.test_ok ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_custom_name
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_custom_name ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
    ERROR [ironic_inspector.utils] Access denied by policy
-   ERROR [ironic_inspector.utils] Node 39bfc689-2d9d-4a5b-9ee6-d3fafb05e284 was not found in Ironic
-ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_broken_dependencies
-ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_broken_dependencies ... ok
-ironic_inspector.test.unit.test_process.TestReapply.test_reapply_with_data
-ironic_inspector.test.unit.test_process.TestReapply.test_reapply_with_data ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_create_system_reader ... ok
-ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_ok
-ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_ok ... ok
+   ERROR [ironic_inspector.utils] Access denied by policy
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_member ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_create_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_create_baremetal_observer ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_find_node_error
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_find_node_error ... ok
-ironic_inspector.test.unit.test_main.TestApiContinue.test_continue
-ironic_inspector.test.unit.test_main.TestApiContinue.test_continue ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] boom
-ironic_inspector.test.unit.test_process.TestUnprocessedData.test_save_unprocessed_data
-ironic_inspector.test.unit.test_process.TestUnprocessedData.test_save_unprocessed_data ... ok
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook example failed, delaying error report until node look up: Hook Error
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-Exception: Hook Error
-   ERROR [ironic_inspector.utils] [node: bff43c43-73fb-4e90-8f53-183b9c6ac53d state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
-Unexpected exception Exception during preprocessing in hook example: Hook Error
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_self_dependency
-ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_self_dependency ... ok
-ironic_inspector.test.unit.test_main.TestApiContinue.test_continue_failed
-ironic_inspector.test.unit.test_main.TestApiContinue.test_continue_failed ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Invalid data: expected a JSON object, got int
-   ERROR [ironic_inspector.utils] Could not connect to the object storage service: An auth plugin is required to determine endpoint URL
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_preprocess_failure
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_preprocess_failure ... ok
-ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_wrong_dependencies_order
-ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_wrong_dependencies_order ... ok
-ironic_inspector.test.unit.test_main.TestApiContinue.test_continue_wrong_type
-ironic_inspector.test.unit.test_main.TestApiContinue.test_continue_wrong_type ... ok
-   ERROR [ironic_inspector.utils] boom
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_admin ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-   ERROR [ironic_inspector.utils] Could not find node de48ad9c-65f6-4668-9414-2823c9db7424 in cache
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_all_match
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_all_match ... ok
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Encountered exception saving unprocessed introspection data for node c5df94e6-32fa-41b0-a367-2f37d7354dfd
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/common/swift.py", line 58, in __init__
-    oslo_conf=CONF).object_store
-                    ^^^^^^^^^^^^
-  File "/usr/lib/python3/dist-packages/openstack/service_description.py", line 87, in __get__
-    proxy = self._make_proxy(instance)
-            ^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3/dist-packages/openstack/service_description.py", line 262, in _make_proxy
-    found_version = temp_adapter.get_api_major_version()
-                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3/dist-packages/keystoneauth1/adapter.py", line 354, in get_api_major_version
-    return self.session.get_api_major_version(auth or self.auth, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 1275, in get_api_major_version
-    auth = self._auth_required(auth, 'determine endpoint URL')
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 1181, in _auth_required
-    raise exceptions.MissingAuthPlugin(msg_fmt % msg)
-keystoneauth1.exceptions.auth_plugins.MissingAuthPlugin: An auth plugin is required to determine endpoint URL
-
-During handling of the above exception, another exception occurred:
-
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 176, in _store_unprocessed_data
-    store_introspection_data(node_uuid, data, processed=False)
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 170, in store_introspection_data
-    ext.save(node_uuid, data, processed)
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/plugins/introspection_data.py", line 88, in save
-    swift_object_name = swift.store_introspection_data(
-                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/common/swift.py", line 128, in store_introspection_data
-    swift_api = SwiftAPI()
-                ^^^^^^^^^^
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/common/swift.py", line 60, in __init__
-    raise utils.Error(_("Could not connect to the object storage "
-ironic_inspector.utils.Error: Could not connect to the object storage service: An auth plugin is required to determine endpoint URL
- WARNING [ironic_inspector.plugins.standard] Using hint {'size': 10} skipping devices: /dev/sdc
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_not_found
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_not_found ... ok
+ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete_all
+ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete_all ... ok
+   ERROR [ironic_inspector.utils] [unidentified node] Invalid formatting variable key provided in value %(val)s: %(e)s
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_process_failure
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_process_failure ... ok
-ironic_inspector.test.unit.test_process.TestUnprocessedData.test_save_unprocessed_data_failure
-ironic_inspector.test.unit.test_process.TestUnprocessedData.test_save_unprocessed_data_failure ... ok
    ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_first_match_on_skip_list_use_second
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_first_match_on_skip_list_use_second ... ok
-   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Ramdisk reported error: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook ramdisk_error failed, delaying error report until node look up: Ramdisk reported error: boom
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_ok ... ok
-   ERROR [ironic_inspector.utils] [node: 44f8bae6-3c11-4e50-9a21-d86b266607a1 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
-Preprocessing hook ramdisk_error: Ramdisk reported error: boom
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_member ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_fail
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_fail ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_reader ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_local_gb_without_spacing
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_local_gb_without_spacing ... ok
- WARNING [ironic_lib.utils] No device found that matches the root device hints {'size': 10}
-   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='140177049555024'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks satisfied root device hints
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_with_name
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_with_name ... ok
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_ramdisk_error
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_ramdisk_error ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_all_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_all_baremetal_admin ... ok
+   ERROR [ironic_inspector.utils] Rule foobar was not found
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_disks
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_disks ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_custom_error
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_custom_error ... ok
-   ERROR [ironic_inspector.process] Unexpected exception during processing
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 243, in process
-    result = _process_node(node_info, node, introspection_data)
-             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "<string>", line 3, in _process_node
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.utils] [node: a49e368c-f179-42e9-87b9-3b723725ac91 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] Unexpected exception RuntimeError during processing: boom
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test__create_port
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test__create_port ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_all_system_reader ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_hints
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_hints ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_custom_spacing
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_custom_spacing ... ok
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports ... ok
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_unexpected_process_failure
-ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_unexpected_process_failure ... ok
+ironic_inspector.test.unit.test_rules.TestGetRule.test_not_found
+ironic_inspector.test.unit.test_rules.TestGetRule.test_not_found ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_hints_no_overwrite
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_hints_no_overwrite ... ok
-   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='140177093766800'> MAC 11:22:33:44:55:66] Hardware inventory is empty or missing
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_disabled
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_disabled ... ok
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports_not_update_pxe
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports_not_update_pxe ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestGetInactiveMacs.test_inactive_port
-ironic_inspector.test.unit.test_pxe_filter.TestGetInactiveMacs.test_inactive_port ... ok
-   ERROR [ironic_inspector.utils] Rule foo was not found
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_inventory
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_no_inventory ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_admin ... ok
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports_with_conflicts
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_create_ports_with_conflicts ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_invalid_state
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_get_periodic_sync_task_invalid_state ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestGetInactiveMacs.test_retry_on_port_list_failure
-ironic_inspector.test.unit.test_pxe_filter.TestGetInactiveMacs.test_retry_on_port_list_failure ... ok
- WARNING [ironic_lib.utils] No device found that matches the root device hints {'size': 10, 'model': 'Model 42'}
-   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='140177043468944'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks satisfied root device hints
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_admin ... ok
+ironic_inspector.test.unit.test_rules.TestCheckConditions.test_fail
+ironic_inspector.test.unit.test_rules.TestCheckConditions.test_fail ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_fails
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_fails ... ok
+   ERROR [ironic_inspector.utils] Access denied by policy
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_all_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_all_baremetal_observer ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_init_filter
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_init_filter ... ok
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
    ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port_by_mac
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port_by_mac ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_member ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_matches
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_matches ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_sync
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_sync ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_member ... ok
- WARNING [ironic_inspector.plugins.standard] Using hint {'size': 10} skipping devices: /dev/sdc
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port_retries
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_delete_port_retries ... ok
- WARNING [ironic_lib.utils] No device found that matches the root device hints {'size': 10}
-   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='140177093853968'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks satisfied root device hints
-ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_reset
-ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_reset ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_tear_down_filter
-ironic_inspector.test.unit.test_pxe_filter.TestBaseFilterInterface.test_tear_down_filter ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_that_matches_on_skip_list
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_one_that_matches_on_skip_list ... ok
+   ERROR [ironic_inspector.utils] Rule foo was not found
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='140177041447120'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks could be found using the root device hints {'size': 'foo'} because they failed to validate. Error: Root device hint "size" is not an integer value. Current value: foo
-   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='140177041447120'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks could be found using the root device hints {'size': None} because they failed to validate. Error: Root device hint "size" is not an integer value. Current value: None
-   ERROR [ironic_inspector.utils] [node: <Mock spec='NodeInfo' id='140177041447120'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] No disks could be found using the root device hints {'size': {}} because they failed to validate. Error: Root device hint "size" is not an integer value. Current value: {}
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_baremetal_admin ... ok
    ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_empty_data
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_empty_data ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_size_invalid
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_size_invalid ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_delete_system_reader ... ok
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_path_with_leading_slash
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_path_with_leading_slash ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_reader ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_no_data
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_no_data ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_size_string
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_size_string ... ok
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+   ERROR [ironic_inspector.utils] Access denied by policy
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_delete_baremetal_observer ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
- WARNING [ironic_inspector.plugins.standard] [node: <Mock spec='NodeInfo' id='140177043246864'> MAC 11:22:33:44:55:66 BMC 1.2.3.4] The requested root disk is too small (smaller than 1 GiB) or its size cannot be detected: {'model': 'Floppy', 'size': 0, 'name': '/dev/sdf'}
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_path_wo_leading_slash
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_path_wo_leading_slash ... ok
-ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_start
-ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_start ... ok
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_with_bmc
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_with_bmc ... ok
-   ERROR [ironic_inspector.utils] Rule foo was not found
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_zero_size
-ironic_inspector.test.unit.test_plugins_standard.TestRootDiskSelection.test_zero_size ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_admin ... ok
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_NodeInfo_instance
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_NodeInfo_instance ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_port
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_port ... ok
+ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_first
+ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_first ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_admin
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_admin ... ok
+   ERROR [ironic_inspector.utils] Rule foo was not found
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_pxe_filter.TestGetIronicMacs.test_active_port
-ironic_inspector.test.unit.test_pxe_filter.TestGetIronicMacs.test_active_port ... ok
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_port_by_mac
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_port_by_mac ... ok
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_NodeInfo_instance_with_state
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_NodeInfo_instance_with_state ... ok
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+   ERROR [ironic_inspector.utils] Rule foo was not found
+ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete_non_existing
+ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete_non_existing ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_pxe_filter.TestGetIronicMacs.test_retry_on_port_list_failure
-ironic_inspector.test.unit.test_pxe_filter.TestGetIronicMacs.test_retry_on_port_list_failure ... ok
-ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_stop
-ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_stop ... ok
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_everything
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_everything ... ok
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_with_args
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_patch_with_args ... ok
-   ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_no_info
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_no_info ... ok
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_member ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_get_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_get_baremetal_admin ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_list
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_list ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_member
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_member ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_bmc
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_bmc ... ok
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_not_found
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_not_found ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
    ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_mac
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_mac ... ok
-ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_wait
-ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_wait ... ok
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_same_value
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_same_value ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_get_system_reader ... ok
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_uuid
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_uuid ... ok
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_with_default
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_replace_field_with_default ... ok
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_uuid_not_str
-ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_uuid_not_str ... ok
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_update_capabilities
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_update_capabilities ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_admin ... ok
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_update_properties
-ironic_inspector.test.unit.test_node_cache.TestUpdate.test_update_properties ... ok
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_reader
+ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_reader ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_get_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_get_baremetal_observer ... ok
+ironic_inspector.test.unit.test_rules.TestCheckConditions.test_invert
+ironic_inspector.test.unit.test_rules.TestCheckConditions.test_invert ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update
-ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update ... ok
+   ERROR [ironic_inspector.utils] Bad request: Marker not UUID-like
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-   ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update_no_match
-ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update_no_match ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_member ... ok
+ironic_inspector.test.unit.test_api_tools.MarkerFieldTestCase.test_marker_check_fails
+ironic_inspector.test.unit.test_api_tools.MarkerFieldTestCase.test_marker_check_fails ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_list_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_list_baremetal_admin ... ok
+ironic_inspector.test.unit.test_api_tools.MarkerFieldTestCase.test_marker_ok
+ironic_inspector.test.unit.test_api_tools.MarkerFieldTestCase.test_marker_ok ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
- WARNING [ironic_inspector.plugins.accel_device] Unable to distinguish accelerator devices due to no PCI devices information was received from the ramdisk.
-ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update_no_pci_info_from_ipa
-ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update_no_pci_info_from_ipa ... ok
+ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_ok
+ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_ok ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
    ERROR [ironic_inspector.utils] Access denied by policy
-ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_ok
-ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_ok ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_rule_list_system_reader ... ok
- WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
- WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
- WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_required_missing
-ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_required_missing ... ok
- WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_unexpected
-ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_unexpected ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_admin
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_admin ... ok
+ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_with_default
+ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_with_default ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_list_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_rule_list_baremetal_observer ... ok
+ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_with_default_returns_default
+ironic_inspector.test.unit.test_api_tools.RequestFieldTestCase.test_request_field_with_default_returns_default ... ok
+   ERROR [ironic_inspector.utils] Bad request: State(s) "invalid" are not valid
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_dict
-ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_dict ... ok
+ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_invalid_state
+ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_invalid_state ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_list
-ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_list ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_member
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_member ... ok
+   ERROR [ironic_inspector.utils] [unidentified node] Invalid formatting variable key provided in value %(val)s: %(e)s
+ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_multiple_state
+ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_multiple_state ... ok
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_nested_fail
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_nested_fail ... ok
+ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_single_state
+ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_single_state ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_status_baremetal_admin
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_status_baremetal_admin ... ok
  WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
  WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
  WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
-ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_string
-ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_empty_string ... ok
  WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
-ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_none
-ironic_inspector.test.unit.test_plugins_rules.TestEmptyCondition.test_check_none ... ok
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_reader
-ironic_inspector.test.unit.test_acl.TestRBACScoped.test_status_system_reader ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_eq
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_eq ... ok
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_additional_fields
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_additional_fields ... ok
-   ERROR [ironic_inspector.utils] [node: <Mock id='139760811322576'>] Failed to resolve the hostname (meow) for node uuid1
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_ge
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_ge ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_gt
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_gt ... ok
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_bad_hostname_errors
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_bad_hostname_errors ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_le
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_le ... ok
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_good_hostname_resolves
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_good_hostname_resolves ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_lt
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_lt ... ok
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipmi_bridging_enabled
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipmi_bridging_enabled ... ok
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipv4_in_resolves
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipv4_in_resolves ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_ne
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_ne ... ok
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipv6_in_resolves
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_ipv6_in_resolves ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_validate
-ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_validate ... ok
- WARNING [ironic_inspector.common.ironic] [node: <Mock id='139760810843408'>] Ignoring loopback BMC address 127.0.0.2
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_loopback_address
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_loopback_address ... ok
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address ... ok
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address_ipv4
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address_ipv4 ... ok
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address_ipv6
-ironic_inspector.test.unit.test_common_ironic.TestGetIpmiAddress.test_redfish_bmc_address_ipv6 ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_custom_ioerror
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_custom_ioerror ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_would_block
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_would_block ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_would_block_too_many_times
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestExclusiveWriteOrPass.test_write_would_block_too_many_times ... ok
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host ... ok
-ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_all
-ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_all ... ok
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_validate_processing_hooks_exception
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_validate_processing_hooks_exception ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
+ironic_inspector.test.unit.test_rules.TestCheckConditions.test_no_field
+ironic_inspector.test.unit.test_rules.TestCheckConditions.test_no_field ... ok
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_event_after
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_event_after ... ok
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_status_baremetal_observer
+ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_status_baremetal_observer ... ok
+ironic_inspector.test.unit.test_main.TestPlugins.test_hook
+ironic_inspector.test.unit.test_main.TestPlugins.test_hook ... ok
+ironic_inspector.test.unit.test_main.TestPlugins.test_manager_is_cached
+ironic_inspector.test.unit.test_main.TestPlugins.test_manager_is_cached ... ok
    ERROR [ironic_inspector.utils] Locked.
-ironic_inspector.test.unit.test_main.TestApiAbort.test_abort_failed
-ironic_inspector.test.unit.test_main.TestApiAbort.test_abort_failed ... ok
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_coordinator
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_coordinator ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiAbort.test_no_authentication
-ironic_inspector.test.unit.test_main.TestApiAbort.test_no_authentication ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_coordinator_failed
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_coordinator_failed ... ok
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_event_before
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_event_before ... ok
+ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_failed
+ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_failed ... ok
    ERROR [ironic_inspector.utils] Not Found.
-ironic_inspector.test.unit.test_main.TestApiAbort.test_node_not_found
-ironic_inspector.test.unit.test_main.TestApiAbort.test_node_not_found ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_mdns
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_with_mdns ... ok
-ironic_inspector.test.unit.test_main.TestApiAbort.test_ok
-ironic_inspector.test.unit.test_main.TestApiAbort.test_ok ... ok
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_no_introspection_data_store
-ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_no_introspection_data_store ... ok
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_fsm_transition
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_fsm_transition ... ok
+ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_node_not_found
+ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_node_not_found ... ok
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_nonreentrant_fsm_transition
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_nonreentrant_fsm_transition ... ok
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_primitives
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_primitives ... ok
+ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_ok
+ironic_inspector.test.unit.test_manager.TestManagerAbort.test_abort_ok ... ok
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_erros_masked
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_erros_masked ... ok
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host ... ok
+ironic_inspector.test.unit.test_rules.TestCheckConditions.test_no_field_none_allowed
+ironic_inspector.test.unit.test_rules.TestCheckConditions.test_no_field_none_allowed ... ok
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors ... ok
+   ERROR [ironic_inspector.node_cache] [node: 169d55c0-d80d-49c4-8cf0-1ded9b3325fa state starting] Processing the error event because of an exception <class 'ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_empty.<locals>.CustomException'>: Oops! raised by ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_empty.<locals>.function
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_empty
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_empty ... ok
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_no_worker
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_no_worker ... ok
-ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_any
-ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_any ... ok
+   ERROR [ironic_inspector.node_cache] [node: e0c6ec53-15f0-4bb3-aecc-772d8cf58379 state starting] Processing the error event because of an exception <class 'ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_with_error.<locals>.CustomException'>: Oops raised by ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_with_error.<locals>.function
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_with_error
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_with_error ... ok
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_race
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_race ... ok
+ WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_unlock
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_unlock ... ok
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_unlock_unlocked
+ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_unlock_unlocked ... ok
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_stopped_executor
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_stopped_executor ... ok
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_non_format_value
+ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_non_format_value ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_commit
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_commit ... ok
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__ ... ok
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_with_coordinator
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_with_coordinator ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_get
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_get ... ok
+ironic_inspector.test.unit.test_rules.TestCheckConditions.test_ok
+ironic_inspector.test.unit.test_rules.TestCheckConditions.test_ok ... ok
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_with_mdns
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_with_mdns ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_set
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_set ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_active_do_not_modify
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_active_do_not_modify ... ok
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_worker_exception
 ironic_inspector.test.unit.test_manager.TestManagerDelHost.test_del_host_worker_exception ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_fix_is_pxe_enabled
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_fix_is_pxe_enabled ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_no_overwrite
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_no_overwrite ... ok
 ironic_inspector.test.unit.test_node_cache.TestNodeCacheListNode.test_list_node
 ironic_inspector.test.unit.test_node_cache.TestNodeCacheListNode.test_list_node ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestLockedDriverEvent.test_locked_driver_event
+ironic_inspector.test.unit.test_pxe_filter.TestLockedDriverEvent.test_locked_driver_event ... ok
 ironic_inspector.test.unit.test_node_cache.TestNodeCacheListNode.test_list_node_limit
 ironic_inspector.test.unit.test_node_cache.TestNodeCacheListNode.test_list_node_limit ... ok
-ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_default
-ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_default ... ok
 ironic_inspector.test.unit.test_node_cache.TestNodeCacheListNode.test_list_node_marker
 ironic_inspector.test.unit.test_node_cache.TestNodeCacheListNode.test_list_node_marker ... ok
 ironic_inspector.test.unit.test_node_cache.TestNodeCacheListNode.test_list_node_state
@@ -5108,14 +5397,81 @@
    ERROR [ironic_inspector.utils] Node not found for marker: None
 ironic_inspector.test.unit.test_node_cache.TestNodeCacheListNode.test_list_node_wrong_marker
 ironic_inspector.test.unit.test_node_cache.TestNodeCacheListNode.test_list_node_wrong_marker ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: 152c327a-4a39-4f41-8db4-6e480383c372 MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_boot_mode
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_boot_mode ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: dfa08419-0bec-4e16-ad3a-671228468d13 MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_boot_mode_disabled
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_boot_mode_disabled ... ok
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_flags
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_flags ... ok
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_flags_custom
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_flags_custom ... ok
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_no_known_flags
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_no_known_flags ... ok
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_loadable_by_name
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_loadable_by_name ... ok
+ WARNING [ironic_inspector.plugins.capabilities] [node: 177a1e56-db75-441f-8a66-545677333949 MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_no_data
+ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_no_data ... ok
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update ... ok
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update_no_match
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update_no_match ... ok
+   ERROR [ironic_inspector.utils] Could not connect to the object storage service: Auth plugin requires parameters which were not given: 
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__keystone_failure
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__keystone_failure ... ok
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update_no_pci_info_from_ipa
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_before_update_no_pci_info_from_ipa ... ok
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry ... ok
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_invalid_json
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_invalid_json ... ok
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_invalid_keys
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_invalid_keys ... ok
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_no_entries
+ironic_inspector.test.unit.test_plugins_pci_devices.TestPciDevicesHook.test_parse_pci_alias_entry_no_entries ... ok
+   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Ramdisk reported error: BOOM
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook ramdisk_error failed, delaying error report until node look up: Ramdisk reported error: BOOM
+ WARNING [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
+   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
+Preprocessing hook ramdisk_error: Ramdisk reported error: BOOM
+Look up error: Could not find a node for attributes {'bmc_address': ['1.2.3.4', '2001:1234:1234:1234:1234:1234:1234:1234/64'], 'mac': ['11:22:33:44:55:66', '12:12:21:12:21:12', '66:55:44:33:22:11', '7c:fe:90:29:26:52']}
+ironic_inspector.test.unit.test_plugins_standard.TestRamdiskError.test_no_logs
+ironic_inspector.test.unit.test_plugins_standard.TestRamdiskError.test_no_logs ... ok
+   ERROR [ironic_inspector.utils] Could not connect to the object storage service: 
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__sdk_failure
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__sdk_failure ... ok
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object ... ok
+   ERROR [ironic_inspector.utils] Swift failed to create container ironic-inspector. Error was: SDKException
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_create_container_fails
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_create_container_fails ... ok
+   ERROR [ironic_inspector.utils] Swift failed to create object object in container ironic-inspector. Error was: SDKException
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_put_object_fails
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_put_object_fails ... ok
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_with_delete_after
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_with_delete_after ... ok
+INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
+INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_get_object
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_get_object ... ok
+INFO  [alembic.runtime.migration] Running upgrade  -> 578f84f38d, inital_db_schema
+INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
+INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
+INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
+INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
+INFO  [alembic.runtime.migration] Running upgrade 578f84f38d -> d588418040d, Add Rules
+INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
+INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
+ironic_inspector.test.unit.test_migrations.TestMigrationSqlite.test_upgrade_twice
+ironic_inspector.test.unit.test_migrations.TestMigrationSqlite.test_upgrade_twice ... ok
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test__fsm_ctx_generic_exception
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test__fsm_ctx_generic_exception ... ok
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test__fsm_ctx_illegal_event
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test__fsm_ctx_illegal_event ... ok
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test__fsm_ctx_set_same_state
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test__fsm_ctx_set_same_state ... ok
-ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_first
-ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_first ... ok
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test__fsm_ctx_set_state
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test__fsm_ctx_set_state ... ok
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test__get_fsm
@@ -5124,239 +5480,246 @@
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test__get_fsm_invalid_state ... ok
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test_fsm_event
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test_fsm_event ... ok
- WARNING [ironic_inspector.node_cache] [node: cccf7e25-e147-41e3-b765-a798be706aaf state starting] Invalid event: Can not transition from state 'starting' on event 'finish' (no defined transition)
-   ERROR [ironic_inspector.utils] [node: cccf7e25-e147-41e3-b765-a798be706aaf state starting] Can not transition from state 'starting' on event 'finish' (no defined transition)
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test_fsm_illegal_event
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test_fsm_illegal_event ... ok
-   ERROR [ironic_inspector.node_cache] [node: deb998ab-f8b3-4b0f-9156-f45232dd0a8d state starting] Invalid event: Can not transition from state 'starting' on event 'finish' (no defined transition)
-   ERROR [ironic_inspector.utils] [node: deb998ab-f8b3-4b0f-9156-f45232dd0a8d state error] Can not transition from state 'starting' on event 'finish' (no defined transition)
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test_fsm_illegal_strict_event
 ironic_inspector.test.unit.test_node_cache.TestNodeInfoStateFsm.test_fsm_illegal_strict_event ... ok
+   ERROR [ironic_inspector.utils] Swift failed to get object object in container ironic-inspector. Error was: SDKException
+ironic_inspector.test.unit.test_plugins_introspection_data.TestSwiftStore.test_get_data
+ironic_inspector.test.unit.test_plugins_introspection_data.TestSwiftStore.test_get_data ... ok
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_get_object_fails
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_get_object_fails ... ok
+ironic_inspector.test.unit.test_plugins_introspection_data.TestSwiftStore.test_store_data
+ironic_inspector.test.unit.test_plugins_introspection_data.TestSwiftStore.test_store_data ... ok
 ironic_inspector.test.unit.test_plugins_rules.TestAddTraitAction.test_add
 ironic_inspector.test.unit.test_plugins_rules.TestAddTraitAction.test_add ... ok
 ironic_inspector.test.unit.test_plugins_rules.TestAddTraitAction.test_validate
 ironic_inspector.test.unit.test_plugins_rules.TestAddTraitAction.test_validate ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_process.TestReapply.test_locking_failed
+ironic_inspector.test.unit.test_process.TestReapply.test_locking_failed ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_process.TestReapply.test_ok
+ironic_inspector.test.unit.test_process.TestReapply.test_ok ... ok
+ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_reset
+ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_reset ... ok
+ironic_inspector.test.unit.test_process.TestReapply.test_reapply_with_data
+ironic_inspector.test.unit.test_process.TestReapply.test_reapply_with_data ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_default
+ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_default ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_start
+ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_start ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_default_existing_driver_manager
+ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_default_existing_driver_manager ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_pxe_filter_name
+ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_pxe_filter_name ... ok
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_stop
+ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_stop ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestGetInactiveMacs.test_inactive_port
+ironic_inspector.test.unit.test_pxe_filter.TestGetInactiveMacs.test_inactive_port ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestGetInactiveMacs.test_retry_on_port_list_failure
+ironic_inspector.test.unit.test_pxe_filter.TestGetInactiveMacs.test_retry_on_port_list_failure ... ok
+ WARNING [keystonemiddleware.auth_token] AuthToken middleware is set with keystone_authtoken.service_token_roles_required set to False. This is backwards compatible but deprecated behaviour. Please set this to True.
+ WARNING [keystonemiddleware.auth_token] Use of the auth_admin_prefix, auth_host, auth_port, auth_protocol, identity_uri, admin_token, admin_user, admin_password, and admin_tenant_name configuration options was deprecated in the Mitaka release in favor of an auth_plugin and its related options. This class may be removed in a future release.
+ WARNING [keystonemiddleware.auth_token] Configuring admin URI using auth fragments was deprecated in the Kilo release, and will be removed in the Newton release, use 'identity_uri' instead.
+ WARNING [keystonemiddleware.auth_token] Configuring www_authenticate_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint
+ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_wait
+ironic_inspector.test.unit.test_wsgi_service.TestWSGIService.test_wait ... ok
+ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version
+ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect"
+ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync
+ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect"
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data ... ok
+ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice
+ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect"
+ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_upgrade_and_version
+ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect"
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data_ipv6_lowercase
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data_ipv6_lowercase ... ok
+ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_walk_versions
+ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect"
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data_ipv6_uppercase
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data_ipv6_uppercase ... ok
+ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncMysql.test_models_sync
+ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect"
+ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_upgrade_twice
+ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_upgrade_twice ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect"
+ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_acquire
+ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_acquire ... ok
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_interface_not_in_ironic
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_interface_not_in_ironic ... ok
+ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_acquire_non_blocking
+ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_acquire_non_blocking ... ok
+   ERROR [ironic_inspector.utils] [unidentified node] Hardware inventory is empty or missing
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_get
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_get ... ok
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_inventory
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_inventory ... ok
+ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_release
+ironic_inspector.test.unit.test_node_cache.TestInternalLock.test_release ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_get_missing_uuid
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_get_missing_uuid ... ok
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_ip_address_on_interface
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_ip_address_on_interface ... ok
+ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_walk_versions
+ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_walk_versions ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect"
+   ERROR [ironic_inspector.utils] Could not find node 4784cac8-d79b-4edd-8120-2cabda92532b in cache
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_mapping_in_config
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_mapping_in_config ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_not_found
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_not_found ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_set
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_set ... ok
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_matching_mapping_config
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_matching_mapping_config ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_ok ... ok
+   ERROR [ironic_inspector.utils] [node: cc57398d-5f28-42ca-a7b6-d1b70e8764b7 state starting] Node state mismatch detected between the DB and the cached node_info object
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_set_race
+ironic_inspector.test.unit.test_node_cache.TestNodeInfoVersionId.test_set_race ... ok
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_overwrite
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_overwrite ... ok
+ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_get_no_data_available
+ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_get_no_data_available ... ok
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_with_name
+ironic_inspector.test.unit.test_node_cache.TestNodeCacheGetNode.test_with_name ... ok
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_patch_port_exception
+ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_patch_port_exception ... ok
+ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update
+ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update ... ok
+ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_and_get_processed
+ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_and_get_processed ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_active_do_not_delete
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_active_do_not_delete ... ok
+ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update_no_match
+ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update_no_match ... ok
+ WARNING [ironic_inspector.plugins.accel_device] Unable to distinguish accelerator devices due to no PCI devices information was received from the ramdisk.
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_added
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_added ... ok
+ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_and_get_unprocessed
+ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_and_get_unprocessed ... ok
+ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update_no_pci_info_from_ipa
+ironic_inspector.test.unit.test_plugins_accel_device.TestAccelDevicesHook.test_before_update_no_pci_info_from_ipa ... ok
+ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_broken_dependencies
+ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_broken_dependencies ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_all
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_all ... ok
+ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_ok
+ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_ok ... ok
+ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_proc_and_unproc
+ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_proc_and_unproc ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_present
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_present ... ok
+ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_ok
+ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_ok ... ok
+ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_self_dependency
+ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_self_dependency ... ok
+ironic_inspector.test.unit.test_rules.TestApply.test_apply
+ironic_inspector.test.unit.test_rules.TestApply.test_apply ... ok
+ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_required_missing
+ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_required_missing ... ok
+ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_wrong_dependencies_order
+ironic_inspector.test.unit.test_plugins_base.TestValidateProcessingHooks.test_wrong_dependencies_order ... ok
+ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_unexpected
+ironic_inspector.test.unit.test_plugins_base.TestWithValidation.test_unexpected ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestNetCondition.test_check
+ironic_inspector.test.unit.test_plugins_rules.TestNetCondition.test_check ... ok
+ironic_inspector.test.unit.test_rules.TestApply.test_no_rules
+ironic_inspector.test.unit.test_rules.TestApply.test_no_rules ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_all
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_all ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestNetCondition.test_validate
+ironic_inspector.test.unit.test_plugins_rules.TestNetCondition.test_validate ... ok
+ironic_inspector.test.unit.test_plugins_introspection_data.TestDatabaseStore.test_store_and_get_data
+ironic_inspector.test.unit.test_plugins_introspection_data.TestDatabaseStore.test_store_and_get_data ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_eq
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_eq ... ok
  WARNING [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
    ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
 Node not found hook failed: Hook Error
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_disabled
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_disabled ... ok
 ironic_inspector.test.unit.test_process.TestNodeNotFoundHook.test_node_not_found_hook_exception
 ironic_inspector.test.unit.test_process.TestNodeNotFoundHook.test_node_not_found_hook_exception ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_ge
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_ge ... ok
+   ERROR [ironic_inspector.utils] Configuration error: add_ports set to disabled and keep_ports set to added. Please change keep_ports to all.
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_gt
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_gt ... ok
  WARNING [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
    ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
 Node not found hook returned nothing
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_disabled_bad_conf
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_disabled_bad_conf ... ok
 ironic_inspector.test.unit.test_process.TestNodeNotFoundHook.test_node_not_found_hook_run_none
 ironic_inspector.test.unit.test_process.TestNodeNotFoundHook.test_node_not_found_hook_run_none ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_le
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_le ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_interfaces_with_ipv6_addresses_only
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_interfaces_with_ipv6_addresses_only ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_lt
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_lt ... ok
 ironic_inspector.test.unit.test_process.TestNodeNotFoundHook.test_node_not_found_hook_run_ok
 ironic_inspector.test.unit.test_process.TestNodeNotFoundHook.test_node_not_found_hook_run_ok ... ok
- WARNING [ironic_inspector.plugins.capabilities] [node: 641124d0-cf86-4ab1-8551-6a81beee82a4 state reapplying MAC 11:22:33:44:55:66 BMC 1.2.3.4] No CPU flags available, please update your introspection ramdisk
-ironic_inspector.test.unit.test_process.TestReapplyNode.test_ok
-ironic_inspector.test.unit.test_process.TestReapplyNode.test_ok ... ok
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook example failed, delaying error report until node look up: Failed.
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-Exception: Failed.
-   ERROR [ironic_inspector.utils] [node: bedd5e6c-64bd-4ef0-ac7c-d47f6c950566 state reapplying] Pre-processing failures detected reapplying introspection on stored data:
-Unexpected exception Exception during preprocessing in hook example: Failed.
-   ERROR [ironic_inspector.node_cache] [node: bedd5e6c-64bd-4ef0-ac7c-d47f6c950566 state reapplying] Processing the error event because of an exception <class 'ironic_inspector.utils.Error'>: Pre-processing failures detected reapplying introspection on stored data:
-Unexpected exception Exception during preprocessing in hook example: Failed. raised by ironic_inspector.process._reapply_with_data
-   ERROR [ironic_inspector.process] [node: bedd5e6c-64bd-4ef0-ac7c-d47f6c950566 state reapplying MAC 11:22:33:44:55:66 BMC 1.2.3.4] Failed reapply for node bedd5e6c-64bd-4ef0-ac7c-d47f6c950566, Error: Pre-processing failures detected reapplying introspection on stored data:
-Unexpected exception Exception during preprocessing in hook example: Failed.
-ironic_inspector.test.unit.test_process.TestReapplyNode.test_prehook_failure
-ironic_inspector.test.unit.test_process.TestReapplyNode.test_prehook_failure ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestLockedDriverEvent.test_locked_driver_event
-ironic_inspector.test.unit.test_pxe_filter.TestLockedDriverEvent.test_locked_driver_event ... ok
-ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete
-ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete ... ok
-ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete_all
-ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete_all ... ok
-   ERROR [ironic_inspector.utils] Rule foo was not found
-ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete_non_existing
-ironic_inspector.test.unit.test_rules.TestDeleteRule.test_delete_non_existing ... ok
+   ERROR [ironic_inspector.plugins.standard] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Malformed interface record: {'mac_address': '11:11:11:11:11:11', 'ipv4_address': '1.1.1.1'}
+   ERROR [ironic_inspector.plugins.standard] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Malformed interface record: {}
+   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No interfaces supplied by the ramdisk
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_malformed_interfaces
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_malformed_interfaces ... ok
+   ERROR [ironic_inspector.utils] [unidentified node] Hardware inventory is empty or missing
+   ERROR [ironic_inspector.utils] [unidentified node] Hardware inventory is empty or missing
+   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No network interfaces provided in the inventory
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_ne
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_ne ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestGetActiveMacs.test_active_port
+ironic_inspector.test.unit.test_pxe_filter.TestGetActiveMacs.test_active_port ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_no_interfaces
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_no_interfaces ... ok
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_validate
+ironic_inspector.test.unit.test_plugins_rules.TestSimpleConditions.test_validate ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestGetActiveMacs.test_retry_on_port_list_failure
+ironic_inspector.test.unit.test_pxe_filter.TestGetActiveMacs.test_retry_on_port_list_failure ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_active
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_active ... ok
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_always_store_logs
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_always_store_logs ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe ... ok
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_mac_format
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_mac_format ... ok
+   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Ramdisk reported error: boom
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook ramdisk_error failed, delaying error report until node look up: Ramdisk reported error: boom
+ WARNING [ironic_inspector.plugins.standard] No boot interface provided in the introspection data, will add all ports with IP addresses
+   ERROR [ironic_inspector.utils] [node: e0b739df-f560-4c6b-94a7-4b81a8eba34b state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
+Preprocessing hook ramdisk_error: Ramdisk reported error: boom
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_no_boot_interface
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_no_boot_interface ... ok
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_directory_is_created
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_directory_is_created ... ok
+   ERROR [ironic_inspector.utils] [node: MAC aa:bb:cc:dd:ee:ff BMC 1.2.3.4] No suitable interfaces found in {'eth1': {'ip': '1.2.1.2', 'mac': '11:22:33:44:55:66', 'client_id': None, 'pxe': False}, 'eth2': {'ip': None, 'mac': '12:12:21:12:21:12', 'client_id': None, 'pxe': False}, 'eth3': {'ip': '1.2.1.1', 'mac': '66:55:44:33:22:11', 'client_id': None, 'pxe': False}, 'ib0': {'ip': '1.2.1.3', 'mac': '7c:fe:90:29:26:52', 'client_id': 'ff:00:00:00:00:00:02:00:00:02:c9:00:7c:fe:90:03:00:29:26:52', 'pxe': False}}
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_not_found
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_only_pxe_not_found ... ok
+ WARNING [ironic_inspector.plugins.standard] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] MAC foobar for interface em4 is not valid, skipping
+   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No suitable interfaces found in {'lo': {'ip': '1.1.1.1', 'mac': '11:11:11:11:11:11', 'client_id': None, 'pxe': False}, 'em1': {'ip': '127.0.0.1', 'mac': '22:22:22:22:22:22', 'client_id': None, 'pxe': False}}
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_skipped_interfaces
+ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeProcessing.test_skipped_interfaces ... ok
  WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
-ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncMysql.test_models_sync
-ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect"
-ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync
-ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect"
-ironic_inspector.test.unit.test_plugins_rules.TestNetCondition.test_check
-ironic_inspector.test.unit.test_plugins_rules.TestNetCondition.test_check ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestNetCondition.test_validate
-ironic_inspector.test.unit.test_plugins_rules.TestNetCondition.test_validate ... ok
-   ERROR [ironic_inspector.utils] [node: 0d0ab4ab-6c87-4268-b646-9a034c9394a7 state waiting] Node processing already finished with error: None
-ironic_inspector.test.unit.test_process.TestProcess.test_already_finished
-ironic_inspector.test.unit.test_process.TestProcess.test_already_finished ... ok
- WARNING [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
-   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
-Look up error: BOOM
-ironic_inspector.test.unit.test_process.TestProcess.test_error_if_node_not_found_hook
-ironic_inspector.test.unit.test_process.TestProcess.test_error_if_node_not_found_hook ... ok
-   ERROR [ironic_inspector.utils] boom
- WARNING [ironic_inspector.process] [node: 0e4aa419-e840-4104-aa47-f177b438a60f state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
-ironic_inspector.test.unit.test_process.TestProcess.test_expected_exception
-ironic_inspector.test.unit.test_process.TestProcess.test_expected_exception ... ok
-ironic_inspector.test.unit.test_process.TestProcess.test_found_in_cache_active_introspection
-ironic_inspector.test.unit.test_process.TestProcess.test_found_in_cache_active_introspection ... ok
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook ramdisk_error failed, delaying error report until node look up: boom
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook root_disk_selection failed, delaying error report until node look up: boom
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook scheduler failed, delaying error report until node look up: boom
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook validate_interfaces failed, delaying error report until node look up: boom
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook capabilities failed, delaying error report until node look up: boom
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook pci_devices failed, delaying error report until node look up: boom
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
- WARNING [ironic_inspector.process] [node: 1eff3ccd-2be9-420e-ae09-ea6b24a3a060 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
-   ERROR [ironic_inspector.utils] [node: 1eff3ccd-2be9-420e-ae09-ea6b24a3a060 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
-Unexpected exception RuntimeError during preprocessing in hook ramdisk_error: boom
-Unexpected exception RuntimeError during preprocessing in hook root_disk_selection: boom
-Unexpected exception RuntimeError during preprocessing in hook scheduler: boom
-Unexpected exception RuntimeError during preprocessing in hook validate_interfaces: boom
-Unexpected exception RuntimeError during preprocessing in hook capabilities: boom
-Unexpected exception RuntimeError during preprocessing in hook pci_devices: boom
-ironic_inspector.test.unit.test_process.TestProcess.test_hook_unexpected_exceptions
-ironic_inspector.test.unit.test_process.TestProcess.test_hook_unexpected_exceptions ... ok
-   ERROR [ironic_inspector.utils] not found
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook ramdisk_error failed, delaying error report until node look up: boom
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook root_disk_selection failed, delaying error report until node look up: boom
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook scheduler failed, delaying error report until node look up: boom
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook validate_interfaces failed, delaying error report until node look up: boom
-Traceback (most recent call last):
-  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
-    hook_ext.obj.before_processing(introspection_data)
-  File "<string>", line 3, in before_processing
-  File "/usr/lib/python3.11/unittest/mock.py", line 1118, in __call__
-    return self._mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1122, in _mock_call
-    return self._execute_mock_call(*args, **kwargs)
-           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
-    raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook capabilities failed, delaying error report until node look up: boom
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_failure_to_write
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_failure_to_write ... ok
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_create_action_none_value
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_create_action_none_value ... ok
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook example failed, delaying error report until node look up: Hook Error
 Traceback (most recent call last):
   File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
     hook_ext.obj.before_processing(introspection_data)
@@ -5369,8 +5732,28 @@
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
     raise effect
-RuntimeError: boom
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook pci_devices failed, delaying error report until node look up: boom
+Exception: Hook Error
+ WARNING [ironic_inspector.process] [node: 018ed4c6-54e3-4519-a544-fd944c98bda8 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] Failed to store logs received from the ramdisk because ramdisk_logs_dir configuration option is not set
+   ERROR [ironic_inspector.utils] [node: 018ed4c6-54e3-4519-a544-fd944c98bda8 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
+Unexpected exception Exception during preprocessing in hook example: Hook Error
+   ERROR [ironic_inspector.rules] Database integrity error (sqlite3.IntegrityError) UNIQUE constraint failed: rules.uuid
+[SQL: INSERT INTO rules (uuid, created_at, description, disabled, scope) VALUES (?, ?, ?, ?, ?)]
+[parameters: ('c3f914e5-7778-46c1-910b-2511d5caa9ab', '2024-06-04 08:16:34.106358', None, 0, None)]
+(Background on this error at: https://sqlalche.me/e/14/gkpj) when creating a rule
+   ERROR [ironic_inspector.utils] Rule with UUID c3f914e5-7778-46c1-910b-2511d5caa9ab already exists
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_logs_disabled
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_logs_disabled ... ok
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_duplicate_uuid
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_duplicate_uuid ... ok
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_no_error_no_logs
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_no_error_no_logs ... ok
+   ERROR [ironic_inspector.utils] boom
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_custom_name
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_custom_name ... ok
+   ERROR [ironic_inspector.utils] Node 8d380e52-2973-4421-ac3e-9ae752e809e8 was not found in Ironic
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_find_node_error
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_find_node_error ... ok
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook example failed, delaying error report until node look up: Hook Error
 Traceback (most recent call last):
   File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 133, in _run_pre_hooks
     hook_ext.obj.before_processing(introspection_data)
@@ -5383,38 +5766,53 @@
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
     raise effect
-RuntimeError: boom
- WARNING [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
-   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
-Unexpected exception RuntimeError during preprocessing in hook ramdisk_error: boom
-Unexpected exception RuntimeError during preprocessing in hook root_disk_selection: boom
-Unexpected exception RuntimeError during preprocessing in hook scheduler: boom
-Unexpected exception RuntimeError during preprocessing in hook validate_interfaces: boom
-Unexpected exception RuntimeError during preprocessing in hook capabilities: boom
-Unexpected exception RuntimeError during preprocessing in hook pci_devices: boom
-Look up error: not found
-ironic_inspector.test.unit.test_process.TestProcess.test_hook_unexpected_exceptions_no_node
-ironic_inspector.test.unit.test_process.TestProcess.test_hook_unexpected_exceptions_no_node ... ok
-ironic_inspector.test.unit.test_process.TestProcess.test_ipmi_not_detected
-ironic_inspector.test.unit.test_process.TestProcess.test_ipmi_not_detected ... ok
-ironic_inspector.test.unit.test_process.TestProcess.test_ipmi_not_detected_with_old_field
-ironic_inspector.test.unit.test_process.TestProcess.test_ipmi_not_detected_with_old_field ... ok
-ironic_inspector.test.unit.test_process.TestProcess.test_no_ipmi
-ironic_inspector.test.unit.test_process.TestProcess.test_no_ipmi ... ok
-   ERROR [ironic_inspector.utils] not found
- WARNING [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
-   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
-Look up error: not found
-ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_cache
-ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_cache ... ok
-ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_cache_active_introspection
-ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_cache_active_introspection ... ok
-   ERROR [ironic_inspector.utils] Node c79dc160-3b84-4234-8307-424ae9502302 was not found in Ironic
- WARNING [ironic_inspector.process] [node: c79dc160-3b84-4234-8307-424ae9502302 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
-ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_ironic
-ironic_inspector.test.unit.test_process.TestProcess.test_not_found_in_ironic ... ok
-ironic_inspector.test.unit.test_process.TestProcess.test_ok
-ironic_inspector.test.unit.test_process.TestProcess.test_ok ... ok
+Exception: Hook Error
+   ERROR [ironic_inspector.utils] [node: 806bc1fb-f94e-4a4b-9653-b1db47e066bc state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
+Unexpected exception Exception during preprocessing in hook example: Hook Error
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_preprocess_failure
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_preprocess_failure ... ok
+   ERROR [ironic_inspector.utils] Validation failed for actions: 'action' is a required property
+
+Failed validating 'required' in schema['items']:
+    {'additionalProperties': True,
+     'properties': {'action': {'description': 'action to take',
+                               'enum': ['add-trait',
+                                        'example',
+                                        'extend-attribute',
+                                        'fail',
+                                        'remove-trait',
+                                        'set-attribute',
+                                        'set-capability']}},
+     'required': ['action'],
+     'type': 'object'}
+
+On instance[0]:
+    {'message': 'boom!'}
+   ERROR [ironic_inspector.utils] boom
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_process_failure
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_process_failure ... ok
+   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Ramdisk reported error: boom
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook ramdisk_error failed, delaying error report until node look up: Ramdisk reported error: boom
+   ERROR [ironic_inspector.utils] Validation failed for actions: 'foobar' is not one of ['add-trait', 'example', 'extend-attribute', 'fail', 'remove-trait', 'set-attribute', 'set-capability']
+
+Failed validating 'enum' in schema['items']['properties']['action']:
+    {'description': 'action to take',
+     'enum': ['add-trait',
+              'example',
+              'extend-attribute',
+              'fail',
+              'remove-trait',
+              'set-attribute',
+              'set-capability']}
+
+On instance[0]['action']:
+    'foobar'
+   ERROR [ironic_inspector.utils] [node: f96feb76-a40e-4d57-9e15-c47c23d8ca94 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
+Preprocessing hook ramdisk_error: Ramdisk reported error: boom
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_action
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_action ... ok
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_ramdisk_error
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_ramdisk_error ... ok
    ERROR [ironic_inspector.process] Unexpected exception during processing
 Traceback (most recent call last):
   File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 243, in process
@@ -5430,529 +5828,192 @@
   File "/usr/lib/python3.11/unittest/mock.py", line 1177, in _execute_mock_call
     raise effect
 RuntimeError: boom
- WARNING [ironic_inspector.process] [node: cfa0d734-567a-4bc8-981f-6ffb6818da11 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
-   ERROR [ironic_inspector.utils] [node: cfa0d734-567a-4bc8-981f-6ffb6818da11 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] Unexpected exception RuntimeError during processing: boom
-ironic_inspector.test.unit.test_process.TestProcess.test_unexpected_exception
-ironic_inspector.test.unit.test_process.TestProcess.test_unexpected_exception ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_ib_not_match
-ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_ib_not_match ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_matching_ib
-ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_matching_ib ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_no_interfaces
-ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_no_interfaces ... ok
-   ERROR [ironic_inspector.pxe_filter.base] Interface eth0 is not Ethernet Over InfiniBand; Skipping ...
-ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_open_no_such_file
-ironic_inspector.test.unit.test_pxe_filter.TestIBMapping.test_open_no_such_file ... ok
-ironic_inspector.test.unit.test_rules.TestGetRule.test_get
-ironic_inspector.test.unit.test_rules.TestGetRule.test_get ... ok
-ironic_inspector.test.unit.test_rules.TestGetRule.test_get_all
-ironic_inspector.test.unit.test_rules.TestGetRule.test_get_all ... ok
-   ERROR [ironic_inspector.utils] Rule foobar was not found
-ironic_inspector.test.unit.test_rules.TestGetRule.test_not_found
-ironic_inspector.test.unit.test_rules.TestGetRule.test_not_found ... ok
-INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
-INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
-INFO  [alembic.runtime.migration] Running upgrade  -> 578f84f38d, inital_db_schema
-INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
-INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
+   ERROR [ironic_inspector.utils] [node: ef703a07-658f-4cf0-9a9a-1ffb1c145d81 state waiting MAC 11:22:33:44:55:66 BMC 1.2.3.4] Unexpected exception RuntimeError during processing: boom
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_unexpected_process_failure
+ironic_inspector.test.unit.test_process.TestStoreLogs.test_store_on_unexpected_process_failure ... ok
+ironic_inspector.test.unit.test_process.TestUnprocessedData.test_save_unprocessed_data
+ironic_inspector.test.unit.test_process.TestUnprocessedData.test_save_unprocessed_data ... ok
+   ERROR [ironic_inspector.utils] Could not connect to the object storage service: An auth plugin is required to determine endpoint URL
+   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Encountered exception saving unprocessed introspection data for node 9c4ca6fe-7371-4f47-b548-c741b9568f44
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/common/swift.py", line 58, in __init__
+    oslo_conf=CONF).object_store
+                    ^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/openstack/service_description.py", line 87, in __get__
+    proxy = self._make_proxy(instance)
+            ^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/openstack/service_description.py", line 262, in _make_proxy
+    found_version = temp_adapter.get_api_major_version()
+                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/keystoneauth1/adapter.py", line 354, in get_api_major_version
+    return self.session.get_api_major_version(auth or self.auth, **kwargs)
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 1275, in get_api_major_version
+    auth = self._auth_required(auth, 'determine endpoint URL')
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 1181, in _auth_required
+    raise exceptions.MissingAuthPlugin(msg_fmt % msg)
+keystoneauth1.exceptions.auth_plugins.MissingAuthPlugin: An auth plugin is required to determine endpoint URL
+
+During handling of the above exception, another exception occurred:
+
+Traceback (most recent call last):
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 176, in _store_unprocessed_data
+    store_introspection_data(node_uuid, data, processed=False)
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/process.py", line 170, in store_introspection_data
+    ext.save(node_uuid, data, processed)
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/plugins/introspection_data.py", line 88, in save
+    swift_object_name = swift.store_introspection_data(
+                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/common/swift.py", line 128, in store_introspection_data
+    swift_api = SwiftAPI()
+                ^^^^^^^^^^
+  File "/build/ironic-inspector-11.1.0/ironic_inspector/common/swift.py", line 60, in __init__
+    raise utils.Error(_("Could not connect to the object storage "
+ironic_inspector.utils.Error: Could not connect to the object storage service: An auth plugin is required to determine endpoint URL
+   ERROR [ironic_inspector.utils] Invalid parameters for action fail: unexpected parameter(s): foo
+ironic_inspector.test.unit.test_process.TestUnprocessedData.test_save_unprocessed_data_failure
+ironic_inspector.test.unit.test_process.TestUnprocessedData.test_save_unprocessed_data_failure ... ok
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_action_parameters
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_action_parameters ... ok
+ironic_inspector.test.unit.test_pxe_filter.TestGetIronicMacs.test_active_port
+ironic_inspector.test.unit.test_pxe_filter.TestGetIronicMacs.test_active_port ... ok
+   ERROR [ironic_inspector.utils] Validation failed for conditions: 'op' is a required property
+
+Failed validating 'required' in schema['items']:
+    {'additionalProperties': True,
+     'properties': {'field': {'description': 'JSON path to field for '
+                                             'matching',
+                              'type': 'string'},
+                    'invert': {'description': 'whether to invert the '
+                                              'result',
+                               'type': 'boolean'},
+                    'multiple': {'description': 'how to treat multiple '
+                                                'values',
+                                 'enum': ['all', 'any', 'first']},
+                    'op': {'description': 'condition operator',
+                           'enum': ['contains',
+                                    'eq',
+                                    'ge',
+                                    'gt',
+                                    'in-net',
+                                    'is-empty',
+                                    'le',
+                                    'lt',
+                                    'matches',
+                                    'ne']}},
+     'required': ['op', 'field'],
+     'type': 'object'}
+
+On instance[0]:
+    {'field': 'memory_mb', 'value': 1024}
+   ERROR [ironic_inspector.utils] Validation failed for conditions: 'foobar' is not one of ['contains', 'eq', 'ge', 'gt', 'in-net', 'is-empty', 'le', 'lt', 'matches', 'ne']
+
+Failed validating 'enum' in schema['items']['properties']['op']:
+    {'description': 'condition operator',
+     'enum': ['contains',
+              'eq',
+              'ge',
+              'gt',
+              'in-net',
+              'is-empty',
+              'le',
+              'lt',
+              'matches',
+              'ne']}
+
+On instance[0]['op']:
+    'foobar'
+ironic_inspector.test.unit.test_pxe_filter.TestGetIronicMacs.test_retry_on_port_list_failure
+ironic_inspector.test.unit.test_pxe_filter.TestGetIronicMacs.test_retry_on_port_list_failure ... ok
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition ... ok
+ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_no_scope
+ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_no_scope ... ok
+   ERROR [ironic_inspector.utils] Unable to parse field JSON path !*!: Error on line 1, col 0: Unexpected character: ! 
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition_field
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition_field ... ok
+ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_scope_1
+ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_scope_1 ... ok
+   ERROR [ironic_inspector.utils] Invalid parameters for operator eq: unexpected parameter(s): foo
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition_parameters
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_invalid_condition_parameters ... ok
+ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_scope_2
+ironic_inspector.test.unit.test_rules.TestRuleScope.test_node_scope_2 ... ok
+   ERROR [ironic_inspector.utils] Validation failed for actions: [] is too short
+
+Failed validating 'minItems' in schema:
+    {'items': {'additionalProperties': True,
+               'properties': {'action': {'description': 'action to take',
+                                         'enum': ['add-trait',
+                                                  'example',
+                                                  'extend-attribute',
+                                                  'fail',
+                                                  'remove-trait',
+                                                  'set-attribute',
+                                                  'set-capability']}},
+               'required': ['action'],
+               'type': 'object'},
+     'minItems': 1,
+     'title': 'Inspector rule actions schema',
+     'type': 'array'}
+
+On instance:
+    []
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_no_actions
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_no_actions ... ok
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_only_actions
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_only_actions ... ok
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_scope
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_scope ... ok
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_with_conditions
+ironic_inspector.test.unit.test_rules.TestCreateRule.test_with_conditions ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_empty_data
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_empty_data ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_no_data
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_no_data ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_with_bmc
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_adapter_with_bmc ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_NodeInfo_instance
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_NodeInfo_instance ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_NodeInfo_instance_with_state
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_NodeInfo_instance_with_state ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_everything
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_everything ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_no_info
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_no_info ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_bmc
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_bmc ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_mac
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_mac ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_uuid
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_only_uuid ... ok
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_uuid_not_str
+ironic_inspector.test.unit.test_utils.TestProcessingLogger.test_prefix_uuid_not_str ... ok
 ironic_inspector.test.unit.test_wsgi_service.TestWSGIServiceInitMiddleware.test_init_middleware
 ironic_inspector.test.unit.test_wsgi_service.TestWSGIServiceInitMiddleware.test_init_middleware ... ok
-INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
-INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
-INFO  [alembic.runtime.migration] Running upgrade 578f84f38d -> d588418040d, Add Rules
-INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
-INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
-ironic_inspector.test.unit.test_migrations.TestMigrationSqlite.test_upgrade_twice
-ironic_inspector.test.unit.test_migrations.TestMigrationSqlite.test_upgrade_twice ... ok
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_boot_mode
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_boot_mode ... ok
 ironic_inspector.test.unit.test_wsgi_service.TestWSGIServiceInitMiddleware.test_init_middleware_basic
 ironic_inspector.test.unit.test_wsgi_service.TestWSGIServiceInitMiddleware.test_init_middleware_basic ... ok
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_boot_mode_disabled
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_boot_mode_disabled ... ok
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_flags
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_flags ... ok
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_flags_custom
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_flags_custom ... ok
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_no_known_flags
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_cpu_no_known_flags ... ok
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_loadable_by_name
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_loadable_by_name ... ok
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_no_data
-ironic_inspector.test.unit.test_plugins_capabilities.TestCapabilitiesHook.test_no_data ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_remove
-ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_remove ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_remove_not_found
-ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_remove_not_found ... ok
-ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_validate
-ironic_inspector.test.unit.test_plugins_rules.TestRemoveTraitAction.test_validate ... ok
 ironic_inspector.test.unit.test_wsgi_service.TestWSGIServiceInitMiddleware.test_init_middleware_noauth
 ironic_inspector.test.unit.test_wsgi_service.TestWSGIServiceInitMiddleware.test_init_middleware_noauth ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_active_do_not_delete
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_active_do_not_delete ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_added
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_added ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_all
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_all ... ok
-ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_upgrade_and_version
-ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect"
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_present
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdateDeletion.test_keep_present ... ok
-ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_upgrade_twice
-ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_upgrade_twice ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect"
-ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_walk_versions
-ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_walk_versions ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect"
-ironic_inspector.test.unit.test_process.TestProcessNode.test_no_manage_boot
-ironic_inspector.test.unit.test_process.TestProcessNode.test_no_manage_boot ... ok
-ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_get_no_data_available
-ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_get_no_data_available ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_no_power_off
-ironic_inspector.test.unit.test_process.TestProcessNode.test_no_power_off ... ok
-ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_and_get_processed
-ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_and_get_processed ... ok
-ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_and_get_unprocessed
-ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_and_get_unprocessed ... ok
-ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_proc_and_unproc
-ironic_inspector.test.unit.test_node_cache.TestIntrospectionDataDbStore.test_store_proc_and_unproc ... ok
-   ERROR [ironic_inspector.utils] Node 94d72859-0812-4db6-8e40-05621b0a2083 is not active, its provision state is deploying
-ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_bad_provision_state
-ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_bad_provision_state ... ok
-ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_no_lookup_data
-ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_no_lookup_data ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_ok ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_ok_node_active
-ironic_inspector.test.unit.test_process.TestProcessNode.test_ok_node_active ... ok
-ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_not_found
-ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_not_found ... ok
-ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_success
-ironic_inspector.test.unit.test_node_cache.TestRecordNode.test_success ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_hook_loadable_by_name
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_hook_loadable_by_name ... ok
- WARNING [ironic_inspector.plugins.standard] malformed or missing CPU information: {'count': 'none'}
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_missing_cpu
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_missing_cpu ... ok
- WARNING [ironic_inspector.plugins.standard] malformed or missing memory information: {'total': 42}; introspection requires physical memory size from dmidecode
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_missing_memory
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_missing_memory ... ok
- WARNING [ironic_inspector.plugins.standard] malformed or missing CPU information: {}
- WARNING [ironic_inspector.plugins.standard] malformed or missing memory information: {}; introspection requires physical memory size from dmidecode
- WARNING [ironic_inspector.plugins.standard] malformed or missing CPU information: None
- WARNING [ironic_inspector.plugins.standard] malformed or missing memory information: None; introspection requires physical memory size from dmidecode
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_no_data
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_no_data ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_no_overwrite
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_no_overwrite ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_ok
-ironic_inspector.test.unit.test_plugins_standard.TestSchedulerHook.test_ok ... ok
-ironic_inspector.test.unit.test_rules.TestApply.test_apply
-ironic_inspector.test.unit.test_rules.TestApply.test_apply ... ok
-ironic_inspector.test.unit.test_rules.TestApply.test_no_rules
-ironic_inspector.test.unit.test_rules.TestApply.test_no_rules ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_port_failed
-ironic_inspector.test.unit.test_process.TestProcessNode.test_port_failed ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_power_off_enroll_state
-ironic_inspector.test.unit.test_process.TestProcessNode.test_power_off_enroll_state ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_power_off_failed
-ironic_inspector.test.unit.test_process.TestProcessNode.test_power_off_failed ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_return_includes_uuid
-ironic_inspector.test.unit.test_process.TestProcessNode.test_return_includes_uuid ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_no_logs_with_database
-ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_no_logs_with_database ... ok
-   ERROR [ironic_inspector.utils] Bad request: invalid literal for int() with base 10: 'foo'
-ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_invalid_value
-ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_invalid_value ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_no_logs_with_swift
-ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_no_logs_with_swift ... ok
-   ERROR [ironic_inspector.utils] Bad request: Limit cannot be negative
-ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_negative
-ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_negative ... ok
-ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_ok
-ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_ok ... ok
-   ERROR [ironic_inspector.utils] Bad request: Limit over 1000
-ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_over
-ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_over ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_with_database
-ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_with_database ... ok
-ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_zero
-ironic_inspector.test.unit.test_api_tools.LimitFieldTestCase.test_limit_zero ... ok
-   ERROR [ironic_inspector.utils] Bad request: State(s) "invalid" are not valid
-ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_invalid_state
-ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_invalid_state ... ok
-ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_multiple_state
-ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_multiple_state ... ok
-ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_single_state
-ironic_inspector.test.unit.test_api_tools.StateFieldTestCase.test_single_state ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_with_swift
-ironic_inspector.test.unit.test_process.TestProcessNode.test_store_data_with_swift ... ok
-ironic_inspector.test.unit.test_locking.TestInternalLock.test_acquire
-ironic_inspector.test.unit.test_locking.TestInternalLock.test_acquire ... ok
-ironic_inspector.test.unit.test_locking.TestInternalLock.test_context
-ironic_inspector.test.unit.test_locking.TestInternalLock.test_context ... ok
-ironic_inspector.test.unit.test_process.TestProcessNode.test_wrong_provision_state
-ironic_inspector.test.unit.test_process.TestProcessNode.test_wrong_provision_state ... ok
-ironic_inspector.test.unit.test_locking.TestInternalLock.test_init_lock
-ironic_inspector.test.unit.test_locking.TestInternalLock.test_init_lock ... ok
-ironic_inspector.test.unit.test_locking.TestInternalLock.test_release
-ironic_inspector.test.unit.test_locking.TestInternalLock.test_release ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_default
-ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_default ... ok
-ironic_inspector.test.unit.test_main.TestApiGetStatus.test_get_introspection_finished
-ironic_inspector.test.unit.test_main.TestApiGetStatus.test_get_introspection_finished ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiGetStatus.test_get_introspection_in_progress
-ironic_inspector.test.unit.test_main.TestApiGetStatus.test_get_introspection_in_progress ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_default_existing_driver_manager
-ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_default_existing_driver_manager ... ok
-ironic_inspector.test.unit.test_main.TestApiReapply.test_api_ok
-ironic_inspector.test.unit.test_main.TestApiReapply.test_api_ok ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Oops
-ironic_inspector.test.unit.test_main.TestApiReapply.test_generic_error
-ironic_inspector.test.unit.test_main.TestApiReapply.test_generic_error ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] The store is crashed
-ironic_inspector.test.unit.test_main.TestApiReapply.test_get_introspection_data_error
-ironic_inspector.test.unit.test_main.TestApiReapply.test_get_introspection_data_error ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_pxe_filter_name
-ironic_inspector.test.unit.test_pxe_filter.TestDriverManager.test_pxe_filter_name ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_pxe_filter.TestGetActiveMacs.test_active_port
-ironic_inspector.test.unit.test_pxe_filter.TestGetActiveMacs.test_active_port ... ok
-ironic_inspector.test.unit.test_main.TestApiReapply.test_reapply_with_node_name
-ironic_inspector.test.unit.test_main.TestApiReapply.test_reapply_with_node_name ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestGetActiveMacs.test_retry_on_port_list_failure
-ironic_inspector.test.unit.test_pxe_filter.TestGetActiveMacs.test_retry_on_port_list_failure ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Invalid data: expected a JSON object, got None
-ironic_inspector.test.unit.test_main.TestApiReapply.test_user_data
-ironic_inspector.test.unit.test_main.TestApiReapply.test_user_data ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiReapply.test_user_data_valid
-ironic_inspector.test.unit.test_main.TestApiReapply.test_user_data_valid ... ok
-   ERROR [ironic_inspector.node_cache] Failed to create new node: SDKException
-ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_create_client_error
-ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_create_client_error ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_create_with_args
-ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_create_with_args ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_default_create
-ironic_inspector.test.unit.test_node_cache.TestNodeCreate.test_default_create ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_commit
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_commit ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_get
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_get ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_set
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoState.test_set ... ok
-ironic_inspector.test.unit.test_rules.TestCheckConditions.test_fail
-ironic_inspector.test.unit.test_rules.TestCheckConditions.test_fail ... ok
-ironic_inspector.test.unit.test_rules.TestCheckConditions.test_invert
-ironic_inspector.test.unit.test_rules.TestCheckConditions.test_invert ... ok
-ironic_inspector.test.unit.test_rules.TestCheckConditions.test_no_field
-ironic_inspector.test.unit.test_rules.TestCheckConditions.test_no_field ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestShouldEnableUnknownHosts.test_introspection_active
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestShouldEnableUnknownHosts.test_introspection_active ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestShouldEnableUnknownHosts.test_introspection_not_active
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestShouldEnableUnknownHosts.test_introspection_not_active ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiRules.test_create
-ironic_inspector.test.unit.test_main.TestApiRules.test_create ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_rules.TestCheckConditions.test_no_field_none_allowed
-ironic_inspector.test.unit.test_rules.TestCheckConditions.test_no_field_none_allowed ... ok
-ironic_inspector.test.unit.test_main.TestApiRules.test_create_api_less_1_6
-ironic_inspector.test.unit.test_main.TestApiRules.test_create_api_less_1_6 ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-   ERROR [ironic_inspector.utils] Invalid UUID value
-ironic_inspector.test.unit.test_main.TestApiRules.test_create_bad_uuid
-ironic_inspector.test.unit.test_main.TestApiRules.test_create_bad_uuid ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiRules.test_delete_all
-ironic_inspector.test.unit.test_main.TestApiRules.test_delete_all ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiRules.test_delete_one
-ironic_inspector.test.unit.test_main.TestApiRules.test_delete_one ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiRules.test_get_all
-ironic_inspector.test.unit.test_main.TestApiRules.test_get_all ... ok
-ironic_inspector.test.unit.test_rules.TestCheckConditions.test_ok
-ironic_inspector.test.unit.test_rules.TestCheckConditions.test_ok ... ok
- WARNING [ironic_inspector.main] Starting unauthenticated, please check configuration
-ironic_inspector.test.unit.test_main.TestApiRules.test_get_one
-ironic_inspector.test.unit.test_main.TestApiRules.test_get_one ... ok
-   ERROR [ironic_inspector.utils] boom
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_intospect_failed
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_intospect_failed ... ok
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect ... ok
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_can_manage_boot_false
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_can_manage_boot_false ... ok
-   ERROR [ironic_inspector.utils] Managed boot is requested, but this installation cannot manage boot ((can_manage_boot set to False)
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_can_manage_boot_false_failed
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_can_manage_boot_false_failed ... ok
-   ERROR [ironic_inspector.utils] Authentication required
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_failed_authentication
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_failed_authentication ... ok
-ironic_inspector.test.unit.test_coordination.TestGetCoordinator.test_get
-ironic_inspector.test.unit.test_coordination.TestGetCoordinator.test_get ... ok
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_no_manage_boot
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_no_manage_boot ... ok
-   ERROR [ironic_inspector.utils] Invalid boolean value for manage_boot: foo
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_wrong_manage_boot
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_introspect_wrong_manage_boot ... ok
-ironic_inspector.test.unit.test_coordination.TestGetCoordinator.test_get_with_prefix
-ironic_inspector.test.unit.test_coordination.TestGetCoordinator.test_get_with_prefix ... ok
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__ ... ok
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_root_endpoint_with_prefix
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_root_endpoint_with_prefix ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_init_filter
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_init_filter ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_reset
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_reset ... ok
-   ERROR [ironic_inspector.utils] Authentication required
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_unauthenticated_public_api
-ironic_inspector.test.unit.test_main.TestBasicAuthApiIntrospect.test_unauthenticated_public_api ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_ironic_preset
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_ironic_preset ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_not_provided
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_not_provided ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_sync
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_sync ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_provided
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_node_provided ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_ironic_preset
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_ironic_preset ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_not_provided
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_not_provided ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_provided
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_provided ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_provided_list
-ironic_inspector.test.unit.test_node_cache.TestNodeCacheIronicObjects.test_ports_provided_list ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_tear_down_filter
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestDnsmasqDriverAPI.test_tear_down_filter ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoOptions.test_get
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoOptions.test_get ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_enable_unknown_hosts
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_enable_unknown_hosts ... ok
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoOptions.test_set
-ironic_inspector.test.unit.test_node_cache.TestNodeInfoOptions.test_set ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_ironic_unavailable
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_ironic_unavailable ... ok
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_not_enable_unknown_hosts
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_not_enable_unknown_hosts ... ok
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data_ipv6_lowercase
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data_ipv6_lowercase ... ok
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_with_port_list_retries
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestSync.test__sync_with_port_list_retries ... ok
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data_ipv6_uppercase
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_expected_data_ipv6_uppercase ... ok
-   ERROR [ironic_inspector.utils] Node 906ccf40-d8bd-4a1f-ade6-2cc75b96436e was not found in Ironic
-   ERROR [ironic_inspector.utils] Cannot get node 906ccf40-d8bd-4a1f-ade6-2cc75b96436e: Error
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_failed_to_get_node
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_failed_to_get_node ... ok
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_interface_not_in_ironic
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_interface_not_in_ironic ... ok
-   ERROR [ironic_inspector.utils] [unidentified node] Hardware inventory is empty or missing
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_inventory
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_inventory ... ok
-   ERROR [ironic_inspector.utils] [node: <Mock name='mock.node()' id='140663355341456'>] Failed validation of power interface: ValidationException
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_failed_to_validate_node
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_failed_to_validate_node ... ok
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_ip_address_on_interface
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_ip_address_on_interface ... ok
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_mapping_in_config
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_mapping_in_config ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_forced_persistent_boot
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_forced_persistent_boot ... ok
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_matching_mapping_config
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_matching_mapping_config ... ok
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_overwrite
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_no_overwrite ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_forced_persistent_boot_compat
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_forced_persistent_boot_compat ... ok
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_patch_port_exception
-ironic_inspector.test.unit.test_plugins_physnet_cidr_map.TestPhysnetCidrMapHook.test_patch_port_exception ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_inspect_wait_state_allowed
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_inspect_wait_state_allowed ... ok
- WARNING [ironic_inspector.plugins.raid_device] [node: 241c6f5e-ea76-4c5a-a627-9bdaca4258d9] Root device cannot be identified because multiple new devices were found
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_multiple_new_devices
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_multiple_new_devices ... ok
- WARNING [ironic_inspector.plugins.raid_device] [node: bd08d9b6-35ab-4af3-aec0-517d33e65150] No block device was received from ramdisk
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_block_devices_from_ramdisk
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_block_devices_from_ramdisk ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_delay
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_delay ... ok
- WARNING [ironic_inspector.plugins.raid_device] [node: dc670355-8e83-4d94-aa60-d2a2294d5d9e] No new devices were found
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_new_devices
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_new_devices ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_delay_not_needed
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_delay_not_needed ... ok
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_previous_block_devices
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_previous_block_devices ... ok
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_previous_block_devices_old_ramdisk
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_no_previous_block_devices_old_ramdisk ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_no_delay_without_manage_boot
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_introspection_no_delay_without_manage_boot ... ok
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_already_exposed
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_already_exposed ... ok
- WARNING [ironic_inspector.common.ironic] [node: <Mock name='mock.node()' id='140663352146768'>] Ignoring loopback BMC address 127.0.0.1
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_found
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_found ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_loopback_bmc_address
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_loopback_bmc_address ... ok
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_found_old_ramdisk
-ironic_inspector.test.unit.test_plugins_raid_device.TestRaidDeviceDetectionUpdate.test_root_device_found_old_ramdisk ... ok
-   ERROR [ironic_inspector.utils] [node: <Mock id='140663350289424'>] No lookup attributes were found, inspector won't be able to find it after introspection, consider creating ironic ports or providing an IPMI address
-   ERROR [ironic_inspector.node_cache] [node: <Mock id='140663350289424'>] Processing the error event because of an exception <class 'ironic_inspector.utils.Error'>: No lookup attributes were found, inspector won't be able to find it after introspection, consider creating ironic ports or providing an IPMI address raised by ironic_inspector.introspect._do_introspect
-   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Ramdisk reported error: BOOM
-   ERROR [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] Hook ramdisk_error failed, delaying error report until node look up: Ramdisk reported error: BOOM
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_lookup_attrs
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_lookup_attrs ... ok
- WARNING [ironic_inspector.process] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] No logs were passed by the ramdisk
-   ERROR [ironic_inspector.utils] [node: MAC 11:22:33:44:55:66 BMC 1.2.3.4] The following failures happened during running pre-processing hooks:
-Preprocessing hook ramdisk_error: Ramdisk reported error: BOOM
-Look up error: Could not find a node for attributes {'bmc_address': ['1.2.3.4', '2001:1234:1234:1234:1234:1234:1234:1234/64'], 'mac': ['11:22:33:44:55:66', '12:12:21:12:21:12', '66:55:44:33:22:11', '7c:fe:90:29:26:52']}
-ironic_inspector.test.unit.test_plugins_standard.TestRamdiskError.test_no_logs
-ironic_inspector.test.unit.test_plugins_standard.TestRamdiskError.test_no_logs ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_lookup_attrs_with_node_not_found_hook
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_lookup_attrs_with_node_not_found_hook ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_macs
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_macs ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_manage_boot
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_no_manage_boot ... ok
-ironic_inspector.test.unit.test_rules.TestCheckConditionsSchemePath.test_conditions_data_path
-ironic_inspector.test.unit.test_rules.TestCheckConditionsSchemePath.test_conditions_data_path ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok_ilo_and_drac
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok_ilo_and_drac ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok_retries_node_locked
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_ok_retries_node_locked ... ok
-   ERROR [ironic_inspector.utils] [node: <Mock id='140663349508048'>] Failed to power on the node, check its power management configuration: Error
-   ERROR [ironic_inspector.node_cache] [node: <Mock id='140663349508048'>] Processing the error event because of an exception <class 'ironic_inspector.utils.Error'>: Failed to power on the node, check its power management configuration: Error raised by ironic_inspector.introspect._do_introspect
-ironic_inspector.test.unit.test_rules.TestCheckConditionsSchemePath.test_conditions_node_path
-ironic_inspector.test.unit.test_rules.TestCheckConditionsSchemePath.test_conditions_node_path ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_power_failure
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_power_failure ... ok
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_resolved_bmc_address
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_resolved_bmc_address ... ok
-   ERROR [ironic_inspector.utils] [node: <Mock id='140663349505232'>] Failed to set boot device to PXE: Error
-   ERROR [ironic_inspector.node_cache] [node: <Mock id='140663349505232'>] Processing the error event because of an exception <class 'ironic_inspector.utils.Error'>: Failed to set boot device to PXE: Error raised by ironic_inspector.introspect._do_introspect
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_set_boot_device_failure
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_set_boot_device_failure ... ok
-   ERROR [ironic_inspector.node_cache] [node: <Mock id='140663350221520'>] Processing the error event because of an exception <class 'RuntimeError'>:  raised by ironic_inspector.introspect._do_introspect
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_unexpected_error
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_unexpected_error ... ok
-   ERROR [ironic_inspector.utils] [node: <Mock name='mock.node()' id='140663348281040'>] Invalid provision state for introspection: "active", valid states are "['inspect failed', 'inspect wait', 'manageable', 'inspecting', 'enroll']"
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_wrong_provision_state
-ironic_inspector.test.unit.test_introspect.TestIntrospect.test_wrong_provision_state ... ok
-ironic_inspector.test.unit.test_keystone.KeystoneTest.test_add_auth_options
-ironic_inspector.test.unit.test_keystone.KeystoneTest.test_add_auth_options ... ok
-ironic_inspector.test.unit.test_keystone.KeystoneTest.test_get_session
-ironic_inspector.test.unit.test_keystone.KeystoneTest.test_get_session ... ok
-ironic_inspector.test.unit.test_keystone.KeystoneTest.test_register_auth_opts
-ironic_inspector.test.unit.test_keystone.KeystoneTest.test_register_auth_opts ... ok
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_event_after
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_event_after ... ok
-   ERROR [ironic_inspector.utils] Could not connect to the object storage service: Auth plugin requires parameters which were not given: 
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_event_before
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_event_before ... ok
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__keystone_failure
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__keystone_failure ... ok
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_fsm_transition
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_fsm_transition ... ok
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_nonreentrant_fsm_transition
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_nonreentrant_fsm_transition ... ok
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_erros_masked
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_erros_masked ... ok
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors ... ok
-   ERROR [ironic_inspector.node_cache] [node: 0d6ed4cf-b7f2-400b-91dc-cab74867417c state starting] Processing the error event because of an exception <class 'ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_empty.<locals>.CustomException'>: Oops! raised by ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_empty.<locals>.function
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_empty
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_empty ... ok
-   ERROR [ironic_inspector.node_cache] [node: a891ee9f-4294-480c-ab08-32427b7395ff state starting] Processing the error event because of an exception <class 'ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_with_error.<locals>.CustomException'>: Oops raised by ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_with_error.<locals>.function
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_with_error
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_triggers_fsm_error_transition_no_errors_with_error ... ok
- WARNING [ironic_inspector.node_cache] BUG: node lock was not released by the moment node info object is deleted
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_unlock
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_unlock ... ok
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_unlock_unlocked
-ironic_inspector.test.unit.test_node_cache.TestFsmEvent.test_unlock_unlocked ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_active_do_not_modify
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_active_do_not_modify ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_fix_is_pxe_enabled
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_fix_is_pxe_enabled ... ok
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_no_overwrite
-ironic_inspector.test.unit.test_plugins_standard.TestValidateInterfacesHookBeforeUpdatePXEEnabled.test_no_overwrite ... ok
- WARNING [stevedore.named] Could not load foo
-ironic_inspector.test.unit.test_pxe_filter.TestDriverManagerLoading.test_invalid_filter_driver
-ironic_inspector.test.unit.test_pxe_filter.TestDriverManagerLoading.test_invalid_filter_driver ... ok
-ironic_inspector.test.unit.test_pxe_filter.TestDriverManagerLoading.test_pxe_filter_driver_loads
-ironic_inspector.test.unit.test_pxe_filter.TestDriverManagerLoading.test_pxe_filter_driver_loads ... ok
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply ... ok
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value ... ok
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_dict
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_dict ... ok
-   ERROR [ironic_inspector.utils] Could not connect to the object storage service: 
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__sdk_failure
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test___init__sdk_failure ... ok
-   ERROR [ironic_inspector.utils] [unidentified node] Invalid formatting variable key provided in value %(val)s: %(e)s
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_fail
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_fail ... ok
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_list
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_list ... ok
-   ERROR [ironic_inspector.utils] [unidentified node] Invalid formatting variable key provided in value %(val)s: %(e)s
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_nested_fail
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_nested_fail ... ok
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_primitives
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_format_value_primitives ... ok
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_non_format_value
-ironic_inspector.test.unit.test_rules.TestApplyActions.test_apply_data_non_format_value ... ok
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object ... ok
-   ERROR [ironic_inspector.utils] Swift failed to create container ironic-inspector. Error was: SDKException
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_create_container_fails
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_create_container_fails ... ok
-   ERROR [ironic_inspector.utils] Swift failed to create object object in container ironic-inspector. Error was: SDKException
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_put_object_fails
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_put_object_fails ... ok
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_with_delete_after
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_create_object_with_delete_after ... ok
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_get_object
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_get_object ... ok
-   ERROR [ironic_inspector.utils] Swift failed to get object object in container ironic-inspector. Error was: SDKException
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_get_object_fails
-ironic_inspector.test.unit.test_swift.SwiftTestCase.test_get_object_fails ... ok
-ironic_inspector.test.unit.test_utils.TestIsoTimestamp.test_none
-ironic_inspector.test.unit.test_utils.TestIsoTimestamp.test_none ... ok
-ironic_inspector.test.unit.test_utils.TestIsoTimestamp.test_ok
-ironic_inspector.test.unit.test_utils.TestIsoTimestamp.test_ok ... ok
 
 ----------------------------------------------------------------------
-Ran 766 tests in 255.987s
+Ran 766 tests in 1289.977s
 
 OK (skipped=8)
 + stestr slowest
-Test id                                                                                        Runtime (s)
----------------------------------------------------------------------------------------------  -----------
-ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncMysql.test_models_sync          18.259
-ironic_inspector.test.unit.test_migrations.TestMigrationSqlite.test_upgrade_twice              16.017
-ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version    6.116
-ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_upgrade_and_version         5.756
-ironic_inspector.test.unit.test_dnsmasq_pxe_filter.TestMACHandlers.test__denylist_mac           5.249
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_abort_baremetal_admin                3.432
-ironic_inspector.test.unit.test_acl.TestACLDeprecated.test_root_baremetal_admin                 3.278
-ironic_inspector.test.unit.test_introspect.TestAbort.test_no_manage_boot                        3.162
-ironic_inspector.test.unit.test_introspect.TestAbort.test_firewall_update_exception             2.568
-ironic_inspector.test.unit.test_iptables.Test_ShouldEnableDhcp.test__should_enable_dhcp_false   2.143
+Test id                                                                                                         Runtime (s)
+--------------------------------------------------------------------------------------------------------------  -----------
+ironic_inspector.test.unit.test_migrations.TestMigrationSqlite.test_upgrade_twice                               21.721
+ironic_inspector.test.unit.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version                    20.284
+ironic_inspector.test.unit.test_migrations.TestMigrationsMySQL.test_upgrade_and_version                         19.985
+ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync                        18.422
+ironic_inspector.test.unit.test_migrations.ModelsMigrationsSyncMysql.test_models_sync                           14.245
+ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_all                                       1.951
+ironic_inspector.test.unit.test_swift.SwiftTestCase.test_get_object                                              1.371
+ironic_inspector.test.unit.test_manager.TestManagerInitHost.test_init_host_validate_processing_hooks_exception   1.266
+ironic_inspector.test.unit.test_rules.TestCheckConditionsMultiple.test_any                                       1.225
+ironic_inspector.test.unit.test_rules.TestCheckConditionsSchemePath.test_conditions_data_path                    1.120
 + rm -rf .stestr
 mkdir -p /build/ironic-inspector-11.1.0/debian/ironic-inspector/usr/share/ironic-inspector
 PYTHONPATH=/build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages oslo-config-generator \
@@ -5970,9 +6031,9 @@
 	--namespace oslo.service.sslutils \
 	--namespace oslo.service.wsgi
 pkgos-readd-keystone-authtoken-missing-options /build/ironic-inspector-11.1.0/debian/ironic-inspector/usr/share/ironic-inspector/inspector.conf keystone_authtoken ironic-inspector
-pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.sfvogU:[keystone_authtoken]/www_authenticate_uri
-pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.sfvogU:[keystone_authtoken]/auth_type
-pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.sfvogU:[keystone_authtoken]/region_name
+pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.bFgfOm:[keystone_authtoken]/www_authenticate_uri
+pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.bFgfOm:[keystone_authtoken]/auth_type
+pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.bFgfOm:[keystone_authtoken]/region_name
 mkdir -p /build/ironic-inspector-11.1.0/debian/ironic-inspector/etc/ironic-inspector/policy.d
 PYTHONPATH=/build/ironic-inspector-11.1.0/debian/tmp/usr/lib/python3/dist-packages oslopolicy-sample-generator \
 	--output-file /build/ironic-inspector-11.1.0/debian/ironic-inspector/etc/ironic-inspector/policy.d/00_default_policy.yaml \
@@ -6034,9 +6095,10 @@
 	cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \
 	pkgos-gen-systemd-unit $i ; \
 done
-+ ls -1 debian/ironic-inspector.init.in
-+ echo debian/ironic-inspector.init.in
-+ sed s/.init.in//
+++ ls -1 debian/ironic-inspector.init.in
++ for i in `ls -1 debian/*.init.in`
+++ echo debian/ironic-inspector.init.in
+++ sed s/.init.in//
 + MYINIT=debian/ironic-inspector
 + cp debian/ironic-inspector.init.in debian/ironic-inspector.init
 + cat /usr/share/openstack-pkg-tools/init-script-template
@@ -6046,7 +6108,7 @@
 	MYPKG=`echo $i | sed s/.service.in//` ; \
 	cp $MYPKG.service.in $MYPKG.service ; \
 done
-+ ls -1 debian/*.service.in
+++ ls -1 'debian/*.service.in'
 ls: cannot access 'debian/*.service.in': No such file or directory
 # Generate the systemd unit if there's no already existing .service.in
 set -e ; set -x ; for i in `ls debian/*.init.in` ; do \
@@ -6055,11 +6117,12 @@
 		pkgos-gen-systemd-unit $i ; \
 	fi \
 done
-+ ls debian/ironic-inspector.init.in
-+ echo debian/ironic-inspector.init.in
-+ sed s/.init.in/.service.in/
+++ ls debian/ironic-inspector.init.in
++ for i in `ls debian/*.init.in`
+++ echo debian/ironic-inspector.init.in
+++ sed s/.init.in/.service.in/
 + MYINIT=debian/ironic-inspector.service.in
-+ [ -e debian/ironic-inspector.service.in ]
++ '[' -e debian/ironic-inspector.service.in ']'
 + pkgos-gen-systemd-unit debian/ironic-inspector.init.in
 dh_installinit --error-handler=true
 make[1]: Leaving directory '/build/ironic-inspector-11.1.0'
@@ -6085,8 +6148,8 @@
 make[1]: Leaving directory '/build/ironic-inspector-11.1.0'
    dh_md5sums -O--buildsystem=python_distutils
    dh_builddeb -O--buildsystem=python_distutils
-dpkg-deb: building package 'python3-ironic-inspector' in '../python3-ironic-inspector_11.1.0-2_all.deb'.
 dpkg-deb: building package 'ironic-inspector' in '../ironic-inspector_11.1.0-2_all.deb'.
+dpkg-deb: building package 'python3-ironic-inspector' in '../python3-ironic-inspector_11.1.0-2_all.deb'.
  dpkg-genbuildinfo --build=binary -O../ironic-inspector_11.1.0-2_amd64.buildinfo
  dpkg-genchanges --build=binary -O../ironic-inspector_11.1.0-2_amd64.changes
 dpkg-genchanges: info: binary-only upload (no source code included)
@@ -6095,12 +6158,14 @@
 dpkg-buildpackage: info: binary-only upload (no source included)
 dpkg-genchanges: info: not including original source code in upload
 I: copying local configuration
+I: user script /srv/workspace/pbuilder/1751295/tmp/hooks/B01_cleanup starting
+I: user script /srv/workspace/pbuilder/1751295/tmp/hooks/B01_cleanup finished
 I: unmounting dev/ptmx filesystem
 I: unmounting dev/pts filesystem
 I: unmounting dev/shm filesystem
 I: unmounting proc filesystem
 I: unmounting sys filesystem
 I: cleaning the build env 
-I: removing directory /srv/workspace/pbuilder/2935949 and its subdirectories
-I: Current time: Tue May  2 13:24:37 -12 2023
-I: pbuilder-time-stamp: 1683077077
+I: removing directory /srv/workspace/pbuilder/1751295 and its subdirectories
+I: Current time: Tue Jun  4 22:16:58 +14 2024
+I: pbuilder-time-stamp: 1717489018