Skip to content

Commit cd8e58f

Browse files
committed
pgsql: Move the tmpdir creation process to the start action
1 parent 0c3f2cf commit cd8e58f

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

heartbeat/pgsql

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1609,6 +1609,25 @@ user_recovery_conf() {
16091609
}
16101610

16111611
make_recovery_conf() {
1612+
local version
1613+
1614+
version=`cat $OCF_RESKEY_pgdata/PG_VERSION`
1615+
if [ "$OCF_RESKEY_rep_mode" = "slave" ]; then
1616+
# For slave mode in PostgreSQL 12 and later, create the tmp directory to place recovery.conf.
1617+
ocf_version_cmp "$version" "12"
1618+
rc=$?
1619+
if [ $rc -eq 1 ]||[ $rc -eq 2 ]; then # PosrgreSQL 12 or later.
1620+
if ! mkdir -p $OCF_RESKEY_tmpdir || ! chown $OCF_RESKEY_pgdba $OCF_RESKEY_tmpdir || ! chmod 700 $OCF_RESKEY_tmpdir; then
1621+
ocf_exit_reason "Can't create directory $OCF_RESKEY_tmpdir or it is not readable by $OCF_RESKEY_pgdba"
1622+
return $OCF_ERR_PERM
1623+
fi
1624+
fi
1625+
else
1626+
if ! mkdir -p $OCF_RESKEY_tmpdir || ! chown $OCF_RESKEY_pgdba $OCF_RESKEY_tmpdir || ! chmod 700 $OCF_RESKEY_tmpdir; then
1627+
ocf_exit_reason "Can't create directory $OCF_RESKEY_tmpdir or it is not readable by $OCF_RESKEY_pgdba"
1628+
return $OCF_ERR_GENERIC
1629+
fi
1630+
fi
16121631
runasowner "touch $RECOVERY_CONF"
16131632
if [ $? -ne 0 ]; then
16141633
ocf_exit_reason "Can't create recovery.conf."
@@ -1977,26 +1996,13 @@ validate_ocf_check_level_10() {
19771996
fi
19781997
fi
19791998
fi
1980-
if ! mkdir -p $OCF_RESKEY_tmpdir || ! chown $OCF_RESKEY_pgdba $OCF_RESKEY_tmpdir || ! chmod 700 $OCF_RESKEY_tmpdir; then
1981-
ocf_exit_reason "Can't create directory $OCF_RESKEY_tmpdir or it is not readable by $OCF_RESKEY_pgdba"
1982-
return $OCF_ERR_PERM
1983-
fi
19841999
fi
19852000

19862001
if [ "$OCF_RESKEY_rep_mode" = "slave" ]; then
19872002
if ocf_is_ms; then
19882003
ocf_exit_reason "Replication(rep_mode=slave) does not support Master/Slave configuration."
19892004
return $OCF_ERR_CONFIGURED
19902005
fi
1991-
# For slave mode in PostgreSQL 12 and later, create the tmp directory to place recovery.conf.
1992-
ocf_version_cmp "$version" "12"
1993-
rc=$?
1994-
if [ $rc -eq 1 ]||[ $rc -eq 2 ]; then # PosrgreSQL 12 or later.
1995-
if ! mkdir -p $OCF_RESKEY_tmpdir || ! chown $OCF_RESKEY_pgdba $OCF_RESKEY_tmpdir || ! chmod 700 $OCF_RESKEY_tmpdir; then
1996-
ocf_exit_reason "Can't create directory $OCF_RESKEY_tmpdir or it is not readable by $OCF_RESKEY_pgdba"
1997-
return $OCF_ERR_PERM
1998-
fi
1999-
fi
20002006
fi
20012007

20022008
if use_replication_slot; then

0 commit comments

Comments
 (0)