| #!/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 '' |