#!/bin/bash
#
# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
USAGE="Usage: ./es_create_alias.sh \
[-s <server>] [-p <port>] [-i <index>] [-a <alias>]
Example usage: ./es_create_alias.sh -s 172.25.61.45 -p 9200 -i \
test_index -a test_index_alias"
HELP="${USAGE}\n\n\
Create a new alias so that we can refer to an index via an alternate name.\n\
This is useful so we can remap an index without any downtime. \n\
Options:\n\
-s IP of server running elasticsearch\n\
-p Port of server running elasticsearch\n\
-a A new name that we can refer to the index as \n\
-i elasticsearch index, i.e. atlantis4.mtv, cautotest, localhost, etc.\n"
SERVER=
PORT=
ALIAS=
INDEX=
while getopts ":s:p:a:i:" opt; do
case $opt in
s)
SERVER=$OPTARG
;;
p)
PORT=$OPTARG
;;
a)
ALIAS=$OPTARG
;;
i)
INDEX=$OPTARG
;;
\?)
echo "Invalid option: -$OPTARG" >&2
echo "${USAGE}" >&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
echo "${USAGE}" >&2
exit 1
;;
esac
done
echo "Creating alias ${ALIAS} for index ${INDEX} for
ES server at: ${SERVER}:${PORT}..."
curl -XPOST ${SERVER}:${PORT}/_aliases -d '
{
"actions": [
{ "add": {
"alias": '"\"${ALIAS}\""',
"index": '"\"${INDEX}\""'
}}
]
}'
echo ''