ctdb-scripts: Drop configuration variable CTDB_SERVICE_AUTOSTARTSTOP
authorMartin Schwenke <martin@meltin.net>
Sat, 17 Dec 2016 19:21:27 +0000 (06:21 +1100)
committerMartin Schwenke <martins@samba.org>
Mon, 16 Jan 2017 10:57:07 +0000 (11:57 +0100)
This has bit-rotted, at least for NFS.  It can be fixed but it is
better to remove it because it adds a lot of unnecessary complexity.

Variable event_name becomes unused so remove it.  Also remove
associated tests.

To continue to manage/unmanage services while CTDB is running:

* Start service by hand and then flag it as managed

* Mark service as unmanaged and shut it down by hand

In some cases CTDB does something fancy - e.g. start Samba under
"nice", so care is needed.  One technique is to disable the
eventscript, mark as managed, run the startup event by hand and then
re-enable the eventscript.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
14 files changed:
ctdb/config/events.d/06.nfs
ctdb/config/events.d/31.clamd
ctdb/config/events.d/40.vsftpd
ctdb/config/events.d/41.httpd
ctdb/config/events.d/49.winbind
ctdb/config/events.d/50.samba
ctdb/config/events.d/60.nfs
ctdb/config/events.d/70.iscsi
ctdb/config/functions
ctdb/doc/ctdbd.conf.5.xml
ctdb/tests/eventscripts/49.winbind.monitor.050.sh [deleted file]
ctdb/tests/eventscripts/49.winbind.monitor.051.sh [deleted file]
ctdb/tests/eventscripts/50.samba.monitor.050.sh [deleted file]
ctdb/tests/eventscripts/50.samba.monitor.051.sh [deleted file]

index 0ecbb57f3239966e8902611545cb2ee623a94b12..e59f26534c38f36d5f6cc1dc2d13b8ef47a6fb88 100755 (executable)
@@ -27,8 +27,6 @@ nfs_callout_pre ()
 
 nfs_callout_init "$service_state_dir"
 
-ctdb_start_stop_service
-
 is_ctdb_managed_service || exit 0
 
 case "$1" in
index 2d301ebfbdb184654cd62d6c9b8aee2c2db66fdc..500fb2fd82c92ea06efde0a8245685741133f658 100755 (executable)
@@ -31,8 +31,6 @@ service_start ()
 
 loadconfig
 
-ctdb_start_stop_service
-
 is_ctdb_managed_service || exit 0
 
 case "$1" in
index 703edaf183c33dbaf0a6b67288b47e94d4228fe5..2fbe3c10415ccdb0652a32e6c12313e96c1165eb 100755 (executable)
@@ -25,8 +25,6 @@ service_reconfigure ()
 
 loadconfig
 
-ctdb_start_stop_service
-
 is_ctdb_managed_service || exit 0
 
 case "$1" in
index 4d04b39418a1ccae6603ea3ef9f4f416a1d647f1..87503484e0e9e374a041f51078dc64d3231f0e3c 100755 (executable)
@@ -47,8 +47,6 @@ service_stop ()
 
 loadconfig
 
-ctdb_start_stop_service
-
 is_ctdb_managed_service || exit 0
 
 case "$1" in
index d95f90f02ac49eed31f854ccefb80001b8b9febd..8955c507d0214bf95814a6ef980700997bbccf17 100755 (executable)
@@ -34,8 +34,6 @@ service_stop ()
 
 ###########################
 
-ctdb_start_stop_service
-
 is_ctdb_managed_service || exit 0
 
 ###########################
index 161a885ba03f6416355858b81e4ed2defd9247c2..603e708351527758d01ca57ab1920a63f448a1c6 100755 (executable)
@@ -149,8 +149,6 @@ list_samba_ports ()
 
 ###########################
 
-ctdb_start_stop_service
-
 is_ctdb_managed_service || exit 0
 
 ###########################
index 02d6e2b0bbe86c26854654dffc0a2eb631ae3306..bd6be78e9a532497c3b6ade72eb5d5755af3bb17 100755 (executable)
@@ -250,8 +250,6 @@ nfs_update_lock_info ()
 
 nfs_callout_init "$service_state_dir"
 
-ctdb_start_stop_service
-
 is_ctdb_managed_service || exit 0
 
 case "$1" in
index 0937a12a8a9ed48ce367f30d4083ec68dc867b03..8851c594467f18432b4eda3b4a7e5a5f2b13e20f 100755 (executable)
@@ -13,8 +13,6 @@ service_name="iscsi"
 
 loadconfig
 
-ctdb_start_stop_service
-
 is_ctdb_managed_service || exit 0
 
 [ -z "$CTDB_START_ISCSI_SCRIPTS" ] && {
index 7e37bbb445f4175a249ac6f286725c4792158e44..17c6e26a9bef30569b8f028b3ed60ed2920b92c5 100755 (executable)
@@ -893,56 +893,6 @@ is_ctdb_managed_service ()
     [ "${t#* ${service_name} }" != "${t}" ]
 }
 
