Add PostgreSQL HA OCF agent modular baseline
This commit is contained in:
Executable
+88
@@ -0,0 +1,88 @@
|
||||
#!/bin/bash
|
||||
|
||||
# OCF Resource Agent:
|
||||
# loxthelion:managed-container
|
||||
#
|
||||
# v0.4
|
||||
# Container lifecycle: systemd user Quadlet
|
||||
# Application profile: PostgreSQL
|
||||
#
|
||||
# Version 0.4 adds explicit PostgreSQL demotion scaffolding.
|
||||
# Healthy primaries report OCF_RUNNING_PROMOTED while healthy standbys
|
||||
# report OCF_SUCCESS.
|
||||
|
||||
: "${OCF_ROOT:=/usr/lib/ocf}"
|
||||
OCF_FUNCTIONS_DIR="${OCF_ROOT}/lib/heartbeat"
|
||||
. "${OCF_FUNCTIONS_DIR}/ocf-shellfuncs"
|
||||
|
||||
# Pacemaker uses "Promoted" terminology, while many OCF shell libraries
|
||||
# still expose the historical OCF_RUNNING_MASTER constant for return code 8.
|
||||
# Normalize both forms here so the agent remains portable.
|
||||
: "${OCF_RUNNING_PROMOTED:=${OCF_RUNNING_MASTER:-8}}"
|
||||
|
||||
|
||||
# Resolve modules relative to this entrypoint, independent of Pacemaker's cwd.
|
||||
MC_MODULE_DIR="$(CDPATH= cd -- "$(command dirname -- "${BASH_SOURCE[0]}")" && pwd)/managed-container.d"
|
||||
for MC_MODULE in common container postgres auth replication notify promote demote rejoin; do
|
||||
if ! . "${MC_MODULE_DIR}/${MC_MODULE}.sh"; then
|
||||
ocf_exit_reason "Unable to load resource-agent module ${MC_MODULE_DIR}/${MC_MODULE}.sh"
|
||||
exit "${OCF_ERR_CONFIGURED}"
|
||||
fi
|
||||
done
|
||||
unset MC_MODULE
|
||||
|
||||
case "$1" in
|
||||
meta-data)
|
||||
meta_data
|
||||
exit "${OCF_SUCCESS}"
|
||||
;;
|
||||
|
||||
validate-all)
|
||||
validate_all
|
||||
exit $?
|
||||
;;
|
||||
|
||||
monitor|status)
|
||||
managed_monitor
|
||||
exit $?
|
||||
;;
|
||||
|
||||
start)
|
||||
validate_all || exit $?
|
||||
managed_start
|
||||
exit $?
|
||||
;;
|
||||
|
||||
stop)
|
||||
managed_stop
|
||||
exit $?
|
||||
;;
|
||||
|
||||
promote)
|
||||
validate_all || exit $?
|
||||
managed_promote
|
||||
exit $?
|
||||
;;
|
||||
|
||||
demote)
|
||||
validate_all || exit $?
|
||||
managed_demote
|
||||
exit $?
|
||||
;;
|
||||
|
||||
notify)
|
||||
managed_notify
|
||||
exit $?
|
||||
;;
|
||||
|
||||
rejoin)
|
||||
validate_all || exit $?
|
||||
managed_rejoin
|
||||
exit $?
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|promote|demote|notify|rejoin|monitor|status|validate-all|meta-data}"
|
||||
exit "${OCF_ERR_UNIMPLEMENTED}"
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user