summaryrefslogtreecommitdiff
path: root/ctdb
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2020-02-25 15:04:41 +0100
committerMartin Schwenke <martins@samba.org>2020-02-27 06:07:41 +0000
commit26e1556819fd061efaac88875980771d1ebeb727 (patch)
treeeb3dc1566ea6a17a09496f7f831d36f292d6019f /ctdb
parentf7fe6fa5505bddb6d7bb4a571f61ecb35e9a59dd (diff)
downloadsamba-26e1556819fd061efaac88875980771d1ebeb727.tar.gz
ctdb-scripts: add new 48.netbios script for starting nmbd
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>
Diffstat (limited to 'ctdb')
-rwxr-xr-xctdb/config/events/legacy/48.netbios.script64
-rwxr-xr-xctdb/config/events/legacy/50.samba.script19
-rwxr-xr-xctdb/doc/examples/config_migrate.sh3
-rwxr-xr-xctdb/tests/UNIT/eventscripts/48.netbios.shutdown.011.sh14
-rwxr-xr-xctdb/tests/UNIT/eventscripts/48.netbios.startup.011.sh14
-rwxr-xr-xctdb/tests/UNIT/eventscripts/50.samba.shutdown.011.sh1
-rwxr-xr-xctdb/tests/UNIT/eventscripts/50.samba.startup.011.sh1
-rw-r--r--ctdb/tests/UNIT/eventscripts/scripts/48.netbios.sh21
-rw-r--r--ctdb/tests/UNIT/eventscripts/scripts/50.samba.sh4
9 files changed, 117 insertions, 24 deletions
diff --git a/ctdb/config/events/legacy/48.netbios.script b/ctdb/config/events/legacy/48.netbios.script
new file mode 100755
index 00000000000..bc4b9cb0ba9
--- /dev/null
+++ b/ctdb/config/events/legacy/48.netbios.script
@@ -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
diff --git a/ctdb/config/events/legacy/50.samba.script b/ctdb/config/events/legacy/50.samba.script
index ce9e05f9756..b0e2fff1e09 100755
--- a/ctdb/config/events/legacy/50.samba.script
+++ b/ctdb/config/events/legacy/50.samba.script
@@ -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
}
######################################################################
diff --git a/ctdb/doc/examples/config_migrate.sh b/ctdb/doc/examples/config_migrate.sh
index 8983105f1c9..2a63da0e952 100755
--- a/ctdb/doc/examples/config_migrate.sh
+++ b/ctdb/doc/examples/config_migrate.sh
@@ -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
index 00000000000..06498138577
--- /dev/null
+++ b/ctdb/tests/UNIT/eventscripts/48.netbios.shutdown.011.sh
@@ -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
index 00000000000..40b90a10e65
--- /dev/null
+++ b/ctdb/tests/UNIT/eventscripts/48.netbios.startup.011.sh
@@ -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
diff --git a/ctdb/tests/UNIT/eventscripts/50.samba.shutdown.011.sh b/ctdb/tests/UNIT/eventscripts/50.samba.shutdown.011.sh
index a64696bf723..94867e0a71f 100755
--- a/ctdb/tests/UNIT/eventscripts/50.samba.shutdown.011.sh
+++ b/ctdb/tests/UNIT/eventscripts/50.samba.shutdown.011.sh
@@ -10,6 +10,5 @@ export EVENTSCRIPT_TESTS_INIT_STYLE="debian"
ok <<EOF
Stopping smbd: OK
-Stopping nmbd: OK
EOF
simple_test
diff --git a/ctdb/tests/UNIT/eventscripts/50.samba.startup.011.sh b/ctdb/tests/UNIT/eventscripts/50.samba.startup.011.sh
index ce79767fb36..8c4699d45d2 100755
--- a/ctdb/tests/UNIT/eventscripts/50.samba.startup.011.sh
+++ b/ctdb/tests/UNIT/eventscripts/50.samba.startup.011.sh
@@ -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
index 00000000000..f578399a3cd
--- /dev/null
+++ b/ctdb/tests/UNIT/eventscripts/scripts/48.netbios.sh
@@ -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
+}
diff --git a/ctdb/tests/UNIT/eventscripts/scripts/50.samba.sh b/ctdb/tests/UNIT/eventscripts/scripts/50.samba.sh
index 3ffe18a201e..51175dbe84a 100644
--- a/ctdb/tests/UNIT/eventscripts/scripts/50.samba.sh
+++ b/ctdb/tests/UNIT/eventscripts/scripts/50.samba.sh
@@ -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