Add vhost --default-queue-type option (#82763)

* Add vhost --default-queue-type option

Signed-off-by: alborzjafari <alborz.jf@gmail.com>

* Add default queue type option to the node

Signed-off-by: alborzjafari <alborz.jf@gmail.com>

* Use is_empty_value for checking $RABBITMQ_NODE_DEFAULT_QUEUE_TYPE

Signed-off-by: alborzjafari <alborz.jf@gmail.com>

---------

Signed-off-by: alborzjafari <alborz.jf@gmail.com>
This commit is contained in:
Alborz Jafari
2025-07-02 12:45:58 +03:00
committed by GitHub
parent caa2985436
commit bc1e508583
2 changed files with 23 additions and 5 deletions

View File

@@ -391,6 +391,12 @@ default_permissions.read = .*
default_permissions.write = .*
log.console = true
EOF
# Check if the default_queue_type for the node is set
if ! is_empty_value "$RABBITMQ_NODE_DEFAULT_QUEUE_TYPE"; then
cat <<EOF
default_queue_type = ${RABBITMQ_NODE_DEFAULT_QUEUE_TYPE}
EOF
fi
# When loading definitions, default vhost and user/pass won't be created: https://www.rabbitmq.com/definitions.html#import-on-boot
if ! is_boolean_yes "$RABBITMQ_LOAD_DEFINITIONS"; then
@@ -756,13 +762,22 @@ rabbitmq_join_cluster() {
# None
#########################
rabbitmq_declare_vhost() {
local name="${1:?name is required}"
local vhost="${1:?name is required}"
IFS=':' read -r name default_queue_type <<< "$vhost"
debug "Declaring vhost '${name}'..."
if ! debug_execute "${RABBITMQ_BIN_DIR}/rabbitmqctl" add_vhost -- "${name}"; then
error "Couldn't declared vhost '${name}'."
return 1
if [[ -n "$default_queue_type" ]]; then
if ! debug_execute "${RABBITMQ_BIN_DIR}/rabbitmqctl" add_vhost --default-queue-type "${default_queue_type}" -- "${name}"; then
error "Couldn't declared vhost '${name}'."
return 1
fi
else
if ! debug_execute "${RABBITMQ_BIN_DIR}/rabbitmqctl" add_vhost -- "${name}"; then
error "Couldn't declared vhost '${name}'."
return 1
fi
fi
}
########################
@@ -866,7 +881,8 @@ rabbitmq_initialize() {
for vhost in ${RABBITMQ_VHOSTS}; do
rabbitmq_declare_vhost "${vhost}"
if [[ -n "${RABBITMQ_USERNAME}" ]]; then
rabbitmq_set_user_vhost_permission "${RABBITMQ_USERNAME}" "${vhost}"
IFS=':' read -r vhost_name default_queue_type <<< "$vhost"
rabbitmq_set_user_vhost_permission "${RABBITMQ_USERNAME}" "${vhost_name}"
fi
done
fi

View File

@@ -42,6 +42,7 @@ rabbitmq_env_vars=(
RABBITMQ_USE_LONGNAME
RABBITMQ_NODE_PORT_NUMBER
RABBITMQ_NODE_TYPE
RABBITMQ_NODE_DEFAULT_QUEUE_TYPE
RABBITMQ_VHOST
RABBITMQ_VHOSTS
RABBITMQ_CLUSTER_REBALANCE
@@ -137,6 +138,7 @@ export RABBITMQ_NODE_NAME="${RABBITMQ_NODE_NAME:-rabbit@localhost}"
export RABBITMQ_USE_LONGNAME="${RABBITMQ_USE_LONGNAME:-false}"
export RABBITMQ_NODE_PORT_NUMBER="${RABBITMQ_NODE_PORT_NUMBER:-5672}"
export RABBITMQ_NODE_TYPE="${RABBITMQ_NODE_TYPE:-stats}"
export RABBITMQ_NODE_DEFAULT_QUEUE_TYPE="${RABBITMQ_NODE_DEFAULT_QUEUE_TYPE:-}"
RABBITMQ_VHOST="${RABBITMQ_VHOST:-"${RABBITMQ_DEFAULT_VHOST:-}"}"
export RABBITMQ_VHOST="${RABBITMQ_VHOST:-/}"
export RABBITMQ_VHOSTS="${RABBITMQ_VHOSTS:-}"