From 82250f3629424385f21d18dc65e68eb2866d3d73 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Mon, 8 Apr 2024 11:15:24 +1000 Subject: [PATCH] ctdb-scripts: Move database handling to its own event script Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs --- ctdb/config/events/legacy/00.ctdb.script | 153 ++++----------------- .../legacy/{00.ctdb.script => 95.database.script} | 5 - ctdb/doc/ctdb-script.options.5.xml | 4 +- ctdb/doc/ctdb.1.xml | 60 ++++---- ctdb/doc/examples/ctdb.spec.in | 1 + ...00.ctdb.init.001.sh => 95.database.init.001.sh} | 0 ...00.ctdb.init.002.sh => 95.database.init.002.sh} | 0 ...00.ctdb.init.003.sh => 95.database.init.003.sh} | 0 ...00.ctdb.init.004.sh => 95.database.init.004.sh} | 0 ...00.ctdb.init.005.sh => 95.database.init.005.sh} | 0 ...00.ctdb.init.006.sh => 95.database.init.006.sh} | 0 ...00.ctdb.init.007.sh => 95.database.init.007.sh} | 0 ...00.ctdb.init.008.sh => 95.database.init.008.sh} | 0 ...00.ctdb.init.009.sh => 95.database.init.009.sh} | 0 .../scripts/{00.ctdb.sh => 95.database.sh} | 0 ctdb/wscript | 1 + 16 files changed, 62 insertions(+), 162 deletions(-) rewrite ctdb/config/events/legacy/00.ctdb.script (83%) copy ctdb/config/events/legacy/{00.ctdb.script => 95.database.script} (93%) rename ctdb/tests/UNIT/eventscripts/{00.ctdb.init.001.sh => 95.database.init.001.sh} (100%) rename ctdb/tests/UNIT/eventscripts/{00.ctdb.init.002.sh => 95.database.init.002.sh} (100%) rename ctdb/tests/UNIT/eventscripts/{00.ctdb.init.003.sh => 95.database.init.003.sh} (100%) rename ctdb/tests/UNIT/eventscripts/{00.ctdb.init.004.sh => 95.database.init.004.sh} (100%) rename ctdb/tests/UNIT/eventscripts/{00.ctdb.init.005.sh => 95.database.init.005.sh} (100%) rename ctdb/tests/UNIT/eventscripts/{00.ctdb.init.006.sh => 95.database.init.006.sh} (100%) rename ctdb/tests/UNIT/eventscripts/{00.ctdb.init.007.sh => 95.database.init.007.sh} (100%) rename ctdb/tests/UNIT/eventscripts/{00.ctdb.init.008.sh => 95.database.init.008.sh} (100%) rename ctdb/tests/UNIT/eventscripts/{00.ctdb.init.009.sh => 95.database.init.009.sh} (100%) rename ctdb/tests/UNIT/eventscripts/scripts/{00.ctdb.sh => 95.database.sh} (100%) diff --git a/ctdb/config/events/legacy/00.ctdb.script b/ctdb/config/events/legacy/00.ctdb.script dissimilarity index 83% index d287e7ad8d7..0c73f80c6aa 100755 --- a/ctdb/config/events/legacy/00.ctdb.script +++ b/ctdb/config/events/legacy/00.ctdb.script @@ -1,126 +1,27 @@ -#!/bin/sh - -# Event script for ctdb-specific setup and other things that don't fit -# elsewhere. - -[ -n "$CTDB_BASE" ] || - CTDB_BASE=$(d=$(dirname "$0") && cd -P "$d" && dirname "$PWD") - -. "${CTDB_BASE}/functions" - -load_script_options - -############################################################ - -# type is commonly supported and more portable than which(1) -# shellcheck disable=SC2039 -select_tdb_checker() -{ - # Find the best TDB consistency check available. - use_tdb_tool_check=false - type tdbtool >/dev/null 2>&1 && found_tdbtool=true - type tdbdump >/dev/null 2>&1 && found_tdbdump=true - - if $found_tdbtool && echo "help" | tdbtool | grep -q check; then - use_tdb_tool_check=true - elif $found_tdbtool && $found_tdbdump; then - cat </dev/null | - grep -q "Database integrity is OK"; then - return 0 - else - return 1 - fi - else - timeout 10 tdbdump "$_db" >/dev/null 2>/dev/null - return $? - fi -} - -check_persistent_databases() -{ - _dir="${CTDB_DBDIR_PERSISTENT:-${CTDB_VARDIR}/persistent}" - [ -d "$_dir" ] || return 0 - - for _db in "$_dir/"*.tdb.*[0-9]; do - [ -r "$_db" ] || continue - check_tdb "$_db" || - die "Persistent database $_db is corrupted! CTDB will not start." - done -} - -check_non_persistent_databases() -{ - _dir="${CTDB_DBDIR:-${CTDB_VARDIR}}" - [ -d "$_dir" ] || return 0 - - for _db in "${_dir}/"*.tdb.*[0-9]; do - [ -r "$_db" ] || continue - check_tdb "$_db" || { - _backup="${_db}.$(date +'%Y%m%d.%H%M%S').corrupt" - cat < - DATABASE SETUP + DATABASE HANDLING @@ -1004,7 +1004,7 @@ CTDB_PER_IP_ROUTING_TABLE_ID_HIGH=9000 - 00.ctdb + 95.database diff --git a/ctdb/doc/ctdb.1.xml b/ctdb/doc/ctdb.1.xml index e97da35489a..12075b86958 100644 --- a/ctdb/doc/ctdb.1.xml +++ b/ctdb/doc/ctdb.1.xml @@ -653,22 +653,23 @@ Interface[2]: Name:eth5 Link:up References:2 (active) # ctdb event status legacy monitor -00.ctdb OK 0.014 Sat Dec 17 19:39:11 2016 -01.reclock OK 0.013 Sat Dec 17 19:39:11 2016 -05.system OK 0.029 Sat Dec 17 19:39:11 2016 -10.interface OK 0.037 Sat Dec 17 19:39:11 2016 -11.natgw OK 0.011 Sat Dec 17 19:39:11 2016 -11.routing OK 0.007 Sat Dec 17 19:39:11 2016 -13.per_ip_routing OK 0.007 Sat Dec 17 19:39:11 2016 -20.multipathd OK 0.007 Sat Dec 17 19:39:11 2016 -31.clamd OK 0.007 Sat Dec 17 19:39:11 2016 -40.vsftpd OK 0.013 Sat Dec 17 19:39:11 2016 -41.httpd OK 0.018 Sat Dec 17 19:39:11 2016 -49.winbind OK 0.023 Sat Dec 17 19:39:11 2016 -50.samba OK 0.100 Sat Dec 17 19:39:12 2016 -60.nfs OK 0.376 Sat Dec 17 19:39:12 2016 -70.iscsi OK 0.009 Sat Dec 17 19:39:12 2016 -91.lvs OK 0.007 Sat Dec 17 19:39:12 2016 +00.ctdb OK 0.014 Sat Apr 15 19:39:11 2024 +01.reclock OK 0.013 Sat Apr 15 19:39:11 2024 +05.system OK 0.029 Sat Apr 15 19:39:11 2024 +10.interface OK 0.037 Sat Apr 15 19:39:11 2024 +11.natgw OK 0.011 Sat Apr 15 19:39:11 2024 +11.routing OK 0.007 Sat Apr 15 19:39:11 2024 +13.per_ip_routing OK 0.007 Sat Apr 15 19:39:11 2024 +20.multipathd OK 0.007 Sat Apr 15 19:39:11 2024 +31.clamd OK 0.007 Sat Apr 15 19:39:11 2024 +40.vsftpd OK 0.013 Sat Apr 15 19:39:11 2024 +41.httpd OK 0.018 Sat Apr 15 19:39:11 2024 +49.winbind OK 0.023 Sat Apr 15 19:39:11 2024 +50.samba OK 0.100 Sat Apr 15 19:39:12 2024 +60.nfs OK 0.376 Sat Apr 15 19:39:12 2024 +70.iscsi OK 0.009 Sat Apr 15 19:39:12 2024 +91.lvs OK 0.007 Sat Apr 15 19:39:12 2024 +95.database OK 0.009 Sat Apr 15 19:39:12 2024 @@ -676,19 +677,19 @@ Interface[2]: Name:eth5 Link:up References:2 (active) # ctdb event status legacy monitor -00.ctdb OK 0.011 Sat Dec 17 19:40:46 2016 -01.reclock OK 0.010 Sat Dec 17 19:40:46 2016 -05.system OK 0.030 Sat Dec 17 19:40:46 2016 -10.interface OK 0.041 Sat Dec 17 19:40:46 2016 -11.natgw OK 0.008 Sat Dec 17 19:40:46 2016 -11.routing OK 0.007 Sat Dec 17 19:40:46 2016 -13.per_ip_routing OK 0.007 Sat Dec 17 19:40:46 2016 -20.multipathd OK 0.007 Sat Dec 17 19:40:46 2016 -31.clamd OK 0.007 Sat Dec 17 19:40:46 2016 -40.vsftpd OK 0.013 Sat Dec 17 19:40:46 2016 -41.httpd OK 0.015 Sat Dec 17 19:40:46 2016 -49.winbind OK 0.022 Sat Dec 17 19:40:46 2016 -50.samba ERROR 0.077 Sat Dec 17 19:40:46 2016 +00.ctdb OK 0.011 Sat Apr 15 19:40:46 2024 +01.reclock OK 0.010 Sat Apr 15 19:40:46 2024 +05.system OK 0.030 Sat Apr 15 19:40:46 2024 +10.interface OK 0.041 Sat Apr 15 19:40:46 2024 +11.natgw OK 0.008 Sat Apr 15 19:40:46 2024 +11.routing OK 0.007 Sat Apr 15 19:40:46 2024 +13.per_ip_routing OK 0.007 Sat Apr 15 19:40:46 2024 +20.multipathd OK 0.007 Sat Apr 15 19:40:46 2024 +31.clamd OK 0.007 Sat Apr 15 19:40:46 2024 +40.vsftpd OK 0.013 Sat Apr 15 19:40:46 2024 +41.httpd OK 0.015 Sat Apr 15 19:40:46 2024 +49.winbind OK 0.022 Sat Apr 15 19:40:46 2024 +50.samba ERROR 0.077 Sat Apr 15 19:40:46 2024 OUTPUT: ERROR: samba tcp port 445 is not responding @@ -728,6 +729,7 @@ Interface[2]: Name:eth5 Link:up References:2 (active) * 60.nfs 70.iscsi 91.lvs +* 95.database * 02.local diff --git a/ctdb/doc/examples/ctdb.spec.in b/ctdb/doc/examples/ctdb.spec.in index 467188d5b9f..83c28b49559 100644 --- a/ctdb/doc/examples/ctdb.spec.in +++ b/ctdb/doc/examples/ctdb.spec.in @@ -151,6 +151,7 @@ if [ ! -L "$required_path" ] && [ ! -e "$required_path" ] ; then 01.reclock 05.system 10.interface + 95.database " for t in $default_scripts ; do tgt="%{_datadir}/ctdb/events/legacy/${t}.script" diff --git a/ctdb/tests/UNIT/eventscripts/00.ctdb.init.001.sh b/ctdb/tests/UNIT/eventscripts/95.database.init.001.sh similarity index 100% rename from ctdb/tests/UNIT/eventscripts/00.ctdb.init.001.sh rename to ctdb/tests/UNIT/eventscripts/95.database.init.001.sh diff --git a/ctdb/tests/UNIT/eventscripts/00.ctdb.init.002.sh b/ctdb/tests/UNIT/eventscripts/95.database.init.002.sh similarity index 100% rename from ctdb/tests/UNIT/eventscripts/00.ctdb.init.002.sh rename to ctdb/tests/UNIT/eventscripts/95.database.init.002.sh diff --git a/ctdb/tests/UNIT/eventscripts/00.ctdb.init.003.sh b/ctdb/tests/UNIT/eventscripts/95.database.init.003.sh similarity index 100% rename from ctdb/tests/UNIT/eventscripts/00.ctdb.init.003.sh rename to ctdb/tests/UNIT/eventscripts/95.database.init.003.sh diff --git a/ctdb/tests/UNIT/eventscripts/00.ctdb.init.004.sh b/ctdb/tests/UNIT/eventscripts/95.database.init.004.sh similarity index 100% rename from ctdb/tests/UNIT/eventscripts/00.ctdb.init.004.sh rename to ctdb/tests/UNIT/eventscripts/95.database.init.004.sh diff --git a/ctdb/tests/UNIT/eventscripts/00.ctdb.init.005.sh b/ctdb/tests/UNIT/eventscripts/95.database.init.005.sh similarity index 100% rename from ctdb/tests/UNIT/eventscripts/00.ctdb.init.005.sh rename to ctdb/tests/UNIT/eventscripts/95.database.init.005.sh diff --git a/ctdb/tests/UNIT/eventscripts/00.ctdb.init.006.sh b/ctdb/tests/UNIT/eventscripts/95.database.init.006.sh similarity index 100% rename from ctdb/tests/UNIT/eventscripts/00.ctdb.init.006.sh rename to ctdb/tests/UNIT/eventscripts/95.database.init.006.sh diff --git a/ctdb/tests/UNIT/eventscripts/00.ctdb.init.007.sh b/ctdb/tests/UNIT/eventscripts/95.database.init.007.sh similarity index 100% rename from ctdb/tests/UNIT/eventscripts/00.ctdb.init.007.sh rename to ctdb/tests/UNIT/eventscripts/95.database.init.007.sh diff --git a/ctdb/tests/UNIT/eventscripts/00.ctdb.init.008.sh b/ctdb/tests/UNIT/eventscripts/95.database.init.008.sh similarity index 100% rename from ctdb/tests/UNIT/eventscripts/00.ctdb.init.008.sh rename to ctdb/tests/UNIT/eventscripts/95.database.init.008.sh diff --git a/ctdb/tests/UNIT/eventscripts/00.ctdb.init.009.sh b/ctdb/tests/UNIT/eventscripts/95.database.init.009.sh similarity index 100% rename from ctdb/tests/UNIT/eventscripts/00.ctdb.init.009.sh rename to ctdb/tests/UNIT/eventscripts/95.database.init.009.sh diff --git a/ctdb/tests/UNIT/eventscripts/scripts/00.ctdb.sh b/ctdb/tests/UNIT/eventscripts/scripts/95.database.sh similarity index 100% rename from ctdb/tests/UNIT/eventscripts/scripts/00.ctdb.sh rename to ctdb/tests/UNIT/eventscripts/scripts/95.database.sh diff --git a/ctdb/wscript b/ctdb/wscript index 1a6bfb6d4fe..34a7a212de1 100644 --- a/ctdb/wscript +++ b/ctdb/wscript @@ -863,6 +863,7 @@ def build(bld): '01.reclock', '05.system', '10.interface', + '95.database', ] for t in default_scripts: tgt = os.path.join(bld.env.CTDB_DATADIR, fmt % (t)) -- 2.11.4.GIT