From aa9a96f327fb0c1d09ac93ab02af4c33687c710a Mon Sep 17 00:00:00 2001 From: Fedele Mantuano Date: Mon, 24 Aug 2015 12:17:06 +0200 Subject: [PATCH] Added GET API Elasticsearch plugin Manage _cat API Added PUT, POST, DELETE commands. Added options for autocomplete --- plugins/elasticsearch/_GET | 28 ++++++++++++ .../elasticsearch/elasticsearch.plugin.zsh | 45 +++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 plugins/elasticsearch/_GET create mode 100644 plugins/elasticsearch/elasticsearch.plugin.zsh diff --git a/plugins/elasticsearch/_GET b/plugins/elasticsearch/_GET new file mode 100644 index 000000000..7fe4842d9 --- /dev/null +++ b/plugins/elasticsearch/_GET @@ -0,0 +1,28 @@ +#compdef GET + +local -a options +options=( + '_cache/clear:Allows to clear all caches for all indices' + '_cluster/health:Cluster status health' + '_cluster/nodes/_local/_shutdown:Shutdown local node' + '_cluster/pending_tasks:Returns a list of any cluster-level changes which have not yet been executed' + '_cluster/settings:Cluster settings' + '_cluster/state:Allows to get a comprehensive state information of the whole cluster' + '_cluster/stats:Allows to retrieve statistics from a cluster wide perspective' + '_flush:Allows to flush all indices' + '_nodes/hot_threads:Allowing to get the current hot threads on each node in the cluster' + '_nodes/stats/indices:Field data memory usage on node level' + '_nodes/stats:Allows to retrieve all of the cluster nodes statistics' + '_nodes:Allows to retrieve all of the cluster nodes information' + '_optimize?max_num_segments=1:Allows to optimize all indices' + '_recovery:Cluster-wide recovery status' + '_recovery?detailed=true:Cluster-wide recovery status with details' + '_refresh:Allows to explicitly refresh all indices' + '_segments:Include segments for all indices' + '_shutdown:Shutdown all nodes' + '_stats/fielddata:Field data memory usage on index level' + '_stats:High level aggregation and index level stats for all indices' + '_status:Status information of all indices' + '_template:List of all index templates' +) +_describe 'values' options diff --git a/plugins/elasticsearch/elasticsearch.plugin.zsh b/plugins/elasticsearch/elasticsearch.plugin.zsh new file mode 100644 index 000000000..aa97f80a7 --- /dev/null +++ b/plugins/elasticsearch/elasticsearch.plugin.zsh @@ -0,0 +1,45 @@ +# ------------------------------------------------------------------------------ +# Description +# ----------- +# +# You can use Elastichsearch GET API like in Marvel sense console: +# GET / +# GET _cluster/health +# GET _nodes/stats +# GET _stats/fielddata?fields=* +# GET _nodes/stats/indices/fielddata?fields=* +# +# You have do install json_reformat (http://dev.man-online.org/package/main/yajl-tools/) +# to format json +# +# ------------------------------------------------------------------------------ +# Author +# ------- +# +# * Fedele Mantuano (Twitter: @fedelemantuano) +# +# ------------------------------------------------------------------------------ + +alias ech='GET _cluster/health' +alias ecs='GET _cluster/state' +alias ens='GET _nodes/stats' +alias esf='GET _stats/fielddata' + +# GET +if which json_reformat > /dev/null 2>&1; then + GET() { curl -s -XGET http://localhost:9200/"$@" | json_reformat 2>/dev/null || curl -s -XGET http://localhost:9200/"$@" } +else + GET() { curl -s -XGET http://localhost:9200/"$@" } +fi + +# HEAD +HEAD() { curl -s -XHEAD -i http://localhost:9200/"$@" } + +# DELETE +DELETE() { curl -s -XDELETE http://localhost:9200/"$@" } + +# PUT +PUT() { curl -s -XPUT http://localhost:9200/"$@" } + +# POST +POST() { curl -s -XPOST http://localhost:9200/"$@" }