Browse Source

chg: [mongo] move initiatlisation code to ``init`` out of ``mongo_database-relation-joined``

pull/31/head
Valentin Lab 8 months ago
parent
commit
fd948f779c
  1. 60
      mongo/hooks/init
  2. 35
      mongo/hooks/mongo_database-relation-joined

60
mongo/hooks/init

@ -50,3 +50,63 @@ $MASTER_BASE_SERVICE_NAME:
labels:
- compose.config_hash=$config_hash
"
ensure_db_docker_running
## ReplicaSet initialization
cmd="rs.initiate({ _id: 'rs01', members: [ { _id: 0, host: '$SERVICE_NAME:27017' } ]})"
debug "${WHITE}running:$NORMAL $cmd"
out=$(ddb <<<"$cmd")
if [[ "$out" == *"\"codeName\" : \"AlreadyInitialized\""* ]]; then
info "ReplicaSet already initialized."
elif [[ "$out" == *"\"ok\" : 1"* ]]; then
info "ReplicaSet initialized. "
else
err "ReplicaSet initialisation failed:"
echo "$out" >&2
exit 13
fi
## Enable read if db version >= 4.2
if ! version=$(mongo:db:version); then
err "Couldn't get database version"
exit 1
fi
echo "Current mongo database version: '$version'." >&2
if version_gt "$version" 4.1; then
cmd="db.getMongo().setSecondaryOk()"
debug "${WHITE}running:$NORMAL $cmd"
out=$(ddb <<<"$cmd") || {
err "Failed database command. Output:"
echo "$out" | prefix " | " >&2
exit 1
}
fi
## This is some sort of migrating code and should be moved to upgrade
## directory.
major_version=${version%.*}
cmd="db.adminCommand( { setFeatureCompatibilityVersion: \"${major_version}\" } )"
debug "${WHITE}running:$NORMAL $cmd"
out=$(ddb <<<"$cmd")
if [[ "$out" == *"\"ok\" : 1"* ]]; then
info "Feature Compatibility set to ${major_version}. "
else
err "Failed to set feature compatibility version failed:"
echo "$out" | prefix " | " >&2
exit 13
fi

35
mongo/hooks/mongo_database-relation-joined

@ -17,25 +17,6 @@ function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$
ensure_db_docker_running
## ReplicaSet initialization
cmd="rs.initiate({ _id: 'rs01', members: [ { _id: 0, host: '$TARGET_SERVICE_NAME:27017' } ]})"
debug "${WHITE}running:$NORMAL $cmd"
out=$(ddb < <(echo "use $DBNAME";
echo "$cmd"))
if [[ "$out" == *"\"codeName\" : \"AlreadyInitialized\""* ]]; then
info "ReplicaSet already initialized."
elif [[ "$out" == *"\"ok\" : 1"* ]]; then
info "ReplicaSet initialized. "
else
err "ReplicaSet initialisation failed:"
echo "$out" >&2
exit 13
fi
## Enable read if db version >= 4.2
if ! version=$(mongo:db:version); then
@ -88,19 +69,3 @@ else
exit 14
fi
major_version=${version%.*}
## XXXvlab: why don't we do this initialisation in init ?
cmd="db.adminCommand( { setFeatureCompatibilityVersion: \"${major_version}\" } )"
debug "${WHITE}running:$NORMAL $cmd"
out=$(ddb < <(echo "use $DBNAME";
echo "$cmd"))
if [[ "$out" == *"\"ok\" : 1"* ]]; then
info "Feature Compatibility set to ${major_version}. "
else
err "Failed to set feature compatibieplicaSet initialisation failed:"
echo "$out" | prefix " | " >&2
exit 13
fi
Loading…
Cancel
Save