43220e7a1b
validate-action Resolves: rhbz#2157872
145 lines
3.9 KiB
Diff
145 lines
3.9 KiB
Diff
From 8388aca6aa13e4bef7c29261ac35cf3fb747fcb6 Mon Sep 17 00:00:00 2001
|
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
|
Date: Wed, 11 Jan 2023 13:22:24 +0100
|
|
Subject: [PATCH 1/3] exportfs: move testdir() to start-action to avoid failing
|
|
during resource creation (validate-all) and make it create the directory if
|
|
it doesnt exist
|
|
|
|
---
|
|
heartbeat/exportfs | 27 +++++++++++++++------------
|
|
1 file changed, 15 insertions(+), 12 deletions(-)
|
|
|
|
diff --git a/heartbeat/exportfs b/heartbeat/exportfs
|
|
index c10777fa9..2307a9e67 100755
|
|
--- a/heartbeat/exportfs
|
|
+++ b/heartbeat/exportfs
|
|
@@ -301,6 +301,16 @@ exportfs_monitor ()
|
|
fi
|
|
}
|
|
|
|
+testdir() {
|
|
+ if [ ! -d $1 ]; then
|
|
+ mkdir -p "$1"
|
|
+ if [ $? -ne 0 ]; then
|
|
+ ocf_exit_reason "Unable to create directory $1"
|
|
+ return 1
|
|
+ fi
|
|
+ fi
|
|
+ return 0
|
|
+}
|
|
export_one() {
|
|
local dir=$1
|
|
local opts sep
|
|
@@ -331,6 +341,10 @@ export_one() {
|
|
}
|
|
exportfs_start ()
|
|
{
|
|
+ if ! forall testdir; then
|
|
+ return $OCF_ERR_INSTALLED
|
|
+ fi
|
|
+
|
|
if exportfs_monitor; then
|
|
ocf_log debug "already exported"
|
|
return $OCF_SUCCESS
|
|
@@ -428,14 +442,6 @@ exportfs_stop ()
|
|
fi
|
|
}
|
|
|
|
-testdir() {
|
|
- if [ ! -d $1 ]; then
|
|
- ocf_is_probe ||
|
|
- ocf_log err "$1 does not exist or is not a directory"
|
|
- return 1
|
|
- fi
|
|
- return 0
|
|
-}
|
|
exportfs_validate_all ()
|
|
{
|
|
if echo "$OCF_RESKEY_fsid" | grep -q -F ','; then
|
|
@@ -447,9 +453,6 @@ exportfs_validate_all ()
|
|
ocf_exit_reason "use integer fsid when exporting multiple directories"
|
|
return $OCF_ERR_CONFIGURED
|
|
fi
|
|
- if ! forall testdir; then
|
|
- return $OCF_ERR_INSTALLED
|
|
- fi
|
|
}
|
|
|
|
for dir in $OCF_RESKEY_directory; do
|
|
@@ -466,7 +469,7 @@ for dir in $OCF_RESKEY_directory; do
|
|
fi
|
|
else
|
|
case "$__OCF_ACTION" in
|
|
- stop|monitor)
|
|
+ stop|monitor|validate-all)
|
|
canonicalized_dir="$dir"
|
|
ocf_log debug "$dir does not exist"
|
|
;;
|
|
|
|
From a0b67ba60e5589c17a0ff4c296ec4235edb59bfd Mon Sep 17 00:00:00 2001
|
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
|
Date: Wed, 11 Jan 2023 13:25:57 +0100
|
|
Subject: [PATCH 2/3] pgsql: dont run promotable checks during validate-all
|
|
action
|
|
|
|
---
|
|
heartbeat/pgsql | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/heartbeat/pgsql b/heartbeat/pgsql
|
|
index aa8a13a84..a99946af5 100755
|
|
--- a/heartbeat/pgsql
|
|
+++ b/heartbeat/pgsql
|
|
@@ -1937,7 +1937,7 @@ pgsql_validate_all() {
|
|
fi
|
|
fi
|
|
|
|
- if is_replication; then
|
|
+ if [ "$OCF_CHECK_LEVEL" -eq 10 ] && is_replication; then
|
|
REP_MODE_CONF=${OCF_RESKEY_tmpdir}/rep_mode.conf
|
|
PGSQL_LOCK=${OCF_RESKEY_tmpdir}/PGSQL.lock
|
|
XLOG_NOTE_FILE=${OCF_RESKEY_tmpdir}/xlog_note
|
|
@@ -2002,7 +2002,7 @@ pgsql_validate_all() {
|
|
fi
|
|
fi
|
|
|
|
- if [ "$OCF_RESKEY_rep_mode" = "slave" ]; then
|
|
+ if [ "$OCF_CHECK_LEVEL" -eq 10 ] && [ "$OCF_RESKEY_rep_mode" = "slave" ]; then
|
|
if ocf_is_ms; then
|
|
ocf_exit_reason "Replication(rep_mode=slave) does not support Master/Slave configuration."
|
|
return $OCF_ERR_CONFIGURED
|
|
@@ -2163,6 +2163,7 @@ case "$1" in
|
|
exit $OCF_SUCCESS;;
|
|
esac
|
|
|
|
+[ "$__OCF_ACTION" != "validate-all" ] && OCF_CHECK_LEVEL=10
|
|
pgsql_validate_all
|
|
rc=$?
|
|
|
|
|
|
From 5c68e3315414071b22b95e909b0beaa7a90191bc Mon Sep 17 00:00:00 2001
|
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
|
Date: Mon, 23 Jan 2023 12:55:35 +0100
|
|
Subject: [PATCH 3/3] pgsql: dont fail validate-all action if config file isnt
|
|
available (could be on shared storage)
|
|
|
|
---
|
|
heartbeat/pgsql | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/heartbeat/pgsql b/heartbeat/pgsql
|
|
index a99946af5..626c1f737 100755
|
|
--- a/heartbeat/pgsql
|
|
+++ b/heartbeat/pgsql
|
|
@@ -1835,7 +1835,9 @@ check_config() {
|
|
|
|
if [ ! -f "$1" ]; then
|
|
if ocf_is_probe; then
|
|
- ocf_log info "Configuration file is $1 not readable during probe."
|
|
+ ocf_log info "Unable to read $1 during probe."
|
|
+ rc=1
|
|
+ elif [ "$OCF_CHECK_LEVEL" -lt 10 ]; then
|
|
rc=1
|
|
else
|
|
ocf_exit_reason "Configuration file $1 doesn't exist"
|