Merge "Poll resource tracker for ironic cpus as well as count"

This commit is contained in:
Jenkins 2014-12-12 23:52:48 +00:00 committed by Gerrit Code Review
commit 3e6fe6fd47

View File

@ -496,18 +496,20 @@ function create_bridge_and_vms {
}
function wait_for_nova_resources {
# After nodes have been enrolled, we need to wait for n-cpu's periodic
# task populate the resource tracker with available nodes. Wait for 2
# minutes before timing out.
local expected_count=$1
echo_summary "Waiting 2 minutes for Nova resource tracker to pick up $expected_count Ironic nodes"
# After nodes have been enrolled, we need to wait for both ironic and
# nova's periodic tasks to populate the resource tracker with available
# nodes and resources. Wait up to 2 minutes for a given resource before
# timing out.
local resource=$1
local expected_count=$2
echo_summary "Waiting 2 minutes for Nova resource tracker to pick up $resource >= $expected_count"
for i in $(seq 1 120); do
if [ $(nova hypervisor-stats | grep " count " | get_field 2) -ge $expected_count ]; then
if [ $(nova hypervisor-stats | grep " $resource " | get_field 2) -ge $expected_count ]; then
return 0
fi
sleep 1
done
die $LINENO "Nova hypervisor-stats did not register at least $expected_count nodes"
die $LINENO "Timed out waiting for Nova hypervisor-stats $resource >= $expected_count"
}
function enroll_nodes {
@ -546,6 +548,7 @@ function enroll_nodes {
fi
local total_nodes=0
local total_cpus=0
while read hardware_info; do
if ! is_ironic_hardware; then
local mac_address=$hardware_info
@ -575,6 +578,7 @@ function enroll_nodes {
ironic port-create --address $mac_address --node_uuid $node_id
total_nodes=$((total_nodes+1))
total_cpus=$((total_cpus+$ironic_node_cpu))
done < $ironic_hwinfo_file
# create the nova flavor
@ -587,7 +591,8 @@ function enroll_nodes {
nova flavor-key baremetal set "cpu_arch"="x86_64"
if [ "$VIRT_DRIVER" == "ironic" ]; then
wait_for_nova_resources $total_nodes
wait_for_nova_resources "count" $total_nodes
wait_for_nova_resources "vcpus" $total_cpus
fi
}