#!/bin/bash

function exit_usage() {
    local status=${1:-0}
    [[ $status != 0 ]] && exec >&2
    echo "Usage: ${0##*/} status|begin-rolling|end-rolling|begin-node|end-node"
    exit "$status"
}

op=
while (( $# > 0 )); do
    case "$1" in
        -h|--help) exit_usage 0 ;;
        status|begin-rolling|end-rolling|begin-node|end-node) op=$1 ;;
        *) exit_usage 1 ;;
    esac
    shift
done

[[ -z $op ]] && exit_usage 1

if [[ $op == status ]]; then
    es-curl _cluster/settings

elif [[ $op == begin-rolling ]]; then
    es-curl _cluster/settings -X PUT -d '{ "persistent": {
            "cluster.routing.rebalance.enable": "none",
            "cluster.routing.allocation.node_concurrent_recoveries": "6",
            "indices.recovery.max_bytes_per_sec": "125mb"
        }}'
elif [[ $op == end-rolling ]]; then
    es-curl _cluster/settings -X PUT -d '{ "persistent": {
            "cluster.routing.rebalance.enable": null,
            "cluster.routing.allocation.node_concurrent_recoveries": null,
            "indices.recovery.max_bytes_per_sec": null
        }}'

elif [[ $op == begin-node ]]; then
    es-curl _cluster/settings -X PUT -d '{ "persistent": {
            "cluster.routing.allocation.enable": "primaries"
        }}'

elif [[ $op == end-node ]]; then
    es-curl _cluster/settings -X PUT -d '{ "persistent": {
            "cluster.routing.allocation.enable": null
        }}'
fi |jq -c
