diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x[-rw-r--r--] | scripts/rabbitmq-defaults | 1 | ||||
| -rwxr-xr-x | scripts/rabbitmq-server | 16 | ||||
| -rwxr-xr-x | scripts/rabbitmq-server-ha.ocf | 21 | ||||
| -rw-r--r-- | scripts/rabbitmq-server.bat | 7 | ||||
| -rw-r--r-- | scripts/rabbitmq-service.bat | 15 | ||||
| -rw-r--r-- | scripts/set_rabbitmq_policy.sh | 5 | ||||
| -rw-r--r-- | scripts/travis_test_ocf_ra.sh | 30 |
7 files changed, 72 insertions, 23 deletions
diff --git a/scripts/rabbitmq-defaults b/scripts/rabbitmq-defaults index bccd0d7435..1505ce0f00 100644..100755 --- a/scripts/rabbitmq-defaults +++ b/scripts/rabbitmq-defaults @@ -43,6 +43,5 @@ ADVANCED_CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/advanced SCHEMA_DIR=${RABBITMQ_HOME}/priv/schema PLUGINS_DIR="${RABBITMQ_HOME}/plugins" -IO_THREAD_POOL_SIZE=64 CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server index 0e3f06baf9..98a4c70120 100755 --- a/scripts/rabbitmq-server +++ b/scripts/rabbitmq-server @@ -128,7 +128,23 @@ fi # there is no other way of preventing their expansion. set -f +# Lazy initialization of threed pool size - if it wasn't set +# explicitly. This parameter is only needed when server is starting, +# so it makes no sense to do this calculations in rabbitmq-env or +# rabbitmq-defaults scripts. +ensure_thread_pool_size() { + if [ -z "${RABBITMQ_IO_THREAD_POOL_SIZE}" ]; then + RABBITMQ_IO_THREAD_POOL_SIZE=$( + ${ERL_DIR}erl -pa "$RABBITMQ_EBIN_ROOT" \ + -boot "${CLEAN_BOOT_FILE}" \ + -noinput \ + -s rabbit_misc report_default_thread_pool_size + ) + fi +} + start_rabbitmq_server() { + ensure_thread_pool_size check_start_params && RABBITMQ_CONFIG_FILE=$RABBITMQ_CONFIG_FILE \ exec ${ERL_DIR}erl \ diff --git a/scripts/rabbitmq-server-ha.ocf b/scripts/rabbitmq-server-ha.ocf index c6d0e26241..5ead9a81ad 100755 --- a/scripts/rabbitmq-server-ha.ocf +++ b/scripts/rabbitmq-server-ha.ocf @@ -13,8 +13,8 @@ # # See usage() function below for more details ... # -# Note that the script uses set_rabbitmq_policy.sh script located in the -# same directory to setup RabbitMQ policies. +# Note that the script uses an external file to setup RabbitMQ policies +# so make sure to create it from an example shipped with the package. # ####################################################################### # Initialization: @@ -46,6 +46,7 @@ OCF_RESKEY_erlang_cookie_file_default="/var/lib/rabbitmq/.erlang.cookie" OCF_RESKEY_use_fqdn_default=false OCF_RESKEY_fqdn_prefix_default="" OCF_RESKEY_max_rabbitmqctl_timeouts_default=3 +OCF_RESKEY_policy_file_default="/usr/local/sbin/set_rabbitmq_policy" : ${HA_LOGTAG="lrmd"} : ${HA_LOGFACILITY="daemon"} @@ -66,6 +67,7 @@ OCF_RESKEY_max_rabbitmqctl_timeouts_default=3 : ${OCF_RESKEY_use_fqdn=${OCF_RESKEY_use_fqdn_default}} : ${OCF_RESKEY_fqdn_prefix=${OCF_RESKEY_fqdn_prefix_default}} : ${OCF_RESKEY_max_rabbitmqctl_timeouts=${OCF_RESKEY_max_rabbitmqctl_timeouts_default}} +: ${OCF_RESKEY_policy_file=${OCF_RESKEY_policy_file_default}} ####################################################################### @@ -288,6 +290,14 @@ If too many timeouts happen in a raw, the monitor call will return with error. <content type="string" default="${OCF_RESKEY_max_rabbitmqctl_timeouts_default}" /> </parameter> +<parameter name="policy_file" unique="0" required="0"> +<longdesc lang="en"> +A path to the shell script to setup RabbitMQ policies +</longdesc> +<shortdesc lang="en">A policy file path</shortdesc> +<content type="string" default="${OCF_RESKEY_policy_file_default}" /> +</parameter> + $EXTENDED_OCF_PARAMS </parameters> @@ -668,8 +678,8 @@ reset_mnesia() { # remove mnesia files, if required if $make_amnesia ; then kill_rmq_and_remove_pid - ocf_run rm -rf "${MNESIA_FILES}/*" - ocf_log warn "${LH} Mnesia files appear corrupted and have been removed." + ocf_run rm -rf "${MNESIA_FILES}" + ocf_log warn "${LH} Mnesia files appear corrupted and have been removed from ${MNESIA_FILES}." fi # always return OCF SUCCESS return $OCF_SUCCESS @@ -2098,8 +2108,7 @@ action_promote() { exit $OCF_FAILED_MASTER fi - local set_policy_path="$(dirname $0)/set_rabbitmq_policy.sh" - [ -f $set_policy_path ] && . $set_policy_path + [ -f "${OCF_RESKEY_policy_file}" ] && . "${OCF_RESKEY_policy_file}" # create timestamp file nowtime="$(now)" diff --git a/scripts/rabbitmq-server.bat b/scripts/rabbitmq-server.bat index 33e316a07f..2a38e77a82 100644 --- a/scripts/rabbitmq-server.bat +++ b/scripts/rabbitmq-server.bat @@ -109,10 +109,9 @@ if "!RABBITMQ_NODE_ONLY!"=="" ( )
if "!RABBITMQ_IO_THREAD_POOL_SIZE!"=="" (
- set RABBITMQ_IO_THREAD_POOL_ARG=30
-) else (
- set RABBITMQ_IO_THREAD_POOL_ARG=!RABBITMQ_IO_THREAD_POOL_SIZE!
-)
+ set RABBITMQ_IO_THREAD_POOL_SIZE=64
+)
+
set ENV_OK=true
CALL :check_not_empty "RABBITMQ_BOOT_MODULE" !RABBITMQ_BOOT_MODULE!
diff --git a/scripts/rabbitmq-service.bat b/scripts/rabbitmq-service.bat index f302087f91..7e80e78398 100644 --- a/scripts/rabbitmq-service.bat +++ b/scripts/rabbitmq-service.bat @@ -106,7 +106,7 @@ if not exist "!RABBITMQ_BASE!" ( )
set ENV_OK=true
-CALL :check_not_empty "RABBITMQ_BOOT_MODULE" !RABBITMQ_BOOT_MODULE!
+CALL :check_not_empty "RABBITMQ_BOOT_MODULE" !RABBITMQ_BOOT_MODULE!
CALL :check_not_empty "RABBITMQ_NAME_TYPE" !RABBITMQ_NAME_TYPE!
CALL :check_not_empty "RABBITMQ_NODENAME" !RABBITMQ_NODENAME!
@@ -150,10 +150,11 @@ if ERRORLEVEL 3 ( if not exist "!RABBITMQ_SCHEMA_DIR!\rabbitmq.schema" (
copy "!RABBITMQ_HOME!\priv\schema\rabbitmq.schema" "!RABBITMQ_SCHEMA_DIR!\rabbitmq.schema"
- REM Try to create config file, if it doesn't exist - REM It still can fail to be created, but at least not for default install -if not exist "!RABBITMQ_CONFIG_FILE!.config" ( - echo []. > !RABBITMQ_CONFIG_FILE!.config +)
+ REM Try to create advanced config file, if it doesn't exist
+ REM It still can fail to be created, but at least not for default install
+if not exist "!RABBITMQ_ADVANCED_CONFIG_FILE!.config" (
+ echo []. > !RABBITMQ_ADVANCED_CONFIG_FILE!.config
)
if exist "!RABBITMQ_CONFIG_FILE!.config" (
@@ -191,7 +192,7 @@ if "!RABBITMQ_NODE_ONLY!"=="" ( )
if "!RABBITMQ_IO_THREAD_POOL_SIZE!"=="" (
- set RABBITMQ_IO_THREAD_POOL_SIZE=30
+ set RABBITMQ_IO_THREAD_POOL_SIZE=64
)
if "!RABBITMQ_SERVICE_RESTART!"=="" (
@@ -262,7 +263,7 @@ EXIT /B 0 if "%~2"=="" (
ECHO "Error: ENV variable should be defined: %1. Please check rabbitmq-env, rabbitmq-default, and !RABBITMQ_CONF_ENV_FILE! script files. Check also your Environment Variables settings"
set ENV_OK=false
- EXIT /B 78
+ EXIT /B 78
)
EXIT /B 0
diff --git a/scripts/set_rabbitmq_policy.sh b/scripts/set_rabbitmq_policy.sh deleted file mode 100644 index a88b0c417a..0000000000 --- a/scripts/set_rabbitmq_policy.sh +++ /dev/null @@ -1,5 +0,0 @@ -# This script is called by rabbitmq-server-ha.ocf during RabbitMQ -# cluster start up. It is a convenient place to set your cluster -# policy here, for example: -# ${OCF_RESKEY_ctl} set_policy ha-all "." '{"ha-mode":"all", "ha-sync-mode":"automatic"}' --apply-to all --priority 0 - diff --git a/scripts/travis_test_ocf_ra.sh b/scripts/travis_test_ocf_ra.sh new file mode 100644 index 0000000000..e8f9a74194 --- /dev/null +++ b/scripts/travis_test_ocf_ra.sh @@ -0,0 +1,30 @@ +#!/bin/sh -eux +# Prepare and run a smoke test against the RabbitMQ OCF RA only if +# the scripts/rabbitmq-server-ha.ocf has changes +if ! git diff HEAD~ --name-only | grep -q scripts/rabbitmq-server-ha.ocf +then + exit 0 +fi + +export VAGRANT_VERSION=1.8.1 +export DOCKER_IMAGE=bogdando/rabbitmq-cluster-ocf-wily +export UPLOAD_METHOD=none +export DOCKER_MOUNTS="$(pwd)/scripts/rabbitmq-server-ha.ocf:/tmp/rabbitmq-server-ha" + +# Install vagrant and requirements +sudo apt-get install -qq git wget +wget --no-verbose https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}_x86_64.deb +sudo dpkg -i --force-all ./vagrant_${VAGRANT_VERSION}_x86_64.deb +vagrant plugin install vagrant-triggers + +# Update docker and prepare images +sudo apt-get update +sudo DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --only-upgrade docker-engine +sudo service docker restart +docker pull $DOCKER_IMAGE + +# Prepare and run a smoke test for a rabbitmq cluster by the OCF RA +git clone https://github.com/bogdando/rabbitmq-cluster-ocf-vagrant.git +cd ./rabbitmq-cluster-ocf-vagrant +vagrant up --provider docker +docker exec -it n1 /bin/bash /vagrant/vagrant_script/test_rabbitcluster.sh rabbit@n1 rabbit@n2 |
