rabbitmq-server/selenium/bin/components/rabbitmq

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

200 lines
6.9 KiB
Plaintext
Raw Normal View History

2024-01-03 16:28:36 +08:00
#!/usr/bin/env bash
SCRIPT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
2024-01-03 16:28:36 +08:00
init_rabbitmq() {
RABBITMQ_CONFIG_DIR=${TEST_CONFIG_DIR}
RABBITMQ_DOCKER_IMAGE=${RABBITMQ_DOCKER_IMAGE:-rabbitmq}
print "> RABBITMQ_CONFIG_DIR: ${RABBITMQ_CONFIG_DIR}"
print "> RABBITMQ_DOCKER_IMAGE: ${RABBITMQ_DOCKER_IMAGE}"
[[ -z "${OAUTH_SERVER_CONFIG_BASEDIR}" ]] || print "> OAUTH_SERVER_CONFIG_BASEDIR: ${OAUTH_SERVER_CONFIG_BASEDIR}"
[[ -z "${OAUTH_SERVER_CONFIG_DIR}" ]] || print "> OAUTH_SERVER_CONFIG_DIR: ${OAUTH_SERVER_CONFIG_DIR}"
if [[ ! -d "${RABBITMQ_CONFIG_DIR}/certs" ]]; then
mkdir ${RABBITMQ_CONFIG_DIR}/certs
fi
generate-ca-server-client-kpi rabbitmq $RABBITMQ_CONFIG_DIR/certs
generate-server-keystore-if-required rabbitmq $RABBITMQ_CONFIG_DIR/certs
generate-client-keystore-if-required rabbitmq $RABBITMQ_CONFIG_DIR/certs
generate-truststore-if-required rabbitmq $RABBITMQ_CONFIG_DIR/certs
2024-01-03 16:28:36 +08:00
}
2024-01-03 16:28:36 +08:00
start_rabbitmq() {
if [[ "$PROFILES" == *"docker"* ]]; then
if [[ "$PROFILES" == *"cluster"* ]]; then
start_docker_cluster_rabbitmq
else
start_docker_rabbitmq
fi
2024-01-03 16:28:36 +08:00
else
start_local_rabbitmq
fi
}
stop_rabbitmq() {
if [[ "$PROFILES" == *"docker"* ]]; then
if [[ "$PROFILES" == *"cluster"* ]]; then
docker compose -f $CONF_DIR/rabbitmq/compose.yml kill
else
kill_container_if_exist "$component"
fi
else
stop_local_rabbitmq
fi
}
stop_local_rabbitmq() {
2024-09-04 21:59:58 +08:00
RABBITMQ_SERVER_ROOT=$(realpath ../)
gmake --directory=${RABBITMQ_SERVER_ROOT} stop-node
}
save_logs_rabbitmq() {
if [[ "$PROFILES" == *"docker"* ]]; then
if [[ "$PROFILES" == *"cluster"* ]]; then
docker compose -f $CONF_DIR/rabbitmq/compose.yml logs > $LOGS/rabbitmq.log
else
save_container_logs "rabbitmq"
fi
fi
}
2024-01-03 16:28:36 +08:00
start_local_rabbitmq() {
begin "Starting rabbitmq ..."
init_rabbitmq
2024-09-04 21:59:58 +08:00
RABBITMQ_SERVER_ROOT=$(realpath ../)
2024-01-03 16:28:36 +08:00
MOUNT_RABBITMQ_CONF="/etc/rabbitmq/rabbitmq.conf"
MOUNT_ADVANCED_CONFIG="/etc/rabbitmq/advanced.config"
RABBITMQ_TEST_DIR="${RABBITMQ_CONFIG_DIR}" ${BIN_DIR}/gen-rabbitmq-conf "${PROFILES}" ${RABBITMQ_CONFIG_DIR} $ENV_FILE /tmp$MOUNT_RABBITMQ_CONF
2024-01-03 16:28:36 +08:00
print "> EFFECTIVE RABBITMQ_CONFIG_FILE: /tmp$MOUNT_RABBITMQ_CONF"
cp ${RABBITMQ_CONFIG_DIR}/enabled_plugins /tmp/etc/rabbitmq/
RABBITMQ_ENABLED_PLUGINS=`cat /tmp/etc/rabbitmq/enabled_plugins | tr -d " \t\n\r" | awk -F'[][]' '{print $2}'`
print "> EFFECTIVE PLUGINS: $RABBITMQ_ENABLED_PLUGINS"
${BIN_DIR}/gen-advanced-config "${PROFILES}" ${RABBITMQ_CONFIG_DIR} $ENV_FILE /tmp$MOUNT_ADVANCED_CONFIG
2024-01-03 16:28:36 +08:00
RESULT=$?
if [ $RESULT -eq 0 ]; then
print "> EFFECTIVE RABBITMQ_CONFIG_FILE: /tmp$MOUNT_ADVANCED_CONFIG"
gmake --directory=${RABBITMQ_SERVER_ROOT} \
RABBITMQ_NODENAME="$RABBITMQ_NODENAME" \
RABBITMQ_ENABLED_PLUGINS="$RABBITMQ_ENABLED_PLUGINS" \
2024-01-03 16:28:36 +08:00
RABBITMQ_CONFIG_FILE=/tmp$MOUNT_RABBITMQ_CONF \
RABBITMQ_ADVANCED_CONFIG_FILE=/tmp$MOUNT_ADVANCED_CONFIG run-broker
2024-01-03 16:28:36 +08:00
else
gmake --directory=${RABBITMQ_SERVER_ROOT} \
RABBITMQ_NODENAME="$RABBITMQ_NODENAME" \
RABBITMQ_ENABLED_PLUGINS="$RABBITMQ_ENABLED_PLUGINS" \
RABBITMQ_CONFIG_FILE=/tmp$MOUNT_RABBITMQ_CONF run-broker
2024-01-03 16:28:36 +08:00
fi
print "> RABBITMQ_TEST_DIR: ${RABBITMQ_CONFIG_DIR}"
}
start_docker_cluster_rabbitmq() {
begin "Starting rabbitmq cluster in docker ..."
init_rabbitmq
kill_container_if_exist rabbitmq
kill_container_if_exist rabbitmq1
kill_container_if_exist rabbitmq2
mkdir -pv $CONF_DIR/rabbitmq/conf.d/
RABBITMQ_TEST_DIR="/var/rabbitmq"
${BIN_DIR}/gen-rabbitmq-conf "${PROFILES}" ${RABBITMQ_CONFIG_DIR} $ENV_FILE $CONF_DIR/rabbitmq/rabbitmq.conf
print "> EFFECTIVE RABBITMQ_CONFIG_FILE: $CONF_DIR/rabbitmq/rabbitmq.conf"
${BIN_DIR}/gen-advanced-config "${PROFILES}" ${RABBITMQ_CONFIG_DIR} $ENV_FILE $CONF_DIR/rabbitmq/advanced.config
RESULT=$?
if [ $RESULT -eq 0 ]; then
if [ -s $RESULT ]; then
print "> EFFECTIVE ADVANCED_CONFIG_FILE: $CONF_DIR/rabbitmq/advanced.config"
else
rm $CONF_DIR/rabbitmq/advanced.config
fi
fi
2024-09-04 21:59:58 +08:00
if [ -f ${RABBITMQ_CONFIG_DIR}/logging.conf ]; then
cp ${RABBITMQ_CONFIG_DIR}/logging.conf $CONF_DIR/rabbitmq/conf.d/
fi
if [ -f ${RABBITMQ_CONFIG_DIR}/enabled_plugins ]; then
cp ${RABBITMQ_CONFIG_DIR}/enabled_plugins $CONF_DIR/rabbitmq
fi
if [ -d ${RABBITMQ_CONFIG_DIR}/certs ]; then
cp -r ${RABBITMQ_CONFIG_DIR}/certs $CONF_DIR/rabbitmq
fi
if [ -d ${RABBITMQ_CONFIG_DIR}/imports ]; then
cp -r ${RABBITMQ_CONFIG_DIR}/imports $CONF_DIR/rabbitmq
fi
cat > $CONF_DIR/rabbitmq/image_compose.yml <<EOF
x-rabbitmq_image: &rabbitmq_image
image: ${RABBITMQ_DOCKER_IMAGE}
volumes:
- $CONF_DIR/rabbitmq/:/etc/rabbitmq
- $CONF_DIR/rabbitmq/:/var/rabbitmq
- ${TEST_DIR}:/config
EOF
cat $CONF_DIR/rabbitmq/image_compose.yml > $CONF_DIR/rabbitmq/compose.yml
cat ${BIN_DIR}/components/../rabbit-compose.yml >> $CONF_DIR/rabbitmq/compose.yml
docker compose -f $CONF_DIR/rabbitmq/compose.yml up -d
wait_for_message rabbitmq "Server startup complete"
wait_for_message rabbitmq1 "Server startup complete"
wait_for_message rabbitmq2 "Server startup complete"
end "RabbitMQ cluster ready"
}
2024-01-03 16:28:36 +08:00
start_docker_rabbitmq() {
begin "Starting rabbitmq in docker ..."
init_rabbitmq
kill_container_if_exist rabbitmq
mkdir -pv $CONF_DIR/rabbitmq/conf.d/
2024-01-03 16:28:36 +08:00
RABBITMQ_TEST_DIR="/var/rabbitmq"
${BIN_DIR}/gen-rabbitmq-conf "${PROFILES}" ${RABBITMQ_CONFIG_DIR} $ENV_FILE $CONF_DIR/rabbitmq/rabbitmq.conf
2024-01-03 16:28:36 +08:00
print "> EFFECTIVE RABBITMQ_CONFIG_FILE: $CONF_DIR/rabbitmq/rabbitmq.conf"
${BIN_DIR}/gen-advanced-config "${PROFILES}" ${RABBITMQ_CONFIG_DIR} $ENV_FILE $CONF_DIR/rabbitmq/advanced.config
2024-01-03 16:28:36 +08:00
RESULT=$?
if [ $RESULT -eq 0 ]; then
2024-09-04 21:59:58 +08:00
if [ -s $RESULT ]; then
print "> EFFECTIVE ADVANCED_CONFIG_FILE: $CONF_DIR/rabbitmq/advanced.config"
else
rm $CONF_DIR/rabbitmq/advanced.config
fi
fi
if [ -f ${RABBITMQ_CONFIG_DIR}/logging.conf ]; then
cp ${RABBITMQ_CONFIG_DIR}/logging.conf $CONF_DIR/rabbitmq/conf.d/
2024-01-03 16:28:36 +08:00
fi
if [ -f ${RABBITMQ_CONFIG_DIR}/enabled_plugins ]; then
2024-09-04 21:59:58 +08:00
cp ${RABBITMQ_CONFIG_DIR}/enabled_plugins $CONF_DIR/rabbitmq
fi
if [ -d "${RABBITMQ_CONFIG_DIR}/certs" ]; then
2024-09-04 21:59:58 +08:00
cp -r ${RABBITMQ_CONFIG_DIR}/certs $CONF_DIR/rabbitmq
fi
if [ -d ${RABBITMQ_CONFIG_DIR}/imports ]; then
2024-09-04 21:59:58 +08:00
cp -r ${RABBITMQ_CONFIG_DIR}/imports $CONF_DIR/rabbitmq
fi
2024-01-03 16:28:36 +08:00
print "> RABBITMQ_TEST_DIR: /var/rabbitmq"
docker run \
--detach \
--name rabbitmq \
--net ${DOCKER_NETWORK} \
-p 5672:5672 \
-p 5671:5671 \
-p 15672:15672 \
-p 15671:15671 \
-p 5551:5551 \
2024-09-04 21:59:58 +08:00
-v $CONF_DIR/rabbitmq/:/etc/rabbitmq \
-v $CONF_DIR/rabbitmq/imports:/var/rabbitmq/imports \
2024-01-03 16:28:36 +08:00
-v ${TEST_DIR}:/config \
${RABBITMQ_DOCKER_IMAGE}
wait_for_message rabbitmq "Server startup complete"
2024-01-03 16:28:36 +08:00
end "RabbitMQ ready"
}