-ctdb_start_stop_service ()
-{
-    assert_service_name
-
-    # Allow service-start/service-stop pseudo-events to start/stop
-    # services when we're not auto-starting/stopping and we're not
-    # monitoring.
-    case "$event_name" in
-       service-start)
-           if is_ctdb_managed_service ; then
-               die 'service-start event not permitted when service is managed'
-           fi
-           if [ "$CTDB_SERVICE_AUTOSTARTSTOP" = "yes" ] ; then
-               die 'service-start event not permitted with CTDB_SERVICE_AUTOSTARTSTOP=yes'
-           fi
-           ctdb_service_start
-           exit $?
-           ;;
-       service-stop)
-           if is_ctdb_managed_service ; then
-               die 'service-stop event not permitted when service is managed'
-           fi
-           if [ "$CTDB_SERVICE_AUTOSTARTSTOP" = "yes" ] ; then
-               die 'service-stop event not permitted with CTDB_SERVICE_AUTOSTARTSTOP=yes'
-           fi
-           ctdb_service_stop
-           exit $?
-           ;;
-    esac
-
-    # Do nothing unless configured to...
-    [ "$CTDB_SERVICE_AUTOSTARTSTOP" = "yes" ] || return 0
-
-    [ "$event_name" = "monitor" ] || return 0
-
-    if is_ctdb_managed_service ; then
-       if ! is_ctdb_previously_managed_service ; then
-           echo "Starting service \"$service_name\" - now managed"
-           background_with_logging ctdb_service_start
-           exit $?
-       fi
-    else
-       if is_ctdb_previously_managed_service ; then
-           echo "Stopping service \"$service_name\" - no longer managed"
-           background_with_logging ctdb_service_stop
-           exit $?
-       fi
-    fi
-}
-
 ctdb_service_start ()
 {
     # The service is marked managed if we've ever tried to start it.
@@ -1168,4 +1118,3 @@ update_tickles ()
 }
 
 script_name="${0##*/}"       # basename
-event_name="$1"
index bbc02c63e86cd482e22581c23d20e7c289ce1344..9aca804b1251df4574fff6d3a6b98550b490f4ec 100644 (file)
@@ -1485,19 +1485,6 @@ CTDB_PER_IP_ROUTING_TABLE_ID_HIGH=9000
          </listitem>
        </varlistentry>
 
-       <varlistentry>
-         <term>CTDB_SERVICE_AUTOSTARTSTOP=yes|no</term>
-         <listitem>
-           <para>
-             When CTDB should start and stop services if they become
-             managed or unmanaged.
-           </para>
-           <para>
-             Default is no.
-           </para>
-         </listitem>
-       </varlistentry>
-
       </variablelist>
 
     </refsect2>
diff --git a/ctdb/tests/eventscripts/49.winbind.monitor.050.sh b/ctdb/tests/eventscripts/49.winbind.monitor.050.sh
deleted file mode 100755 (executable)
index 02589b3..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-. "${TEST_SCRIPTS_DIR}/unit.sh"
-
-define_test "auto-start, simple"
-
-setup_winbind "down"
-
-export CTDB_SERVICE_AUTOSTARTSTOP="yes"
-export CTDB_MANAGED_SERVICES="foo winbind bar"
-
-ok <<EOF
-Starting service "winbind" - now managed
-&Starting winbind: OK
-EOF
-simple_test
diff --git a/ctdb/tests/eventscripts/49.winbind.monitor.051.sh b/ctdb/tests/eventscripts/49.winbind.monitor.051.sh
deleted file mode 100755 (executable)
index fbad928..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-. "${TEST_SCRIPTS_DIR}/unit.sh"
-
-define_test "auto-stop, simple"
-
-setup_winbind
-
-export CTDB_SERVICE_AUTOSTARTSTOP="yes"
-export CTDB_MANAGED_SERVICES="foo"
-unset CTDB_MANAGES_WINBIND
-
-ok <<EOF
-Stopping service "winbind" - no longer managed
-&Stopping winbind: OK
-EOF
-simple_test
diff --git a/ctdb/tests/eventscripts/50.samba.monitor.050.sh b/ctdb/tests/eventscripts/50.samba.monitor.050.sh
deleted file mode 100755 (executable)
index 69530f3..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-. "${TEST_SCRIPTS_DIR}/unit.sh"
-
-define_test "auto-start, simple"
-
-setup_samba "down"
-
-export CTDB_SERVICE_AUTOSTARTSTOP="yes"
-export CTDB_MANAGED_SERVICES="foo samba winbind bar"
-
-ok <<EOF
-Starting service "samba" - now managed
-&Starting smb: OK
-EOF
-simple_test
diff --git a/ctdb/tests/eventscripts/50.samba.monitor.051.sh b/ctdb/tests/eventscripts/50.samba.monitor.051.sh
deleted file mode 100755 (executable)
index 04c1fce..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-. "${TEST_SCRIPTS_DIR}/unit.sh"
-
-define_test "auto-stop, simple"
-
-setup_samba
-
-export CTDB_SERVICE_AUTOSTARTSTOP="yes"
-export CTDB_MANAGED_SERVICES="foo"
-unset CTDB_MANAGES_SAMBA
-
-ok <<EOF
-Stopping service "samba" - no longer managed
-&Stopping smb: OK
-EOF
-simple_test