]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-scripts: add new 48.netbios script for starting nmbd
authorGünther Deschner <gd@samba.org>
Tue, 25 Feb 2020 14:04:41 +0000 (15:04 +0100)
committerMartin Schwenke <martins@samba.org>
Thu, 27 Feb 2020 06:07:41 +0000 (06:07 +0000)
This change basically moves out nmbd references from 50.samba script to
a new 48.netbios script. Accordingly ctdb test scripts are tweaked to
cope with newly added script.

Signed-off-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/config/events/legacy/48.netbios.script [new file with mode: 0755]
ctdb/config/events/legacy/50.samba.script
ctdb/doc/examples/config_migrate.sh
ctdb/tests/UNIT/eventscripts/48.netbios.shutdown.011.sh [new file with mode: 0755]
ctdb/tests/UNIT/eventscripts/48.netbios.startup.011.sh [new file with mode: 0755]
ctdb/tests/UNIT/eventscripts/50.samba.shutdown.011.sh
ctdb/tests/UNIT/eventscripts/50.samba.startup.011.sh
ctdb/tests/UNIT/eventscripts/scripts/48.netbios.sh [new file with mode: 0644]
ctdb/tests/UNIT/eventscripts/scripts/50.samba.sh

diff --git a/ctdb/config/events/legacy/48.netbios.script b/ctdb/config/events/legacy/48.netbios.script
new file mode 100755 (executable)
index 0000000..bc4b9cb
--- /dev/null
@@ -0,0 +1,64 @@
+#!/bin/sh
+# ctdb event script for Netbios Name Services
+
+[ -n "$CTDB_BASE" ] || \
+    CTDB_BASE=$(d=$(dirname "$0") ; cd -P "$d" ; dirname "$PWD")
+
+. "${CTDB_BASE}/functions"
+
+detect_init_style
+
+case $CTDB_INIT_STYLE in
+       suse)
+               CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmb}
+               ;;
+       debian)
+               CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmbd}
+               ;;
+       *)
+               # Use redhat style as default:
+               CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""}
+               ;;
+esac
+
+service_name="netbios"
+
+load_script_options
+
+ctdb_setup_state_dir "service" "$service_name"
+
+service_start ()
+{
+    # make sure nmbd is not already started
+    service "$CTDB_SERVICE_NMB" stop > /dev/null 2>&1
+    killall -0 -q nmbd && {
+       sleep 1
+       # make absolutely sure nmbd is dead
+       killall -q -9 nmbd
+    }
+
+    # start Samba nmbd service. Start it reniced, as under very heavy load
+    # the number of smbd processes will mean that it leaves few cycles
+    # for anything else
+    nice_service "$CTDB_SERVICE_NMB" start || die "Failed to start nmbd"
+}
+
+service_stop ()
+{
+    service "$CTDB_SERVICE_NMB" stop
+}
+
+###########################
+
+case "$1" in
+startup)
+       service_start
+       ;;
+
+shutdown)
+       service_stop
+       ;;
+
+esac
+
+exit 0
index ce9e05f9756f5c2f8d0fc469eabbdc87d48fb315..b0e2fff1e0964b35eabc98d54996a68d2bb7f952 100755 (executable)
@@ -11,16 +11,13 @@ detect_init_style
 case $CTDB_INIT_STYLE in
        suse)
                CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb}
-               CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmb}
                ;;
        debian)
                CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smbd}
-               CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmbd}
                ;;
        *)
                # Use redhat style as default:
                CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb}
-               CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""}
                ;;
 esac
 
@@ -34,27 +31,14 @@ service_start ()
 {
     # make sure samba is not already started
     service "$CTDB_SERVICE_SMB" stop > /dev/null 2>&1
-    if [ -n "$CTDB_SERVICE_NMB" ] ; then
-       service "$CTDB_SERVICE_NMB" stop > /dev/null 2>&1
-    fi
     killall -0 -q smbd && {
        sleep 1
        # make absolutely sure samba is dead
        killall -q -9 smbd
     }
-    killall -0 -q nmbd && {
-       sleep 1
-       # make absolutely sure samba is dead
-       killall -q -9 nmbd
-    }
-
     # start Samba service. Start it reniced, as under very heavy load
     # the number of smbd processes will mean that it leaves few cycles
     # for anything else
-    if [ -n "$CTDB_SERVICE_NMB" ] ; then
-       nice_service "$CTDB_SERVICE_NMB" start || die "Failed to start nmbd"
-    fi
-
     nice_service "$CTDB_SERVICE_SMB" start || die "Failed to start samba"
 }
 
