Read rabbitmq-env.conf a bit earlier to pick up two variables

Prior to this change, setting RABBITMQ_DISTRIBUTION_BUFFER_SIZE
and/or RABBITMQ_SCHEDULER_BIND_TYPE would not be added to
SERVER_ERL_ARGS because the latter variable was built prior to
reading rabbitmq-env.conf

Fixes #1338

[#150452491]

Signed-off-by: Luke Bakken <lbakken@pivotal.io>
This commit is contained in:
Gerhard Lazu 2017-08-22 09:52:24 -07:00 committed by Gerhard Lazu
parent b02a53eebd
commit 42b8137f31
2 changed files with 23 additions and 5 deletions

View File

@ -76,6 +76,10 @@ RABBITMQ_HOME="$(rmq_realpath "${RABBITMQ_SCRIPTS_DIR}/..")"
## Set defaults
. ${RABBITMQ_SCRIPTS_DIR}/rabbitmq-defaults
## Get configuration variables from the configure environment file
[ "x" = "x$RABBITMQ_CONF_ENV_FILE" ] && RABBITMQ_CONF_ENV_FILE=${CONF_ENV_FILE}
[ -f ${RABBITMQ_CONF_ENV_FILE} ] && . ${RABBITMQ_CONF_ENV_FILE} || true
DEFAULT_SCHEDULER_BIND_TYPE="db"
[ "x" = "x$RABBITMQ_SCHEDULER_BIND_TYPE" ] && RABBITMQ_SCHEDULER_BIND_TYPE=${DEFAULT_SCHEDULER_BIND_TYPE}
@ -90,11 +94,6 @@ SERVER_ERL_ARGS="+P 1048576 +t 5000000 +stbt $RABBITMQ_SCHEDULER_BIND_TYPE +zdbb
# it and warn the user.
saved_RABBITMQ_PID_FILE=$RABBITMQ_PID_FILE
## Get configuration variables from the configure environment file
[ "x" = "x$RABBITMQ_CONF_ENV_FILE" ] && RABBITMQ_CONF_ENV_FILE=${CONF_ENV_FILE}
[ -f ${RABBITMQ_CONF_ENV_FILE} ] && . ${RABBITMQ_CONF_ENV_FILE} || true
if [ "$saved_RABBITMQ_PID_FILE" -a \
"$saved_RABBITMQ_PID_FILE" != "$RABBITMQ_PID_FILE" ]; then
echo "WARNING: RABBITMQ_PID_FILE was already set by the init script to:" 1>&2

19
test/rabbitmq-env.bats Normal file
View File

@ -0,0 +1,19 @@
@test "can set RABBITMQ_SCHEDULER_BIND_TYPE from rabbitmq-env.conf" {
declare -r scripts_dir="$BATS_TEST_DIRNAME/../scripts"
export RABBITMQ_SCRIPTS_DIR="$scripts_dir"
export RABBITMQ_CONF_ENV_FILE="$BATS_TMPDIR/rabbitmq-env.conf"
echo 'RABBITMQ_SCHEDULER_BIND_TYPE=u' > "$RABBITMQ_CONF_ENV_FILE"
source "$scripts_dir/rabbitmq-env"
echo "expect RABBITMQ_SERVER_ERL_ARGS to contain '+stbt u' but got '$SERVER_ERL_ARGS'"
[[ $RABBITMQ_SERVER_ERL_ARGS == *+stbt\ u* ]]
}
@test "can set RABBITMQ_DISTRIBUTION_BUFFER_SIZE from rabbitmq-env.conf" {
declare -r scripts_dir="$BATS_TEST_DIRNAME/../scripts"
export RABBITMQ_SCRIPTS_DIR="$scripts_dir"
export RABBITMQ_CONF_ENV_FILE="$BATS_TMPDIR/rabbitmq-env.conf"
echo 'RABBITMQ_DISTRIBUTION_BUFFER_SIZE=123456' > "$RABBITMQ_CONF_ENV_FILE"
source "$scripts_dir/rabbitmq-env"
echo "expect RABBITMQ_SERVER_ERL_ARGS to contain '+zdbbl 123456' but got '$SERVER_ERL_ARGS'"
[[ $RABBITMQ_SERVER_ERL_ARGS == *+zdbbl\ 123456* ]]
}