Blame SOURCES/bz1640587-pgsql-ignore-masters-re-promote.patch

8b04f5
From 355cd29f2dee828bfe0a4ab64f425827aba7dd3b Mon Sep 17 00:00:00 2001
8b04f5
From: Hideo Yamauchi <renayama19661014@ybb.ne.jp>
8b04f5
Date: Wed, 17 Oct 2018 09:54:37 +0900
8b04f5
Subject: [PATCH] Mid: pgsql: Fix to ignore Master's re-promote.
8b04f5
8b04f5
---
8b04f5
 heartbeat/pgsql | 13 +++++++++++++
8b04f5
 1 file changed, 13 insertions(+)
8b04f5
8b04f5
diff --git a/heartbeat/pgsql b/heartbeat/pgsql
8b04f5
index 380866da1..38f6ceeb7 100755
8b04f5
--- a/heartbeat/pgsql
8b04f5
+++ b/heartbeat/pgsql
8b04f5
@@ -680,6 +680,7 @@ pgsql_start() {
8b04f5
 
8b04f5
 #pgsql_promote: Promote PostgreSQL
8b04f5
 pgsql_promote() {
8b04f5
+    local output
8b04f5
     local target
8b04f5
     local rc
8b04f5
 
8b04f5
@@ -687,6 +688,18 @@ pgsql_promote() {
8b04f5
         ocf_exit_reason "Not in a replication mode."
8b04f5
         return $OCF_ERR_CONFIGURED
8b04f5
     fi
8b04f5
+
8b04f5
+    output=`exec_sql "${CHECK_MS_SQL}"`
8b04f5
+    if [ $? -ne 0 ]; then
8b04f5
+        report_psql_error $rc $loglevel "Can't get PostgreSQL recovery status on promote."
8b04f5
+        return $OCF_ERR_GENERIC
8b04f5
+    fi
8b04f5
+
8b04f5
+    if [ "$output" = "f" ]; then
8b04f5
+        ocf_log info "PostgreSQL is alredy Master. Don't execute promote."
8b04f5
+        return $OCF_SUCCESS
8b04f5
+    fi
8b04f5
+
8b04f5
     rm -f ${XLOG_NOTE_FILE}.*
8b04f5
 
8b04f5
     for target in $NODE_LIST; do