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