From e76736cf5598791d0cb5bb32bacef99e3c56ea1c Mon Sep 17 00:00:00 2001 From: "Fabio M. Di Nitto" Date: Mon, 23 Aug 2010 11:37:02 +0000 Subject: [PATCH] Based on auto-detection or user requested cluster managers for clvmd, set appropriate Required-Start and Required-Stop at configure time. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reorder the checks for user selected cluster managers to match auto detected ones, to be consistent in the output. Add special case for qdiskd that´s started after cman/lock_gulmd for RHEL-4/RHEL-5. --- WHATS_NEW | 1 + configure.in | 43 ++++++++++++++++++++++++++++------- scripts/clvmd_init_red_hat.in | 4 ++-- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/WHATS_NEW b/WHATS_NEW index b7f19233b..1c845b7b8 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.74 - ================================== + Automatically generate LSB Requires-Start for clvmd init script. Fix return code of pvmove --abort PV. Fix pvmove --abort to remove even for empty pvmove LV. Add configure --with-default-data-alignment. diff --git a/configure.in b/configure.in index 18484f72f..68e38b1b6 100644 --- a/configure.in +++ b/configure.in @@ -397,23 +397,37 @@ if test x$CLVMD != xnone && test x$CLUSTER = xnone; then fi dnl -- init pkgconfig if required -if test x$CLVMD != xnone && test x$PKGCONFIG_INIT != x1; then +if test x$CLVMD != xnone && test x$PKGCONFIG_INIT != x1; then pkg_config_init fi +dnl -- Express clvmd init script Required-Start / Required-Stop +CLVMD_CMANAGERS="" +dnl -- On RHEL4/RHEL5, qdiskd is started from a separate init script. +dnl -- Enable if we are build for either cman or gulm. +CLVMD_NEEDS_QDISKD=no dnl -- define build types if [[ `expr x"$CLVMD" : '.*gulm.*'` != 0 ]]; then BUILDGULM=yes -fi -if [[ `expr x"$CLVMD" : '.*corosync.*'` != 0 ]]; then - BUILDCOROSYNC=yes -fi -if [[ `expr x"$CLVMD" : '.*openais.*'` != 0 ]]; then - BUILDOPENAIS=yes + CLVMD_CMANAGERS="$CLVMD_CMANAGERS lock_gulmd" + CLVMD_NEEDS_QDISKD=yes fi if [[ `expr x"$CLVMD" : '.*cman.*'` != 0 ]]; then BUILDCMAN=yes + CLVMD_CMANAGERS="$CLVMD_CMANAGERS cman" + CLVMD_NEEDS_QDISKD=yes +fi +if [[ `expr x"$CLVMD" : '.*corosync.*'` != 0 ]]; then + BUILDCOROSYNC=yes + CLVMD_CMANAGERS="$CLVMD_CMANAGERS corosync" +fi +if [[ `expr x"$CLVMD" : '.*openais.*'` != 0 ]]; then + BUILDOPENAIS=yes + CLVMD_CMANAGERS="$CLVMD_CMANAGERS openais" +fi +if test x$CLVMD_NEEDS_QDISKD != xno; then + CLVMD_CMANAGERS="$CLVMD_CMANAGERS qdiskd" fi dnl -- sanity check around user selection @@ -568,18 +582,25 @@ if test x$CHECKDLM = xyes; then fi dnl -- If we are autodetecting, we need to re-create -dnl -- the depedencies checks and set a proper CLVMD. +dnl -- the depedencies checks and set a proper CLVMD, +dnl -- together with init script Required-Start/Stop entries. if test x$CLVMD = xall; then CLVMD=none + CLVMD_CMANAGERS="" + CLVMD_NEEDS_QDISKD=no if test x$HAVE_CCS = xyes && \ test x$HAVE_GULM = xyes; then AC_MSG_RESULT([Enabling clvmd gulm cluster manager]) CLVMD="$CLVMD,gulm" + CLVMD_CMANAGERS="$CLVMD_CMANAGERS lock_gulmd" + CLVMD_NEEDS_QDISKD=yes fi if test x$HAVE_CMAN = xyes && \ test x$HAVE_DLM = xyes; then AC_MSG_RESULT([Enabling clvmd cman cluster manager]) CLVMD="$CLVMD,cman" + CLVMD_CMANAGERS="$CLVMD_CMANAGERS cman" + CLVMD_NEEDS_QDISKD=yes fi if test x$HAVE_COROSYNC = xyes && \ test x$HAVE_QUORUM = xyes && \ @@ -588,12 +609,17 @@ if test x$CLVMD = xall; then test x$HAVE_CONFDB = xyes; then AC_MSG_RESULT([Enabling clvmd corosync cluster manager]) CLVMD="$CLVMD,corosync" + CLVMD_CMANAGERS="$CLVMD_CMANAGERS corosync" fi if test x$HAVE_COROSYNC = xyes && \ test x$HAVE_CPG = xyes && \ test x$HAVE_SALCK = xyes; then AC_MSG_RESULT([Enabling clvmd openais cluster manager]) CLVMD="$CLVMD,openais" + CLVMD_CMANAGERS="$CLVMD_CMANAGERS openais" + fi + if test x$CLVMD_NEEDS_QDISKD != xno; then + CLVMD_CMANAGERS="$CLVMD_CMANAGERS qdiskd" fi if test x$CLVMD = xnone; then AC_MSG_RESULT([Disabling clvmd build. No cluster manager detected.]) @@ -1238,6 +1264,7 @@ AC_SUBST(CLDNOWHOLEARCHIVE) AC_SUBST(CLDWHOLEARCHIVE) AC_SUBST(CLUSTER) AC_SUBST(CLVMD) +AC_SUBST(CLVMD_CMANAGERS) AC_SUBST(CMAN_CFLAGS) AC_SUBST(CMAN_LIBS) AC_SUBST(CMDLIB) diff --git a/scripts/clvmd_init_red_hat.in b/scripts/clvmd_init_red_hat.in index b1cc48ed2..3fc90c5cc 100644 --- a/scripts/clvmd_init_red_hat.in +++ b/scripts/clvmd_init_red_hat.in @@ -9,8 +9,8 @@ # ### BEGIN INIT INFO # Provides: clvmd -# Required-Start: $local_fs -# Required-Stop: $local_fs +# Required-Start: $local_fs@CLVMD_CMANAGERS@ +# Required-Stop: $local_fs@CLVMD_CMANAGERS@ # Short-Description: This service is Clusterd LVM Daemon. # Description: Cluster daemon for userland logical volume management tools. ### END INIT INFO