#!/usr/bin/env bash

# This script is here because on some occassions the head mongodb does not become primary.

PRIMARY=$1;
AUTH=$2;

if [ "$AUTH" == "1" ]; then
  if [ "$PRIMARY" == "3001" ]; then
    mongo admin --port 3002 -u {{ mongodb_admin_user }} -p '{{ mongodb_admin_password }}' --eval "rs.freeze(30)";
    mongo admin --port 3003 -u {{ mongodb_admin_user }} -p '{{ mongodb_admin_password }}' --eval "rs.freeze(30)";
    mongo admin --port 3002 -u {{ mongodb_admin_user }} -p '{{ mongodb_admin_password }}' --eval "rs.stepDown()";
    mongo admin --port 3003 -u {{ mongodb_admin_user }} -p '{{ mongodb_admin_password }}' --eval "rs.stepDown()";
  elif [ "$PRIMARY" == "3004" ]; then
    mongo admin --port 3005 -u {{ mongodb_admin_user }} -p '{{ mongodb_admin_password }}' --eval "rs.freeze(30)";
    mongo admin --port 3006 -u {{ mongodb_admin_user }} -p '{{ mongodb_admin_password }}' --eval "rs.freeze(30)";
    mongo admin --port 3005 -u {{ mongodb_admin_user }} -p '{{ mongodb_admin_password }}' --eval "rs.stepDown()";
    mongo admin --port 3006 -u {{ mongodb_admin_user }} -p '{{ mongodb_admin_password }}' --eval "rs.stepDown()";
  else
    echo "Unsupported port!";
    exit 1;
  fi;
else
  if [ "$PRIMARY" == "3001" ]; then
    mongo admin --port 3002 --eval "rs.freeze(30)";
    mongo admin --port 3003 --eval "rs.freeze(30)";
    mongo admin --port 3002 --eval "rs.stepDown()";
    mongo admin --port 3003 --eval "rs.stepDown()";
  elif [ "$PRIMARY" == "3004" ]; then
    mongo admin --port 3005 --eval "rs.freeze(30)";
    mongo admin --port 3006 --eval "rs.freeze(30)";
    mongo admin --port 3005 --eval "rs.stepDown()";
    mongo admin --port 3006 --eval "rs.stepDown()";
  else
    echo "Unsupported port!";
    exit 1;
  fi;
fi;
