This is the mail archive of the
cluster-cvs@sourceware.org
mailing list for the cluster.
cluster: STABLE3 - cman init: improve cman config check
- From: "Fabio M. Di Nitto" <fabbione at fedoraproject dot org>
- To: cluster-cvs-relay at redhat dot com
- Date: Fri, 27 Mar 2009 19:06:42 +0000 (UTC)
- Subject: 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