public inbox for cluster-cvs@sourceware.org
help / color / mirror / Atom feed
* cluster: STABLE3 - cman init: improve cman config check
@ 2009-03-27 19:48 Fabio M. Di Nitto
  0 siblings, 0 replies; only message in thread
From: Fabio M. Di Nitto @ 2009-03-27 19:48 UTC (permalink / raw)
  To: cluster-cvs-relay

Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=7c61522722a1f068474689583c91d1604bb4cbe5
Commit:        7c61522722a1f068474689583c91d1604bb4cbe5
Parent:        22a4c3182219454c23ee5573cb781e0f6f7fd22d
Author:        Fabio M. Di Nitto <fdinitto@redhat.com>
AuthorDate:    Thu Mar 26 08:45:19 2009 +0100
Committer:     Fabio M. Di Nitto <fdinitto@redhat.com>
CommitterDate: Fri Mar 27 20:05:46 2009 +0100

cman init: improve cman config check

move the whole cman config check into its own functions

add basic check for xmlconfig

fix nok() function to print the error (spotted while testing new function)

pass default config file from the Makefile to the init script

Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
---
 cman/init.d/Makefile |    2 +
 cman/init.d/cman.in  |   64 ++++++++++++++++++++++++++++++-------------------
 2 files changed, 41 insertions(+), 25 deletions(-)

diff --git a/cman/init.d/Makefile b/cman/init.d/Makefile
index c7a226b..dca9c37 100644
--- a/cman/init.d/Makefile
+++ b/cman/init.d/Makefile
@@ -14,6 +14,8 @@ $(TARGET): $(S)/$(TARGET).in
 		-e 's#@SBINDIR@#${sbindir}#g' \
 		-e 's#@INITDDIR@#${initddir}#g' \
 		-e 's#@NOTIFYDDIR@#${notifyddir}#g' \
+		-e 's#@CONFDIR@#${CONFDIR}#g' \
+		-e 's#@CONFFILE@#${CONFFILE}#g' \
 	> $(TARGET)
 
 clean: generalclean
diff --git a/cman/init.d/cman.in b/cman/init.d/cman.in
index 0d097d7..7505f83 100644
--- a/cman/init.d/cman.in
+++ b/cman/init.d/cman.in
@@ -147,6 +147,7 @@ ok() {
 }
 
 nok() {
+	echo $errmsg
 	failure
 	echo
 	exit 1
@@ -277,6 +278,43 @@ runwrap()
 	fi
 }
 
+# NOTE: this could probably grow a bit to do config sanity checks
+cman_checkconfig()
+{
+	case "$CONFIG_LOADER" in
+	ldapconfig)
+		if [ -n "$LDAP_URL" ] || [ -n "$LDAP_BASEDN" ]; then
+			if [ -n "$LDAP_BINDDN" ]; then
+				if [ -z "$LDAP_BINDPWD" ]; then
+					errmsg="ldadconfig has been select but LDAP_BINDPWD is not set"
+					return 1
+				fi
+			fi
+			if [ -n "$LDAP_BINDPWD" ]; then
+				if [ -z "$LDAP_BINDDN" ]; then
+					errmsg="ldadconfig has been select but LDAP_BINDDN is not set"
+					return 1
+				fi
+			fi
+		else
+			errmsg="ldadconfig has been select but neither LDAP_URL or LDAP_BASEDN have been set"
+			return 1
+		fi
+	;;
+	xmlconfig|"")
+		configfile=@CONFDIR@/@CONFFILE@
+		[ -n "$COROSYNC_CLUSTER_CONFIG_FILE" ] && \
+			configfile=$COROSYNC_CLUSTER_CONFIG_FILE
+
+		if [ ! -f $configfile ]; then
+			errmsg="xmlconfig cannot find $configfile"
+			return 1
+		fi
+	;;
+	esac
+	return 0
+}
+
 ### the real stuff starts here
 
 load_modules()
@@ -299,31 +337,7 @@ start_configfs()
 start_cman()
 {
 	# cman
-	if ! cman_running; then
-		case "$CONFIG_LOADER" in
-		ldapconfig)
-			if [ -n "$LDAP_URL" ] || [ -n "$LDAP_BASEDN" ]; then
-				if [ -n "$LDAP_BINDDN" ]; then
-					if [ -z "$LDAP_BINDPWD" ]; then
-						errmsg="ldadconfig has been select but LDAP_BINDPWD is not set"
-						return 1
-					fi
-				fi
-				if [ -n "$LDAP_BINDPWD" ]; then
-					if [ -z "$LDAP_BINDDN" ]; then
-						errmsg="ldadconfig has been select but LDAP_BINDDN is not set"
-						return 1
-					fi
-				fi
-			else
-				errmsg="ldadconfig has been select but neither LDAP_URL or LDAP_BASEDN have been set"
-				return 1
-			fi
-		;;
-		*)
-			# nothing to do for now
-		;;
-		esac
+	if ! cman_running && cman_checkconfig; then
 		errmsg=$( @SBINDIR@/cman_tool -t $CMAN_CLUSTER_TIMEOUT -w join \
 			$cman_join_opts 2>&1 ) || return 1
 


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-03-27 19:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-27 19:48 cluster: STABLE3 - cman init: improve cman config check Fabio M. Di Nitto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).