@@ -62,9 +46,6 @@ service_stop ()
 {
     service "$CTDB_SERVICE_SMB" stop
     program_stack_traces "smbd" 5
-    if [ -n "$CTDB_SERVICE_NMB" ] ; then
-       service "$CTDB_SERVICE_NMB" stop
-    fi
 }
 
 ######################################################################
index 8983105f1c9b1e15a9c277225635123d6de5d1a3..2a63da0e9523e74858ac04304a947fe904ed0ab6 100755 (executable)
@@ -241,12 +241,13 @@ CTDB_LVS_PUBLIC_IP
 CTDB_MONITOR_MPDEVICES
 # 31.clamd
 CTDB_CLAMD_SOCKET
+# 48.netbios
+CTDB_SERVICE_NMB
 # 49.winbind
 CTDB_SERVICE_WINBIND
 # 50.samba
 CTDB_SAMBA_CHECK_PORTS
 CTDB_SAMBA_SKIP_SHARE_CHECK
-CTDB_SERVICE_NMB
 CTDB_SERVICE_SMB
 # 60.nfs
 CTDB_NFS_CALLOUT
diff --git a/ctdb/tests/UNIT/eventscripts/48.netbios.shutdown.011.sh b/ctdb/tests/UNIT/eventscripts/48.netbios.shutdown.011.sh
new file mode 100755 (executable)
index 0000000..0649813
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "shutdown, Debian init style"
+
+setup
+
+export EVENTSCRIPT_TESTS_INIT_STYLE="debian"
+
+ok <<EOF
+Stopping nmbd: OK
+EOF
+simple_test
diff --git a/ctdb/tests/UNIT/eventscripts/48.netbios.startup.011.sh b/ctdb/tests/UNIT/eventscripts/48.netbios.startup.011.sh
new file mode 100755 (executable)
index 0000000..40b90a1
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "shutdown, Debian init style"
+
+setup
+
+export EVENTSCRIPT_TESTS_INIT_STYLE="debian"
+
+ok <<EOF
+Starting nmbd: OK
+EOF
+simple_test
index a64696bf7230a6bf65ce650266ad49cb3003387c..94867e0a71f72e2908f57fd73c54727f30f7fa34 100755 (executable)
@@ -10,6 +10,5 @@ export EVENTSCRIPT_TESTS_INIT_STYLE="debian"
 
 ok <<EOF
 Stopping smbd: OK
-Stopping nmbd: OK
 EOF
 simple_test
index ce79767fb366a6bafcf4e38259a92cac43d14557..8c4699d45d2d3d5a7114bfa75bf69f4d350299e3 100755 (executable)
@@ -9,7 +9,6 @@ setup
 export EVENTSCRIPT_TESTS_INIT_STYLE="debian"
 
 ok <<EOF
-Starting nmbd: OK
 Starting smbd: OK
 EOF
 simple_test
diff --git a/ctdb/tests/UNIT/eventscripts/scripts/48.netbios.sh b/ctdb/tests/UNIT/eventscripts/scripts/48.netbios.sh
new file mode 100644 (file)
index 0000000..f578399
--- /dev/null
@@ -0,0 +1,21 @@
+setup ()
+{
+       service_name="netbios"
+
+       if [ "$1" != "down" ] ; then
+
+               debug "Marking Netbios name services as up, listening and managed by CTDB"
+
+               # All possible service names for all known distros.
+               for i in "nmb" "nmbd" ; do
+                       service "$i" force-started
+               done
+       else
+               debug "Marking Netbios name services as down, not listening and not managed by CTDB"
+
+               # All possible service names for all known distros.
+               for i in "nmb" "nmbd" ; do
+                       service "$i" force-stopped
+               done
+       fi
+}
index 3ffe18a201e69485c5c378919b9e0aba3a05c66d..51175dbe84ab9a960b4fc30189c88f1f8da2f522 100644 (file)
@@ -7,7 +7,7 @@ setup ()
                debug "Marking Samba services as up, listening and managed by CTDB"
 
                # All possible service names for all known distros.
-               for i in "smb" "nmb" "samba" "smbd" "nmbd" ; do
+               for i in "smb" "samba" "smbd" ; do
                        service "$i" force-started
                done
 
@@ -21,7 +21,7 @@ setup ()
                debug "Marking Samba services as down, not listening and not managed by CTDB"
 
                # All possible service names for all known distros.
-               for i in "smb" "nmb" "samba" "smbd" "nmbd" ; do
+               for i in "smb" "samba" "smbd" ; do
                        service "$i" force-stopped
                done