# pgsql

CONFIG
	Agent pgsql
	AgentRoot /usr/lib/ocf/resource.d/heartbeat
	InstallPackage postgresql
        HangTimeout 20

SETUP-AGENT
	# nothing

VARIABLE
        cluster_name="$(pg_conftool -s show cluster_name)"
        cluster_version="$(pg_conftool -s show cluster_name | cut -d/ -f1)"

CASE-BLOCK crm_setting
        Env OCF_RESKEY_CRM_meta_timeout=15000
        Env OCF_RESKEY_pgctl=/usr/lib/postgresql/$cluster_version/bin/pg_ctl
        Env OCF_RESKEY_pgdata=/var/lib/postgresql/$cluster_name
        Env OCF_RESKEY_config=/etc/postgresql/$cluster_name/postgresql.conf
        Env OCF_RESKEY_socketdir=/var/run/postgresql

CASE-BLOCK default_status
        AgentRun stop

CASE-BLOCK prepare
        Include crm_setting
        Include default_status

CASE "check base env"
	Include prepare
	AgentRun start OCF_SUCCESS

CASE "check base env: invalid 'OCF_RESKEY_pgctl'"
	Include prepare
	Env OCF_RESKEY_pgctl=no_such
	AgentRun start OCF_ERR_INSTALLED

CASE "normal start"
	Include prepare
	AgentRun start OCF_SUCCESS

CASE "normal stop"
	Include prepare
	AgentRun start
	AgentRun stop OCF_SUCCESS

CASE "double start"
	Include prepare
	AgentRun start
	AgentRun start OCF_SUCCESS

CASE "double stop"
	Include prepare
	AgentRun stop OCF_SUCCESS

CASE "running monitor"
	Include prepare
	AgentRun start
	AgentRun monitor OCF_SUCCESS

CASE "not running monitor"
	Include prepare
	AgentRun monitor OCF_NOT_RUNNING

CASE "unimplemented command"
	Include prepare
	AgentRun no_cmd OCF_ERR_UNIMPLEMENTED

CASE "non-existent user"
	Include prepare
	Env OCF_RESKEY_pgdba=no_user
	AgentRun start OCF_ERR_INSTALLED

CASE "invalid user"
	Include prepare
	Env OCF_RESKEY_pgdba=nobody
	AgentRun start OCF_ERR_PERM
