Browse Source

fix: [mongo] exit script on failure of some sub command

pull/31/head
Valentin Lab 1 year ago
parent
commit
5069c28ff5
  1. 16
      mongo/hooks/mongo_database-relation-joined

16
mongo/hooks/mongo_database-relation-joined

@ -39,6 +39,8 @@ if version_gt "$version" 4.1; then
fi fi
## This is some sort of migrating code and should be moved to upgrade
## directory.
if dbs=$(mongo:db:ls); then if dbs=$(mongo:db:ls); then
if matching_db=$(e "$dbs" | egrep "[a-zA-Z0-9.-_]*_${DBNAME}"); then if matching_db=$(e "$dbs" | egrep "[a-zA-Z0-9.-_]*_${DBNAME}"); then
@ -47,15 +49,25 @@ if dbs=$(mongo:db:ls); then
"found along with database named '${DBNAME}'." "found along with database named '${DBNAME}'."
exit 1 exit 1
fi fi
## XXXvlab: there's probably an unsolved issue here when
## =ensure_db_docker_running= returned the current running
## service container, that we are about to stop in the
## following lines. I'm not digging much into that because
## this code is probably not concerning any current live
## deployment anymore: this was written for an evolution of
## the charm a long time ago, and probably should be deleted
## now.
## Let's take for granted that only current source service is ## Let's take for granted that only current source service is
## concerned by the database. We need to restart source service ## concerned by the database. We need to restart source service
## container only if already running. ## container only if already running.
container_ids=($(get_running_containers_for_service "$MASTER_BASE_SERVICE_NAME")) container_ids=($(get_running_containers_for_service "$MASTER_BASE_SERVICE_NAME"))
for container_id in "${container_ids[@]}"; do for container_id in "${container_ids[@]}"; do
mongo_url=$(docker:container:env_get "$container_id" MONGO_URL) || return 1
mongo_url=$(docker:container:env_get "$container_id" MONGO_URL) || exit 1
if [[ "$mongo_url" == */"${matching_db}"* ]]; then if [[ "$mongo_url" == */"${matching_db}"* ]]; then
info "Attempting to stop current containers of service $MASTER_BASE_SERVICE_NAME" info "Attempting to stop current containers of service $MASTER_BASE_SERVICE_NAME"
docker stop -t 5 "$container_id"
docker stop -t 5 "$container_id" || exit 1
fi fi
done done

Loading…
Cancel
Save