master - cman: make ccsd startup optional and allow override of config loader

Fabio M. Di Nitto fabbione@fedoraproject.org
Thu Aug 14 14:46:00 GMT 2008


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=3fc1b89bcf0f0b2bfd53da2541e023865619cf24
Commit:        3fc1b89bcf0f0b2bfd53da2541e023865619cf24
Parent:        16f532e1d432fd13256079a6c34963843fe4f1c4
Author:        Fabio M. Di Nitto <fdinitto@redhat.com>
AuthorDate:    Thu Aug 7 06:04:30 2008 +0200
Committer:     Fabio M. Di Nitto <fdinitto@redhat.com>
CommitterDate: Thu Aug 14 15:18:02 2008 +0200

cman: make ccsd startup optional and allow override of config loader

implement support for CONFIG_LOADER envvar to select what config parsers
should cman use.

start ccsd only of we explicity select ccsconfig CONFIG_LOADER.

perform basic sanity check for other loaders into init script.

add some documentation on what loaders are available.

Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
---
 cman/init.d/cman |   64 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 54 insertions(+), 10 deletions(-)

diff --git a/cman/init.d/cman b/cman/init.d/cman
index 48313df..34932af 100644
--- a/cman/init.d/cman
+++ b/cman/init.d/cman
@@ -78,6 +78,19 @@ fi
 
 [ -n "$NODENAME" ] && cman_join_opts+=" -n $NODENAME"
 
+# CONFIG_LOADER -- select default config parser.
+# This can be:
+# xmlconfig       - read directly from cluster.conf and use ricci as default config
+#                   propagation method. (default)
+# ldapconfig      - read configuration from an ldap server.
+#                   Requires: LDAP_URL or/and LDAP_BASEDN envvar to be set.
+#                   LDAP_BINDDN and LDAP_BINDPWD have to be either both set or both unset.
+# corosync_parser - use internal corosync config file parser.
+# openaisparser   - use internal openais config file parser.
+# ccsconfig       - read configuration from ccsd daemon. This method is deprecated
+#                   and available only if building the code with --enable_legacy_code.
+[ -n "$CONFIG_LOADER" ] && cman_join_opts+=" -C $CONFIG_LOADER"
+
 load_modules()
 {
     errmsg=$( /sbin/modprobe configfs 2>&1 ) || return 1
@@ -118,6 +131,47 @@ start_cman()
     /sbin/cman_tool status &> /dev/null
     if [ $? -ne 0 ]
     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
+		;;
+	    ccsconfig)
+		if [ -x /sbin/ccsd ]; then
+		    echo -n "   Starting ccsd... "
+		    start_ccsd
+		    if [ $? -eq 0 ] 
+		    then
+			echo "done"
+		    else
+			echo "failed"
+			errmsg="Unable to start ccsd"
+			return 1
+		    fi
+		else
+			errmsg="ccsconfig has been selected but ccsd does not appear to be installed or executable"
+			return 1
+		fi
+		;;
+	    *)
+		# nothing to do for now
+		;;
+	esac
 	errmsg=$( /sbin/cman_tool -t $CMAN_CLUSTER_TIMEOUT -w join \
 	    $cman_join_opts 2>&1 ) || return 1
 
@@ -358,16 +412,6 @@ start()
 	return 1
     fi
 
-    echo -n "   Starting ccsd... "
-    start_ccsd
-    if [ $? -eq 0 ] 
-    then
-	echo "done"
-    else
-	echo "failed"
-	return 1
-    fi
-
     echo -n "   Starting cman... "
     start_cman
     if [ $? -eq 0 ] 



More information about the Cluster-cvs mailing list