remove help command, list all cat commands in /_cat?h endpoint

This commit is contained in:
Shay Banon 2013-12-05 14:36:27 +01:00
parent 0e78404af3
commit 28eff2ba29
4 changed files with 22 additions and 57 deletions

View File

@ -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]
--------------------------------------------------

View File

@ -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();
}
}

View File

@ -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<AbstractCatAction> 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));

View File

@ -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<AbstractCatAction> 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()));
}
}