#!/bin/bash

set -e

. ./CLUSTER-SERVER/_mongodb_cluster_common.bash

gs_mongodb_cluster_require_local_role \
    "config-server" \
    "$GS_MONGODB_CONFIG_SERVER_HOSTNAME"

gs_mongodb_cluster_prepare_common_dirs

DATA_DIR="$GS_MONGODB_CLUSTER_HOME/config-server/data"
LOG_FILE="$GS_MONGODB_CLUSTER_HOME/config-server/log/mongod.log"
PID_FILE="$GS_MONGODB_CLUSTER_HOME/config-server/run/mongod.pid"
BIND_IP="$GS_MONGODB_CLUSTER_LOOPBACK_ADDRESS,$GS_MONGODB_CONFIG_SERVER_HOSTNAME"

gs_mongodb_start_guard "MongoDB config server" "$PID_FILE"

echo "Starting MongoDB config server:"
echo "  host:        $GS_MONGODB_CONFIG_SERVER_HOSTNAME"
echo "  port:        $GS_MONGODB_CONFIG_SERVER_PORT"
echo "  replica set: $GS_MONGODB_CONFIG_REPLSET"
echo "  data:        $DATA_DIR"
echo "  log:         $LOG_FILE"

mongod \
    --configsvr \
    --replSet "$GS_MONGODB_CONFIG_REPLSET" \
    --port "$GS_MONGODB_CONFIG_SERVER_PORT" \
    --bind_ip "$BIND_IP" \
    --dbpath "$DATA_DIR" \
    --logpath "$LOG_FILE" \
    --logappend \
    --pidfilepath "$PID_FILE" \
    --fork

gs_mongodb_cluster_wait_for_ping \
    "MongoDB config server" \
    "$GS_MONGODB_CONFIG_SERVER_HOSTNAME" \
    "$GS_MONGODB_CONFIG_SERVER_PORT" \
    "$GS_MONGODB_START_TIMEOUT"
