The way in which this check counted compute nodes was
broken because of an incorrect for/else condition. If
the check is run with a nova.conf like we have in
devstack, where the API database is configured but
the [database]/connection is pointing at cell0, where
there are no compute nodes, the check passes saying
there are no compute nodes even if the are compute
nodes found in the cell databases (in the for loop).
This is because the else executes because the for loop
doesn't break, and then _count_compute_nodes returns 0
for cell0 and overwrites the num_computes variable.
This fixes the issue by checking if we have cell mappings
before running the loop, else we hit the else block as
was originally intended.
Reviewed: https:/ /review. openstack. org/599875 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=dcd421ae9e6 f0391fea06c9d20 949267354c3b3c
Committed: https:/
Submitter: Zuul
Branch: master
commit dcd421ae9e6f039 1fea06c9d209492 67354c3b3c
Author: Matt Riedemann <email address hidden>
Date: Tue Sep 4 20:57:33 2018 -0400
Fix nova-status "_check_ resource_ providers" check
The way in which this check counted compute nodes was /connection is pointing at cell0, where compute_ nodes returns 0
broken because of an incorrect for/else condition. If
the check is run with a nova.conf like we have in
devstack, where the API database is configured but
the [database]
there are no compute nodes, the check passes saying
there are no compute nodes even if the are compute
nodes found in the cell databases (in the for loop).
This is because the else executes because the for loop
doesn't break, and then _count_
for cell0 and overwrites the num_computes variable.
This fixes the issue by checking if we have cell mappings
before running the loop, else we hit the else block as
was originally intended.
Change-Id: I1a706d028a9ca8 94348a19b7b3df1 ea673e4ec90
Partial-Bug: #1790721