cluster: RHEL6 - resource-agents: Add RHEVM status program
Lon Hohberger
lon at fedoraproject.org
Mon Jul 12 17:59:35 UTC 2010
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=fd5ac603f008627f331ca85146936a947446d7c1
Commit: fd5ac603f008627f331ca85146936a947446d7c1
Parent: a15d065081846d9ad84ce23e485f2127dc6e135f
Author: Lon Hohberger <lhh at redhat.com>
AuthorDate: Fri Jun 4 18:54:21 2010 -0400
Committer: Lon Hohberger <lhh at redhat.com>
CommitterDate: Mon Jul 12 13:59:19 2010 -0400
resource-agents: Add RHEVM status program
Resolves: rhbz#609497
Signed-off-by: Lon Hohberger <lhh at redhat.com>
---
rgmanager/src/resources/Makefile | 9 ++++-
rgmanager/src/resources/utils/rhev-check.sh | 55 +++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 1 deletions(-)
diff --git a/rgmanager/src/resources/Makefile b/rgmanager/src/resources/Makefile
index e1600cd..7ec6637 100644
--- a/rgmanager/src/resources/Makefile
+++ b/rgmanager/src/resources/Makefile
@@ -29,6 +29,9 @@ UTIL_TARGETS= \
utils/httpd-parse-config.pl utils/tomcat-parse-config.pl \
utils/member_util.sh utils/fs-lib.sh
+SBINDIRT= \
+ utils/rhev-check.sh
+
$(TARGET1):
mkdir -p utils
cat $(S)/$(TARGET1).in | sed \
@@ -66,12 +69,16 @@ install:
done
install -m755 $(TARGET1) ${sharedir}/utils
install -m755 $(TARGET2) $(TARGET3) ${sharedir}
+ install -d ${sbindir}
+ for i in $(SBINDIRT); do \
+ install -m755 $(S)/$$i ${sbindir}; \
+ done
uninstall:
${UNINSTALL} ${RESOURCES} ${GENERAL_TARGETS} \
${METADATA} ${EVENT_TARGETS} ${UTIL_TARGETS} \
$(TARGET1) $(TARGET2) $(TARGET3) \
- ${sharedir}
+ ${sharedir} ${SBINDIRT}
clean: generalclean
rm -f resources.rng
diff --git a/rgmanager/src/resources/utils/rhev-check.sh b/rgmanager/src/resources/utils/rhev-check.sh
new file mode 100644
index 0000000..48ee8fb
--- /dev/null
+++ b/rgmanager/src/resources/utils/rhev-check.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+MYNAME=`basename $0`
+
+do_log()
+{
+ declare severity=$1
+
+ shift
+ echo "<$severity> $*"
+ clulog -s $severity "$*"
+}
+
+if [ -z "$1" ]; then
+ do_log 4 No host specified.
+ exit 1
+fi
+
+do_log 6 "Checking RHEV status on $1"
+
+tries=3
+http_code=
+
+while [ $tries -gt 0 ]; do
+
+ # Record start/end times so we can calculate the difference
+ start_time=$(date +%s)
+ http_code="$(curl -m 10 -sk https://$1/RHEVManagerWeb/HealthStatus.aspx -D - | head -1 | cut -f2 -d' ')"
+
+ if [ "$http_code" = "200" ]; then
+ exit 0
+ fi
+
+ # Reduce sleep time if the attempt took a noticeable amount
+ # of time.
+ end_time=$(date +%s)
+ delta=$(((end_time - start_time)))
+ sleep_time=$(((5 - delta)))
+
+ ((tries-=1))
+
+ # if we're going to retry and we have a nonzero sleep time,
+ # go to sleep.
+ if [ $tries -gt 0 ] && [ $sleep_time -gt 0 ]; then
+ sleep $sleep_time
+ fi
+done
+
+if [ -n "$http_code" ]; then
+ do_log 3 "RHEV Status check on $1 failed; last HTTP code: $http_code"
+else
+ do_log 3 "RHEV Status check on $1 failed"
+fi
+
+exit 1
More information about the cluster-commits
mailing list