diff options
| author | Michael Klishin <michael@novemberain.com> | 2018-08-25 00:39:46 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-25 00:39:46 +0300 |
| commit | 526ec377a74008633e10c9e71e20e103a9fd93e7 (patch) | |
| tree | b1250f1117483c759429cfb169cf1bd0cc141c8d /scripts/rabbitmq-server | |
| parent | 79f943a7fedd7617f52a19f1734d1d3246a86ecf (diff) | |
| parent | 34bba9bcece3070ab0c92c259e3ee37b1d7e7224 (diff) | |
| download | rabbitmq-server-git-526ec377a74008633e10c9e71e20e103a9fd93e7.tar.gz | |
Merge pull request #1671 from rabbitmq/config_files_check
Config files check
Diffstat (limited to 'scripts/rabbitmq-server')
| -rwxr-xr-x | scripts/rabbitmq-server | 157 |
1 files changed, 109 insertions, 48 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server index f8b868c039..08cfb28cf7 100755 --- a/scripts/rabbitmq-server +++ b/scripts/rabbitmq-server @@ -62,13 +62,117 @@ RABBITMQ_EBIN_ROOT="${RABBITMQ_HOME}/ebin" [ "$NOTIFY_SOCKET" ] && RUNNING_UNDER_SYSTEMD=true -set +e +if [ ! -d ${RABBITMQ_SCHEMA_DIR} ]; then + mkdir -p "${RABBITMQ_SCHEMA_DIR}" +fi + +if [ ! -d ${RABBITMQ_GENERATED_CONFIG_DIR} ]; then + mkdir -p "${RABBITMQ_GENERATED_CONFIG_DIR}" +fi + +if [ ! -f "${RABBITMQ_SCHEMA_DIR}/rabbit.schema" ]; then + cp "${RABBITMQ_HOME}/priv/schema/rabbit.schema" "${RABBITMQ_SCHEMA_DIR}" +fi + +get_noex() { + if [ "x" = "x${1}" ]; then + echo "" + else + local BASENAME=$(basename $1) + local DIRNAME=$(dirname $1) + if [ "x." = "x${DIRNAME}" ]; then + echo "${BASENAME%.*}" + else + echo "${DIRNAME}/${BASENAME%.*}" + fi + fi +} + +# Check that advanced config file has the .config extension +# Add .config extension if it's empty + +RABBITMQ_ADVANCED_CONFIG_FILE_NOEX=$(get_noex ${RABBITMQ_ADVANCED_CONFIG_FILE}) +if [ "${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" \ + -o "${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" ]; then + RABBITMQ_ADVANCED_CONFIG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}.config" +fi + + +RABBITMQ_CONFIG_FILE_NOEX=$(get_noex ${RABBITMQ_CONFIG_FILE}) +# Extension is not specified. +# Determine config type from file + +if [ "${RABBITMQ_CONFIG_FILE_NOEX}" = "${RABBITMQ_CONFIG_FILE}" ]; then + if [ -f "${RABBITMQ_CONFIG_FILE_NOEX}.config" ]; then + if [ -f "${RABBITMQ_CONFIG_FILE_NOEX}.conf" ]; then + # Both files exist. Print a warning + echo "WARNING: Both old (.config) and new (.conf) format config files exist." + echo "WARNING: Using the old format config file: ${RABBITMQ_CONFIG_FILE_NOEX}.config" + echo "WARNING: Please update your config files to the new format and remove the old file" + fi + RABBITMQ_CONFIG_FILE="${RABBITMQ_CONFIG_FILE_NOEX}.config" + elif [ -f "${RABBITMQ_CONFIG_FILE_NOEX}.conf" ]; then + RABBITMQ_CONFIG_FILE="${RABBITMQ_CONFIG_FILE_NOEX}.conf" + else + if [ -f ${RABBITMQ_ADVANCED_CONFIG_FILE} ]; then + echo "WARNING: Using RABBITMQ_ADVANCED_CONFIG_FILE: ${RABBITMQ_ADVANCED_CONFIG_FILE}" + fi + # No config file exist. Use advanced config for -config arg. + RABBITMQ_CONFIG_ARG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE}" + RABBITMQ_CONFIG_FILE="" + fi +fi + +# Set the -config argument. +# The -config argument should not have extension. +# the file should exist +# the file should be a valid erlang term file + +# Config file extension is .config +if [ "${RABBITMQ_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_CONFIG_FILE}" ]; then + RABBITMQ_CONFIG_ARG_FILE="${RABBITMQ_CONFIG_FILE}" +# Config file extension is .conf +elif [ "${RABBITMQ_CONFIG_FILE_NOEX}.conf" = "${RABBITMQ_CONFIG_FILE}" ]; then + RABBITMQ_CONFIG_ARG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE}" +elif [ "x" != "x${RABBITMQ_CONFIG_FILE}" \ + -a "${RABBITMQ_CONFIG_FILE_NOEX}" != "${RABBITMQ_CONFIG_FILE}" ]; then + # Config file has an extension, but it's neither .conf or .config + echo "ERROR: Wrong extension for RABBITMQ_CONFIG_FILE: ${RABBITMQ_CONFIG_FILE}" + echo "ERROR: extension should be either .conf or .config" + exit 1 +fi + +RABBITMQ_CONFIG_ARG_FILE_NOEX=$(get_noex ${RABBITMQ_CONFIG_ARG_FILE}) + +if [ "${RABBITMQ_CONFIG_ARG_FILE_NOEX}.config" != "${RABBITMQ_CONFIG_ARG_FILE}" ]; then + if [ "${RABBITMQ_CONFIG_ARG_FILE}" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" ]; then + echo "ERROR: Wrong extension for RABBITMQ_ADVANCED_CONFIG_FILE: ${RABBITMQ_ADVANCED_CONFIG_FILE}" + echo "ERROR: extension should be .config" + exit 1 + else + # We should never got here, but still there should be some explanation + echo "ERROR: Wrong extension for ${RABBITMQ_CONFIG_ARG_FILE}" + echo "ERROR: extension should be .config" + exit 1 + fi +fi -RABBITMQ_ADVANCED_CONFIG_FILE_NOEX="${RABBITMQ_ADVANCED_CONFIG_FILE%.*}" -if [ "${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" ]; then - RABBITMQ_ADVANCED_CONFIG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}" +# Set -config if the file exists +if [ -f "${RABBITMQ_CONFIG_ARG_FILE}" ]; then + RABBITMQ_CONFIG_ARG="-config ${RABBITMQ_CONFIG_ARG_FILE_NOEX}" fi +# Set -conf and other generated config parameters +if [ "${RABBITMQ_CONFIG_FILE_NOEX}.conf" = "${RABBITMQ_CONFIG_FILE}" ]; then + RABBITMQ_GENERATED_CONFIG_ARG="-conf ${RABBITMQ_CONFIG_FILE} \ + -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \ + -conf_script_dir `dirname $0` \ + -conf_schema_dir ${RABBITMQ_SCHEMA_DIR} + -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE}" +fi + +set +e + # `net_kernel:start/1` will fail in `longnames` mode when erlang is # unable to determine FQDN of a node (with a dot in it). But `erl` # itself has some magic that still allow it to start when you @@ -108,18 +212,6 @@ else exit ${PRELAUNCH_RESULT} fi -if [ ! -d ${RABBITMQ_SCHEMA_DIR} ]; then - mkdir -p "${RABBITMQ_SCHEMA_DIR}" -fi - -if [ ! -d ${RABBITMQ_GENERATED_CONFIG_DIR} ]; then - mkdir -p "${RABBITMQ_GENERATED_CONFIG_DIR}" -fi - -if [ ! -f "${RABBITMQ_SCHEMA_DIR}/rabbit.schema" ]; then - cp "${RABBITMQ_HOME}/priv/schema/rabbit.schema" "${RABBITMQ_SCHEMA_DIR}" -fi - # The default allocation strategy RabbitMQ is using was introduced # in Erlang/OTP 20.2.3. Earlier Erlang versions fail to start with # this configuration. We therefore need to ensure that erl accepts @@ -141,38 +233,6 @@ fi set -e -RABBITMQ_CONFIG_FILE_NOEX="${RABBITMQ_CONFIG_FILE%.*}" - -if [ "${RABBITMQ_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_CONFIG_FILE}" ]; then - if [ -f "${RABBITMQ_CONFIG_FILE}" ]; then - RABBITMQ_CONFIG_ARG="-config ${RABBITMQ_CONFIG_FILE_NOEX}" - fi -elif [ "${RABBITMQ_CONFIG_FILE_NOEX}.conf" = "${RABBITMQ_CONFIG_FILE}" ]; then - RABBITMQ_CONFIG_ARG="-conf ${RABBITMQ_CONFIG_FILE_NOEX} \ - -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \ - -conf_script_dir `dirname $0` \ - -conf_schema_dir ${RABBITMQ_SCHEMA_DIR}" - if [ -f "${RABBITMQ_ADVANCED_CONFIG_FILE}.config" ]; then - RABBITMQ_CONFIG_ARG="${RABBITMQ_CONFIG_ARG} \ - -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE} \ - -config ${RABBITMQ_ADVANCED_CONFIG_FILE}" - fi -else - if [ -f "${RABBITMQ_CONFIG_FILE}.config" ]; then - RABBITMQ_CONFIG_ARG="-config ${RABBITMQ_CONFIG_FILE}" - elif [ -f "${RABBITMQ_CONFIG_FILE}.conf" ]; then - RABBITMQ_CONFIG_ARG="-conf ${RABBITMQ_CONFIG_FILE} \ - -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \ - -conf_script_dir `dirname $0` \ - -conf_schema_dir ${RABBITMQ_SCHEMA_DIR}" - if [ -f "${RABBITMQ_ADVANCED_CONFIG_FILE}.config" ]; then - RABBITMQ_CONFIG_ARG="${RABBITMQ_CONFIG_ARG} \ - -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE} \ - -config ${RABBITMQ_ADVANCED_CONFIG_FILE}" - fi - fi -fi - RABBITMQ_LISTEN_ARG= [ "x" != "x$RABBITMQ_NODE_PORT" ] && [ "x" != "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_LISTEN_ARG="-rabbit tcp_listeners [{\""${RABBITMQ_NODE_IP_ADDRESS}"\","${RABBITMQ_NODE_PORT}"}]" @@ -230,6 +290,7 @@ start_rabbitmq_server() { ${RABBITMQ_NAME_TYPE} ${RABBITMQ_NODENAME} \ -boot "${SASL_BOOT_FILE}" \ ${RABBITMQ_CONFIG_ARG} \ + ${RABBITMQ_GENERATED_CONFIG_ARG} \ +W w \ +A ${RABBITMQ_IO_THREAD_POOL_SIZE} \ ${RABBITMQ_DEFAULT_ALLOC_ARGS} \ |
