#!/bin/bash

set -e

. ./CLUSTER-SERVER/_mongodb_cluster_common.bash

gs_mongodb_cluster_require_local_role \
    "router" \
    "$GS_MONGODB_ROUTER_HOSTNAME"

gs_mongodb_cluster_prepare_common_dirs

LOG_FILE="$GS_MONGODB_CLUSTER_HOME/router/log/mongos.log"
PID_FILE="$GS_MONGODB_CLUSTER_HOME/router/run/mongos.pid"
BIND_IP="$GS_MONGODB_CLUSTER_LOOPBACK_ADDRESS,$GS_MONGODB_ROUTER_HOSTNAME"
CONFIG_DB=$(gs_mongodb_cluster_configdb)

gs_mongodb_start_guard "MongoDB mongos router" "$PID_FILE"

echo "Starting MongoDB mongos router:"
echo "  host:      $GS_MONGODB_ROUTER_HOSTNAME"
echo "  port:      $GS_MONGODB_ROUTER_PORT"
echo "  config DB: $CONFIG_DB"
echo "  log:       $LOG_FILE"

mongos \
    --configdb "$CONFIG_DB" \
    --port "$GS_MONGODB_ROUTER_PORT" \
    --bind_ip "$BIND_IP" \
    --logpath "$LOG_FILE" \
    --logappend \
    --pidfilepath "$PID_FILE" \
    --fork

gs_mongodb_cluster_wait_for_ping \
    "MongoDB mongos router" \
    "$GS_MONGODB_ROUTER_HOSTNAME" \
    "$GS_MONGODB_ROUTER_PORT" \
    "$GS_MONGODB_START_TIMEOUT"
