From 28eff2ba2942312a4bb2664d25357161ba105e43 Mon Sep 17 00:00:00 2001 From: Shay Banon Date: Thu, 5 Dec 2013 14:36:27 +0100 Subject: [PATCH] remove help command, list all cat commands in /_cat?h endpoint --- docs/reference/cat.asciidoc | 6 ++- .../rest/action/RestActionModule.java | 1 - .../rest/action/cat/RestCatAction.java | 20 +++++-- .../rest/action/cat/RestHelpAction.java | 52 ------------------- 4 files changed, 22 insertions(+), 57 deletions(-) delete mode 100644 src/main/java/org/elasticsearch/rest/action/cat/RestHelpAction.java diff --git a/docs/reference/cat.asciidoc b/docs/reference/cat.asciidoc index f102f1a2e6d..be24ff5f112 100644 --- a/docs/reference/cat.asciidoc +++ b/docs/reference/cat.asciidoc @@ -12,6 +12,10 @@ to find relationships in the data is tedious. Human eyes, especially when looking at an ssh terminal, need compact and aligned text. The cat API aims to meet this need. +All the cat commands accept a query string parameter `h` to see all +the headers and info they provide, and the `/_cat?h` command lists all +the available commands. + [float] [[common-parameters]] == Common parameters @@ -45,7 +49,7 @@ by all the shards, not number of documents). The `/_cat/indices` API is ideal. We only need to tweak two things. First, we want to turn off human mode. We'll use a byte-level resolution. Then we'll pipe our output into `sort` using the appropriate column, which in this -case is the eigth one. +case is the eight one. [source,shell] -------------------------------------------------- diff --git a/src/main/java/org/elasticsearch/rest/action/RestActionModule.java b/src/main/java/org/elasticsearch/rest/action/RestActionModule.java index 67ec61b2168..fd824bb51ea 100644 --- a/src/main/java/org/elasticsearch/rest/action/RestActionModule.java +++ b/src/main/java/org/elasticsearch/rest/action/RestActionModule.java @@ -222,6 +222,5 @@ public class RestActionModule extends AbstractModule { catActionMultibinder.addBinding().to(org.elasticsearch.rest.action.cat.RestPendingClusterTasksAction.class).asEagerSingleton(); // no abstract cat action bind(RestCatAction.class).asEagerSingleton(); - bind(RestHelpAction.class).asEagerSingleton(); } } diff --git a/src/main/java/org/elasticsearch/rest/action/cat/RestCatAction.java b/src/main/java/org/elasticsearch/rest/action/cat/RestCatAction.java index 667d828a912..007fdfd8a02 100644 --- a/src/main/java/org/elasticsearch/rest/action/cat/RestCatAction.java +++ b/src/main/java/org/elasticsearch/rest/action/cat/RestCatAction.java @@ -25,23 +25,37 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.rest.*; import java.io.IOException; +import java.util.Set; import static org.elasticsearch.rest.RestRequest.Method.GET; public class RestCatAction extends BaseRestHandler { - private static final String CAT = "=^.^=\n"; + private static final String CAT = "=^.^="; + private static final String CAT_NL = CAT + "\n"; + private final String HELP; @Inject - public RestCatAction(Settings settings, Client client, RestController controller) { + public RestCatAction(Settings settings, Client client, RestController controller, Set catActions) { super(settings, client); controller.registerHandler(GET, "/_cat", this); + StringBuilder sb = new StringBuilder(); + sb.append(CAT).append(" try:\n"); + for (AbstractCatAction catAction : catActions) { + catAction.documentation(sb); + } + HELP = sb.toString(); } @Override public void handleRequest(final RestRequest request, final RestChannel channel) { try { - channel.sendResponse(new StringRestResponse(RestStatus.OK, CAT)); + boolean helpWanted = request.paramAsBoolean("h", false); + if (helpWanted) { + channel.sendResponse(new StringRestResponse(RestStatus.OK, HELP)); + } else { + channel.sendResponse(new StringRestResponse(RestStatus.OK, CAT_NL)); + } } catch (Throwable t) { try { channel.sendResponse(new XContentThrowableRestResponse(request, t)); diff --git a/src/main/java/org/elasticsearch/rest/action/cat/RestHelpAction.java b/src/main/java/org/elasticsearch/rest/action/cat/RestHelpAction.java deleted file mode 100644 index d055ae34651..00000000000 --- a/src/main/java/org/elasticsearch/rest/action/cat/RestHelpAction.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to ElasticSearch and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. ElasticSearch licenses this - * file to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.rest.action.cat; - -import org.elasticsearch.client.Client; -import org.elasticsearch.common.inject.Inject; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.rest.*; - -import java.util.Set; - -import static org.elasticsearch.rest.RestRequest.Method.GET; - - -public class RestHelpAction extends BaseRestHandler { - - StringBuilder sb = new StringBuilder(); - - @Inject - public RestHelpAction(Settings settings, Client client, RestController controller, Set catActions) { - super(settings, client); - controller.registerHandler(GET, "/_cat/help", this); - controller.registerHandler(GET, "/_cat/halp", this); - sb.append("Try:\n\n"); - sb.append("/_cat/help\n"); - for (AbstractCatAction catAction : catActions) { - catAction.documentation(sb); - } - } - - @Override - public void handleRequest(final RestRequest request, final RestChannel channel) { - channel.sendResponse(new StringRestResponse(RestStatus.OK, sb.toString())); - } -}