45 lines
1.5 KiB
45 lines
1.5 KiB
#!/bin/bash
|
|
|
|
## Init is run on host
|
|
## For now it is run every time the script is launched, but
|
|
## it should be launched only once after build.
|
|
|
|
## Accessible variables are:
|
|
## - SERVICE_NAME Name of current service
|
|
## - DOCKER_BASE_IMAGE Base image from which this service might be built if any
|
|
## - SERVICE_DATASTORE Location on host of the DATASTORE of this service
|
|
## - SERVICE_CONFIGSTORE Location on host of the CONFIGSTORE of this service
|
|
|
|
|
|
# Please note that postgres detect on its own if its datadir needs to be populated
|
|
|
|
|
|
. lib/common
|
|
|
|
set -e
|
|
|
|
|
|
if ! [ -f "$HOST_DB_PASSFILE" ]; then
|
|
POSTGRES_ROOT_PASSWORD="$(gen_password)"
|
|
ddb < <(echo "ALTER USER postgres WITH ENCRYPTED password '$POSTGRES_ROOT_PASSWORD'")
|
|
cat <<EOF > "$HOST_DB_PASSFILE"
|
|
*:*:*:postgres:$POSTGRES_ROOT_PASSWORD
|
|
EOF
|
|
chmod 600 "$HOST_DB_PASSFILE"
|
|
info "New root password for postgres. "
|
|
fi
|
|
|
|
if ! egrep "^host all all (0.0.0.0/0|all) md5\$" "$PG_HBA" >/dev/null 2>&1; then
|
|
if egrep "^host all all (0.0.0.0/0|all) trust\$" "$PG_HBA" >/dev/null 2>&1; then
|
|
sed -ri 's%^host all all (0\.0\.0\.0/0|all) trust$%host all all \1 md5%g' \
|
|
"$PG_HBA"
|
|
if is_db_locked; then
|
|
ensure_db_docker_running
|
|
docker restart "$container_id"
|
|
info "Restarted container $container_id"
|
|
fi
|
|
info "Accepting connection from outside."
|
|
else
|
|
die "Can't ensure connection from outside. Please update the charm init script."
|
|
fi
|
|
fi
|