Implement basic checks in functest/devstack-test.sh

Change-Id: I669a1d7464a5c3124186e107484710bd43c0ee42
Implements: blueprint devstack-plugin
This commit is contained in:
Dmitry Tantsur 2015-04-01 16:31:23 +02:00
parent 6df2042802
commit 72873eeef6
2 changed files with 44 additions and 2 deletions

View File

@ -38,6 +38,8 @@ function discoverd_iniset {
function install_discoverd {
setup_develop $IRONIC_DISCOVERD_DIR
# NOTE(dtantsur): required for tests
install_package jq
}
function install_discoverd_dhcp {

View File

@ -3,6 +3,16 @@
set -eux
INTROSPECTION_SLEEP=${INTROSPECTION_SLEEP:-30}
EXPECTED_CPU_ARCH=${EXPECTED_CPU_ARCH:-x86_64}
EXPECTED_CPUS=${EXPECTED_CPUS:-1}
EXPECTED_MIN_LOCAL_GB=${EXPECTED_MIN_LOCAL_GB:-1}
EXPECTED_MIN_MEMORY_MB=${EXPECTED_MIN_MEMORY_MB:-512}
ironic_url=$(keystone endpoint-get --service baremetal | tail -n +4 | head -n -1 | tr '|' ' ' | awk '{ print $2; }')
if [ -z "$ironic_url" ]; then
echo "Cannot find Ironic URL"
exit 1
fi
nodes=$(ironic node-list | tail -n +4 | head -n -1 | tr '|' ' ' | awk '{ print $1; }')
if [ -z "$nodes" ]; then
@ -12,7 +22,7 @@ fi
for uuid in $nodes; do
for p in cpus cpu_arch memory_mb local_gb; do
ironic node-update $uuid remove properties/$p > /dev/null
ironic node-update $uuid remove properties/$p > /dev/null || true
done
done
@ -46,4 +56,34 @@ while true; do
fi
done
# TODO(dtantsur): check results
# NOTE(dtantsur): it's hard to get JSON field from Ironic client output, using
# HTTP API and JQ instead.
token=$(keystone token-get | grep ' id ' | tr '|' ' ' | awk '{ print $2; }')
function curl_ir {
curl -H "X-Auth-Token: $token" -X $1 "$ironic_url/$2"
}
for uuid in $nodes; do
node_json=$(curl_ir GET v1/nodes/$uuid)
properties=$(echo $node_json | jq '.properties')
echo Properties for $uuid: $properties
if [ "$(echo $properties | jq -r '.cpu_arch')" != "$EXPECTED_CPU_ARCH" ]; then
echo "Expected $EXPECTED_CPU_ARCH"
exit 1
fi
if [ "$(echo $properties | jq -r '.cpus')" != "$EXPECTED_CPUS" ]; then
echo "Expected $EXPECTED_CPUS"
exit 1
fi
if [ "$(echo $properties | jq -r '.local_gb')" -lt "$EXPECTED_MIN_LOCAL_GB" ]; then
echo "Expected at least $EXPECTED_MIN_LOCAL_GB"
exit 1
fi
if [ "$(echo $properties | jq -r '.memory_mb')" -lt "$EXPECTED_MIN_MEMORY_MB" ]; then
echo "Expected at least $EXPECTED_MIN_MEMORY_MB"
exit 1
fi
done
echo "Validation passed"