aboutsummaryrefslogtreecommitdiffstats
path: root/validation-scripts/all-nodes.sh
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2016-02-28 20:19:49 -0500
committerDan Prince <dprince@redhat.com>2016-02-29 08:18:14 -0500
commitbbb38534866c96e7688618b41449cae07871f3a2 (patch)
tree436647a5e246b1dba3d4d067eb3bd91855653d6d /validation-scripts/all-nodes.sh
parentfe0b757bd454f26dd2f2a3423ba5a684899bae61 (diff)
Use set -e for validation-scripts/all-nodes.sh
Update this script to use 'set -e' for all commands except the ping checks themselves which we allow to fail so we can give enhanced output. This resolves an issue where some commands could fail and cause an undetectable error (the scripted exits with success) thus causing a case where Heat won't detect any network errors at all. This was recently the case with git commit 45be848 where we switched to use python -c 'import ipaddr' which wasn't even installed as a library on our overcloud nodes, thus causing all network validations to silently fail. Change-Id: I40ed6a537136e866357cc0d9304e905afdd28522 Depends-On: Ia617f44b4673b89202e5e5cdcac9b50f46b3e6c8 Related-bug: #1551048
Diffstat (limited to 'validation-scripts/all-nodes.sh')
-rw-r--r--validation-scripts/all-nodes.sh5
1 files changed, 5 insertions, 0 deletions
diff --git a/validation-scripts/all-nodes.sh b/validation-scripts/all-nodes.sh
index ae1fddf..31b4d6b 100644
--- a/validation-scripts/all-nodes.sh
+++ b/validation-scripts/all-nodes.sh
@@ -1,4 +1,5 @@
#!/bin/bash
+set -e
# For each unique remote IP (specified via Heat) we check to
# see if one of the locally configured networks matches and if so we
@@ -17,11 +18,13 @@ function ping_controller_ips() {
in_network=$(python -c "import ipaddr; net=ipaddr.IPNetwork('$LOCAL_NETWORK'); addr=ipaddr.IPAddress('$REMOTE_IP'); print(addr in net)")
if [[ $in_network == "True" ]]; then
echo -n "Trying to ping $REMOTE_IP for local network $LOCAL_NETWORK..."
+ set +e
if ! $ping -W 300 -c 1 $REMOTE_IP &> /dev/null; then
echo "FAILURE"
echo "$REMOTE_IP is not pingable. Local Network: $LOCAL_NETWORK" >&2
exit 1
fi
+ set -e
echo "SUCCESS"
fi
done
@@ -34,6 +37,7 @@ function ping_controller_ips() {
# multiple gateways.
function ping_default_gateways() {
DEFAULT_GW=$(ip r | grep ^default | cut -d " " -f 3)
+ set +e
for GW in $DEFAULT_GW; do
echo -n "Trying to ping default gateway ${GW}..."
if ! ping -c 1 $GW &> /dev/null; then
@@ -42,6 +46,7 @@ function ping_default_gateways() {
exit 1
fi
done
+ set -e
echo "SUCCESS"
}