This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

cluster: STABLE3 - cman init: improve cman config check


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
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]