From e3cd2871a2624f4e3394cb1a7a7883a71f658a5d Mon Sep 17 00:00:00 2001 From: Florian Haas Date: Tue, 11 May 2010 17:45:08 +0200 Subject: OCF resource agent: use $OCF_FUNCTIONS_DIR Linux-HA introduced the $OCF_FUNCTIONS_DIR variable to make resource agents executable in-place. --- packaging/common/rabbitmq-server.ocf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index 97c58ea2..dcf07987 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -49,7 +49,8 @@ ####################################################################### # Initialization: -. ${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs +: ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/resource.d/heartbeat} +. ${OCF_FUNCTIONS_DIR}/.ocf-shellfuncs ####################################################################### @@ -359,4 +360,4 @@ case $__OCF_ACTION in ;; esac -exit $? \ No newline at end of file +exit $? -- cgit v1.2.1 From df2985bda7e3272c23ae9557aeddc1811c39fef2 Mon Sep 17 00:00:00 2001 From: Florian Haas Date: Tue, 11 May 2010 17:47:48 +0200 Subject: OCF resource agent: use ocf_is_probe Linux-HA comes with the ocf_is_probe function to determine whether a probe operation is in progress. Use this to determine whether to do full or partial validation. --- packaging/common/rabbitmq-server.ocf | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index dcf07987..0fb5dbc2 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -259,12 +259,6 @@ rabbit_status() { rabbit_start() { local rc - rabbit_validate_full - rc=$? - if [ "$rc" != $OCF_SUCCESS ]; then - return $rc - fi - export_vars $RABBITMQ_MULTI start_all 1 > ${RABBITMQ_LOG_BASE}/startup_log 2> ${RABBITMQ_LOG_BASE}/startup_err & @@ -339,7 +333,11 @@ case $__OCF_ACTION in ;; esac -rabbit_validate_partial || exit +if ocf_is_probe; then + rabbit_validate_partial || exit +else + rabbit_validate_full || exit +fi case $__OCF_ACTION in start) -- cgit v1.2.1 From a47109d0a8bc60d55d168cc7851aea80b6ddad6a Mon Sep 17 00:00:00 2001 From: Alexandru Scvortov Date: Mon, 7 Jun 2010 12:12:49 +0100 Subject: we should still run rabbit_validate_full when rabbit is started --- packaging/common/rabbitmq-server.ocf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index 0fb5dbc2..542485bf 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -259,6 +259,12 @@ rabbit_status() { rabbit_start() { local rc + rabbit_validate_full + rc=$? + if [ "$rc" != $OCF_SUCCESS ]; then + return $rc + fi + export_vars $RABBITMQ_MULTI start_all 1 > ${RABBITMQ_LOG_BASE}/startup_log 2> ${RABBITMQ_LOG_BASE}/startup_err & -- cgit v1.2.1 From d3b63bfd4603818f0ad60715d920f7f69726e584 Mon Sep 17 00:00:00 2001 From: Alexandru Scvortov Date: Mon, 7 Jun 2010 12:25:03 +0100 Subject: merged Florian's 03 patch --- packaging/common/rabbitmq-server.ocf | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index 542485bf..d8f8d0d3 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -259,10 +259,9 @@ rabbit_status() { rabbit_start() { local rc - rabbit_validate_full - rc=$? - if [ "$rc" != $OCF_SUCCESS ]; then - return $rc + if rabbit_status; then + ocf_log info "Resource already running." + return $OCF_SUCCESS fi export_vars @@ -296,6 +295,12 @@ rabbit_start() { rabbit_stop() { local rc + + if ! rabbit_status; then + ocf_log info "Resource not running." + return $OCF_SUCCESS + fi + $RABBITMQ_MULTI stop_all & rc=$? -- cgit v1.2.1 From 1b99b5394d7add6edb44f0ab926bef5d0fb636ca Mon Sep 17 00:00:00 2001 From: Alexandru Scvortov Date: Mon, 7 Jun 2010 13:28:30 +0100 Subject: merged Florian's 04 patch --- packaging/common/rabbitmq-server.ocf | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index d8f8d0d3..a480be23 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -204,34 +204,34 @@ export_vars() { rabbit_validate_partial() { if [ ! -x $RABBITMQ_MULTI ]; then ocf_log err "rabbitmq-server multi $RABBITMQ_MULTI does not exist or is not executable"; - return $OCF_ERR_ARGS; + exit $OCF_ERR_ARGS; fi if [ ! -x $RABBITMQ_CTL ]; then ocf_log err "rabbitmq-server ctl $RABBITMQ_CTL does not exist or is not executable"; - return $OCF_ERR_ARGS; + exit $OCF_ERR_ARGS; fi } rabbit_validate_full() { if [ ! -z $RABBITMQ_CLUSTER_CONFIG_FILE ] && [ ! -e $RABBITMQ_CLUSTER_CONFIG_FILE ]; then ocf_log err "rabbitmq-server cluster_config_file $RABBITMQ_CLUSTER_CONFIG_FILE does not exist or is not a file"; - return $OCF_ERR_ARGS; + exit $OCF_ERR_ARGS; fi if [ ! -z $RABBITMQ_CONFIG_FILE ] && [ ! -e $RABBITMQ_CONFIG_FILE ]; then ocf_log err "rabbitmq-server config_file $RABBITMQ_CONFIG_FILE does not exist or is not a file"; - return $OCF_ERR_ARGS; + exit $OCF_ERR_ARGS; fi if [ ! -z $RABBITMQ_LOG_BASE ] && [ ! -d $RABBITMQ_LOG_BASE ]; then ocf_log err "rabbitmq-server log_base $RABBITMQ_LOG_BASE does not exist or is not a directory"; - return $OCF_ERR_ARGS; + exit $OCF_ERR_ARGS; fi if [ ! -z $RABBITMQ_MNESIA_BASE ] && [ ! -d $RABBITMQ_MNESIA_BASE ]; then ocf_log err "rabbitmq-server mnesia_base $RABBITMQ_MNESIA_BASE does not exist or is not a directory"; - return $OCF_ERR_ARGS; + exit $OCF_ERR_ARGS; fi rabbit_validate_partial @@ -252,7 +252,7 @@ rabbit_status() { ;; *) ocf_log err "Unexpected return from rabbitmqctl $NODENAME_ARG status: $rc" - return $OCF_ERR_GENERIC + exit $OCF_ERR_GENERIC esac } @@ -282,10 +282,9 @@ rabbit_start() { rc=$? if [ "$rc" = $OCF_SUCCESS ]; then start_wait=0 - elif [ "$rc" != $OCF_NOT_RUNNING ]; then ocf_log info "rabbitmq-server start failed: $rc" - return $OCF_ERR_GENERIC + exit $OCF_ERR_GENERIC fi sleep 2 done @@ -320,7 +319,7 @@ rabbit_stop() { break elif [ "$rc" != $OCF_SUCCESS ]; then ocf_log info "rabbitmq-server stop failed: $rc" - return $OCF_ERR_GENERIC + exit $OCF_ERR_GENERIC fi sleep 2 done @@ -345,9 +344,9 @@ case $__OCF_ACTION in esac if ocf_is_probe; then - rabbit_validate_partial || exit + rabbit_validate_partial else - rabbit_validate_full || exit + rabbit_validate_full fi case $__OCF_ACTION in -- cgit v1.2.1 From adba381f2624977c90b216c921223f451efeee83 Mon Sep 17 00:00:00 2001 From: Alexandru Scvortov Date: Mon, 7 Jun 2010 13:34:53 +0100 Subject: merge Florian's 05 patch OCF resource agent: fix validate exit codes Exit with $OCF_ERR_INSTALLED if validate fails due to non-availability of a required binary, or config file. --- packaging/common/rabbitmq-server.ocf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index a480be23..b3ba773b 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -204,34 +204,34 @@ export_vars() { rabbit_validate_partial() { if [ ! -x $RABBITMQ_MULTI ]; then ocf_log err "rabbitmq-server multi $RABBITMQ_MULTI does not exist or is not executable"; - exit $OCF_ERR_ARGS; + exit $OCF_ERR_INSTALLED; fi if [ ! -x $RABBITMQ_CTL ]; then ocf_log err "rabbitmq-server ctl $RABBITMQ_CTL does not exist or is not executable"; - exit $OCF_ERR_ARGS; + exit $OCF_ERR_INSTALLED; fi } rabbit_validate_full() { if [ ! -z $RABBITMQ_CLUSTER_CONFIG_FILE ] && [ ! -e $RABBITMQ_CLUSTER_CONFIG_FILE ]; then ocf_log err "rabbitmq-server cluster_config_file $RABBITMQ_CLUSTER_CONFIG_FILE does not exist or is not a file"; - exit $OCF_ERR_ARGS; + exit $OCF_ERR_INSTALLED; fi if [ ! -z $RABBITMQ_CONFIG_FILE ] && [ ! -e $RABBITMQ_CONFIG_FILE ]; then ocf_log err "rabbitmq-server config_file $RABBITMQ_CONFIG_FILE does not exist or is not a file"; - exit $OCF_ERR_ARGS; + exit $OCF_ERR_INSTALLED; fi if [ ! -z $RABBITMQ_LOG_BASE ] && [ ! -d $RABBITMQ_LOG_BASE ]; then ocf_log err "rabbitmq-server log_base $RABBITMQ_LOG_BASE does not exist or is not a directory"; - exit $OCF_ERR_ARGS; + exit $OCF_ERR_INSTALLED; fi if [ ! -z $RABBITMQ_MNESIA_BASE ] && [ ! -d $RABBITMQ_MNESIA_BASE ]; then ocf_log err "rabbitmq-server mnesia_base $RABBITMQ_MNESIA_BASE does not exist or is not a directory"; - exit $OCF_ERR_ARGS; + exit $OCF_ERR_INSTALLED; fi rabbit_validate_partial -- cgit v1.2.1 From b54d47550168f978a2e7ec30fc912960927b6073 Mon Sep 17 00:00:00 2001 From: Florian Haas Date: Tue, 11 May 2010 18:07:53 +0200 Subject: OCF resource agent: fix incorrect parameter type Any IP port should be an integer. Fix metadata so GUIs and the CRM shell report the parameter type correctly. --- packaging/common/rabbitmq-server.ocf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index b3ba773b..9e144dbf 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -114,7 +114,7 @@ The IP address for rabbitmq-server to listen on The IP Port for rabbitmq-server to listen on IP Port - + -- cgit v1.2.1 From 4fc3c3d451b92da66bbe4bf82560aba2dbe5a0f7 Mon Sep 17 00:00:00 2001 From: Alexandru Scvortov Date: Mon, 7 Jun 2010 13:42:51 +0100 Subject: merged Florian's 07 patch: OCF resource agent: add status operation Even when it is identical to monitor, a status operation should still be advertised. --- packaging/common/rabbitmq-server.ocf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index 9e144dbf..3dcca705 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -162,6 +162,7 @@ Additional arguments provided to the server on startup + @@ -172,7 +173,7 @@ END rabbit_usage() { cat < Date: Tue, 11 May 2010 18:12:29 +0200 Subject: OCF resource agent: remove bogus parameters for monitor op "depth" is actually not used, and "start-delay" is strongly deprecated. No need to advertise them. --- packaging/common/rabbitmq-server.ocf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index 3dcca705..6b85b61c 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -163,7 +163,7 @@ Additional arguments provided to the server on startup - + -- cgit v1.2.1 From 140919e4bb5daea886c9b4edadebc3ca07242e55 Mon Sep 17 00:00:00 2001 From: Florian Haas Date: Tue, 11 May 2010 18:20:52 +0200 Subject: OCF resource agent: log debug messages on status Log simple debug messages when the resource is running, or has been stopped gracefully. --- packaging/common/rabbitmq-server.ocf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index 6b85b61c..bea68aac 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -246,9 +246,11 @@ rabbit_status() { rc=$? case "$rc" in 0) + ocf_log debug "RabbitMQ server is running normally" return $OCF_SUCCESS ;; 2) + ocf_log debug "RabbitMQ server is not running" return $OCF_NOT_RUNNING ;; *) -- cgit v1.2.1 From b90f5a21f2c642df77936cae9d5641a788f82525 Mon Sep 17 00:00:00 2001 From: Alexandru Scvortov Date: Wed, 9 Jun 2010 12:57:27 +0100 Subject: merged Florian's 10th patch: replace sleep 2 with sleep 1 OCF resource agent: replace "sleep 2" with "sleep 1" We want to complete operations as quickly as possible, and whether we check the server's status every 2 seconds or every 1 second makes hardly any difference to Pacemaker. --- packaging/common/rabbitmq-server.ocf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index bea68aac..3451535e 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -289,7 +289,7 @@ rabbit_start() { ocf_log info "rabbitmq-server start failed: $rc" exit $OCF_ERR_GENERIC fi - sleep 2 + sleep 1 done return $OCF_SUCCESS @@ -324,7 +324,7 @@ rabbit_stop() { ocf_log info "rabbitmq-server stop failed: $rc" exit $OCF_ERR_GENERIC fi - sleep 2 + sleep 1 done return $OCF_SUCCESS -- cgit v1.2.1 From 8b2674ad8373f76dc05655016ad8a34c73f8e7ee Mon Sep 17 00:00:00 2001 From: Matthew Sackman Date: Thu, 10 Jun 2010 12:50:49 +0100 Subject: Convert all tabs to spaces --- packaging/common/rabbitmq-server.ocf | 136 +++++++++++++++++------------------ 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/packaging/common/rabbitmq-server.ocf b/packaging/common/rabbitmq-server.ocf index 3451535e..db0ed70b 100755 --- a/packaging/common/rabbitmq-server.ocf +++ b/packaging/common/rabbitmq-server.ocf @@ -35,16 +35,16 @@ ## ## OCF instance parameters -## OCF_RESKEY_multi -## OCF_RESKEY_ctl -## OCF_RESKEY_nodename -## OCF_RESKEY_ip -## OCF_RESKEY_port -## OCF_RESKEY_cluster_config_file -## OCF_RESKEY_config_file -## OCF_RESKEY_log_base -## OCF_RESKEY_mnesia_base -## OCF_RESKEY_server_start_args +## OCF_RESKEY_multi +## OCF_RESKEY_ctl +## OCF_RESKEY_nodename +## OCF_RESKEY_ip +## OCF_RESKEY_port +## OCF_RESKEY_cluster_config_file +## OCF_RESKEY_config_file +## OCF_RESKEY_log_base +## OCF_RESKEY_mnesia_base +## OCF_RESKEY_server_start_args ####################################################################### # Initialization: @@ -64,7 +64,7 @@ OCF_RESKEY_log_base_default="/var/log/rabbitmq" : ${OCF_RESKEY_log_base=${OCF_RESKEY_log_base_default}} meta_data() { - cat < @@ -172,7 +172,7 @@ END } rabbit_usage() { - cat < /dev/null 2> /dev/null rc=$? case "$rc" in - 0) - ocf_log debug "RabbitMQ server is running normally" - return $OCF_SUCCESS - ;; - 2) - ocf_log debug "RabbitMQ server is not running" - return $OCF_NOT_RUNNING - ;; - *) - ocf_log err "Unexpected return from rabbitmqctl $NODENAME_ARG status: $rc" - exit $OCF_ERR_GENERIC + 0) + ocf_log debug "RabbitMQ server is running normally" + return $OCF_SUCCESS + ;; + 2) + ocf_log debug "RabbitMQ server is not running" + return $OCF_NOT_RUNNING + ;; + *) + ocf_log err "Unexpected return from rabbitmqctl $NODENAME_ARG status: $rc" + exit $OCF_ERR_GENERIC esac } @@ -273,22 +273,22 @@ rabbit_start() { rc=$? if [ "$rc" != 0 ]; then - ocf_log err "rabbitmq-server start command failed: $RABBITMQ_MULTI start_all 1, $rc" - return $rc + ocf_log err "rabbitmq-server start command failed: $RABBITMQ_MULTI start_all 1, $rc" + return $rc fi # Spin waiting for the server to come up. # Let the CRM/LRM time us out if required start_wait=1 while [ $start_wait = 1 ]; do - rabbit_status - rc=$? - if [ "$rc" = $OCF_SUCCESS ]; then - start_wait=0 - elif [ "$rc" != $OCF_NOT_RUNNING ]; then - ocf_log info "rabbitmq-server start failed: $rc" - exit $OCF_ERR_GENERIC - fi + rabbit_status + rc=$? + if [ "$rc" = $OCF_SUCCESS ]; then + start_wait=0 + elif [ "$rc" != $OCF_NOT_RUNNING ]; then + ocf_log info "rabbitmq-server start failed: $rc" + exit $OCF_ERR_GENERIC + fi sleep 1 done @@ -307,23 +307,23 @@ rabbit_stop() { rc=$? if [ "$rc" != 0 ]; then - ocf_log err "rabbitmq-server stop command failed: $RABBITMQ_MULTI stop_all, $rc" - return $rc + ocf_log err "rabbitmq-server stop command failed: $RABBITMQ_MULTI stop_all, $rc" + return $rc fi # Spin waiting for the server to shut down. # Let the CRM/LRM time us out if required stop_wait=1 while [ $stop_wait = 1 ]; do - rabbit_status - rc=$? - if [ "$rc" = $OCF_NOT_RUNNING ]; then - stop_wait=0 + rabbit_status + rc=$? + if [ "$rc" = $OCF_NOT_RUNNING ]; then + stop_wait=0 break - elif [ "$rc" != $OCF_SUCCESS ]; then - ocf_log info "rabbitmq-server stop failed: $rc" - exit $OCF_ERR_GENERIC - fi + elif [ "$rc" != $OCF_SUCCESS ]; then + ocf_log info "rabbitmq-server stop failed: $rc" + exit $OCF_ERR_GENERIC + fi sleep 1 done @@ -337,13 +337,13 @@ rabbit_monitor() { case $__OCF_ACTION in meta-data) - meta_data - exit $OCF_SUCCESS - ;; + meta_data + exit $OCF_SUCCESS + ;; usage|help) - rabbit_usage - exit $OCF_SUCCESS - ;; + rabbit_usage + exit $OCF_SUCCESS + ;; esac if ocf_is_probe; then @@ -354,21 +354,21 @@ fi case $__OCF_ACTION in start) - rabbit_start + rabbit_start ;; stop) - rabbit_stop + rabbit_stop ;; status|monitor) - rabbit_monitor + rabbit_monitor ;; validate-all) exit $OCF_SUCCESS - ;; + ;; *) - rabbit_usage - exit $OCF_ERR_UNIMPLEMENTED - ;; + rabbit_usage + exit $OCF_ERR_UNIMPLEMENTED + ;; esac exit $? -- cgit v1.2.1