Skip to content

Instantly share code, notes, and snippets.

@charmygarg
Created August 29, 2019 09:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save charmygarg/b09fb8839b8a54540be8a0daf57aedab to your computer and use it in GitHub Desktop.
Save charmygarg/b09fb8839b8a54540be8a0daf57aedab to your computer and use it in GitHub Desktop.
ENVIRONMENTS=("dev2", "tst2", "shiptst1", "shiptst2", "stg1", "shipstg1")
SHIPS=("prd", "allure", "adventure", "anthem", "brilliance", "constellation", "edge", "enchantment", "equinox", "harmony", "independence", "liberty", "mariner", "majesty", "millennium", "navigator", "oasis", "pursuit", "quantum", "reflection", "spectrum", "summit", "serenade", "symphony", "vision")
if [[ "$environmentGroup" == "dev" && "$environmentChoice" == "all" ]]
then
ENV_NAMES=("dev2")
elif [[ "$environmentGroup" == "test" && "$environmentChoice" == "all" ]]
then
ENV_NAMES=("tst2" "shiptst1" "shiptst2")
elif [[ "$environmentGroup" == "stage" && "$environmentChoice" == "all" ]]
then
ENV_NAMES=("stg1" "shipstg1")
elif [[ "$environmentGroup" == "prod" && "$environmentChoice" == "all" ]]
then
SHIP_NAMES=("prd" "allure" "adventure" "anthem" "brilliance" "constellation" "edge" "enchantment" "equinox" "harmony" "independence" "liberty" "mariner" "majesty" "millennium" "navigator" "oasis" "pursuit" "quantum" "reflection" "spectrum" "summit" "serenade" "symphony" "vision")
elif [[ "$environmentGroup" == "prod" ]]
then
SHIP_NAMES=(${environmentChoice})
else
ENV_NAMES=(${environmentChoice})
fi
echo "Running for config $collectionName..."
echo "**************************************"
ALIAS_NAME="live_collection"
COLLECTION_NAME=${collectionName}
echo "Alias: $ALIAS_NAME"
echo "Collection: $COLLECTION_NAME"
lower_env_cutover_alias()
{
for ENV in ${ENV_NAMES[*]}
do
if [[ "${ENVIRONMENTS[@]}" =~ "${ENV}" ]]
then
cutover_alias "${ENV}"
else
echo "Incorrect environment choice!! Please enter (all) or specific environment from (${ENVIRONMENTS[*]}) "
fi
done
}
prod_cutover_alias()
{
for SHIP in ${SHIP_NAMES[*]}
do
if [[ "${SHIPS[@]}" =~ "${SHIP}" ]]
then
if [[ "${SHIP}" == "prd" ]]
then
cutover_alias "${SHIP}"
else
echo "**************************************"
echo "Ship: $SHIP"
echo "**************************************"
echo "DELETEALIAS: $SHIP"
echo "**************************************"
curl -X GET "http://mesos.${SHIP}.sh.rccl.com/solr-cloud/v3/solr/admin/collections?action=DELETEALIAS&name=$ALIAS_NAME&wt=xml"
echo "**************************************"
echo "CREATEALIAS: $SHIP"
echo "**************************************"
curl -X GET "http://mesos.${SHIP}.sh.rccl.com/solr-cloud/v3/solr/admin/collections?action=CREATEALIAS&name=$ALIAS_NAME&collections=$COLLECTION_NAME&wt=xml"
echo "**************************************"
echo "LISTALIAS: $SHIP"
echo "**************************************"
curl -X GET "http://mesos.${SHIP}.sh.rccl.com/solr-cloud/v3/solr/admin/collections?action=LISTALIASES&wt=xml"
fi
else
echo "Incorrect ship choice!! Please enter specific ship from (${SHIPS[*]})"
fi
done
}
cutover_alias()
{
local ENV="$1"
echo "**************************************"
echo "Environment: $ENV"
echo "**************************************"
echo "DELETE ALIAS: $ENV"
echo "**************************************"
curl -X GET "http://${ENV}.mesos.rccl.com/solr-cloud/v3/solr/admin/collections?action=DELETEALIAS&name=$ALIAS_NAME&wt=xml"
echo "**************************************"
echo "CREATE ALIAS: $ENV"
echo "**************************************"
curl -X GET "http://${ENV}.mesos.rccl.com/solr-cloud/v3/solr/admin/collections?action=CREATEALIAS&name=$ALIAS_NAME&collections=$COLLECTION_NAME&wt=xml"
echo "**************************************"
echo "LIST ALIAS: $ENV"
echo "**************************************"
curl -X GET "http://${ENV}.mesos.rccl.com/solr-cloud/v3/solr/admin/collections?action=LISTALIASES&wt=xml"
}
if [[ "${#SHIP_NAMES[@]}" -ne 0 ]]
then
prod_cutover_alias
elif [[ "${#ENV_NAMES[@]}" -ne 0 ]]
then
lower_env_cutover_alias
else
echo "Incorrect ship choice!!"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment