diff --git a/mongo/hooks/mongo_database-relation-joined b/mongo/hooks/mongo_database-relation-joined index 60ca301..6969343 100755 --- a/mongo/hooks/mongo_database-relation-joined +++ b/mongo/hooks/mongo_database-relation-joined @@ -39,6 +39,8 @@ if version_gt "$version" 4.1; then fi +## This is some sort of migrating code and should be moved to upgrade +## directory. if dbs=$(mongo:db:ls); 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}'." exit 1 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 ## concerned by the database. We need to restart source service ## container only if already running. container_ids=($(get_running_containers_for_service "$MASTER_BASE_SERVICE_NAME")) 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 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 done