Add docs for errors in GetAlias API (#51850) (#52716)

Closes #31499

Co-authored-by: Maxim <timonin.maksim@mail.ru>
This commit is contained in:
Przemko Robakowski 2020-02-24 18:22:09 +01:00 committed by GitHub
parent f993ef80f8
commit e72cb79476
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 46 additions and 1 deletions

View File

@ -1382,6 +1382,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase {
highLevelClient().indices()::getAliasAsync);
assertThat(getAliasesResponse.status(), equalTo(RestStatus.NOT_FOUND));
assertThat(getAliasesResponse.getError(), equalTo("alias [" + alias + "] missing"));
assertThat(getAliasesResponse.getException(), nullValue());
}
createIndex(index, Settings.EMPTY);
client().performRequest(new Request(HttpPut.METHOD_NAME, index + "/_alias/" + alias));
@ -1389,7 +1390,9 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase {
GetAliasesRequest getAliasesRequest = new GetAliasesRequest().indices(index, "non_existent_index");
GetAliasesResponse getAliasesResponse = execute(getAliasesRequest, highLevelClient().indices()::getAlias,
highLevelClient().indices()::getAliasAsync);
assertThat(getAliasesResponse.getAliases().size(), equalTo(0));
assertThat(getAliasesResponse.status(), equalTo(RestStatus.NOT_FOUND));
assertThat(getAliasesResponse.getError(), nullValue());
assertThat(getAliasesResponse.getException().getMessage(),
equalTo("Elasticsearch exception [type=index_not_found_exception, reason=no such index [non_existent_index]]"));
}
@ -1397,6 +1400,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase {
GetAliasesRequest getAliasesRequest = new GetAliasesRequest().indices(index, "non_existent_index").aliases(alias);
GetAliasesResponse getAliasesResponse = execute(getAliasesRequest, highLevelClient().indices()::getAlias,
highLevelClient().indices()::getAliasAsync);
assertThat(getAliasesResponse.getAliases().size(), equalTo(0));
assertThat(getAliasesResponse.status(), equalTo(RestStatus.NOT_FOUND));
assertThat(getAliasesResponse.getException().getMessage(),
equalTo("Elasticsearch exception [type=index_not_found_exception, reason=no such index [non_existent_index]]"));
@ -1405,13 +1409,17 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase {
GetAliasesRequest getAliasesRequest = new GetAliasesRequest().indices("non_existent_index*");
GetAliasesResponse getAliasesResponse = execute(getAliasesRequest, highLevelClient().indices()::getAlias,
highLevelClient().indices()::getAliasAsync);
assertThat(getAliasesResponse.status(), equalTo(RestStatus.OK));
assertThat(getAliasesResponse.getAliases().size(), equalTo(0));
assertThat(getAliasesResponse.getException(), nullValue());
assertThat(getAliasesResponse.getError(), nullValue());
}
{
GetAliasesRequest getAliasesRequest = new GetAliasesRequest().indices(index).aliases(alias, "non_existent_alias");
GetAliasesResponse getAliasesResponse = execute(getAliasesRequest, highLevelClient().indices()::getAlias,
highLevelClient().indices()::getAliasAsync);
assertThat(getAliasesResponse.status(), equalTo(RestStatus.NOT_FOUND));
assertThat(getAliasesResponse.getError(), equalTo("alias [non_existent_alias] missing"));
assertThat(getAliasesResponse.getAliases().size(), equalTo(1));
assertThat(getAliasesResponse.getAliases().get(index).size(), equalTo(1));
@ -1431,6 +1439,13 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase {
}
*/
}
{
GetAliasesRequest getAliasesRequest = new GetAliasesRequest().aliases("non_existent_alias*");
GetAliasesResponse getAliasesResponse = execute(getAliasesRequest, highLevelClient().indices()::getAlias,
highLevelClient().indices()::getAliasAsync);
assertThat(getAliasesResponse.status(), equalTo(RestStatus.OK));
assertThat(getAliasesResponse.getAliases().size(), equalTo(0));
}
}
public void testIndexPutSettings() throws IOException {

View File

@ -112,6 +112,7 @@ import java.util.concurrent.TimeUnit;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.nullValue;
/**
* This class is used to generate the Java Indices API documentation.
@ -2000,8 +2001,17 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase
Map<String, Set<AliasMetaData>> aliases = response.getAliases(); // <1>
// end::get-alias-response
// tag::get-alias-response-error
RestStatus status = response.status(); // <1>
ElasticsearchException exception = response.getException(); // <2>
String error = response.getError(); // <3>
// end::get-alias-response-error
assertThat(response.getAliases().get("index").size(), equalTo(1));
assertThat(response.getAliases().get("index").iterator().next().alias(), equalTo("alias"));
assertThat(status, equalTo(RestStatus.OK));
assertThat(error, nullValue());
assertThat(exception, nullValue());
// tag::get-alias-execute-listener
ActionListener<GetAliasesResponse> listener =

View File

@ -63,3 +63,23 @@ executed operation as follows:
include-tagged::{doc-tests-file}[{api}-response]
--------------------------------------------------
<1> Retrieves a map of indices and their aliases
+{response}+ class contains information about errors if they occurred.
This info could be in fields `error` or `exception` depends on a case.
["source","java",subs="attributes,callouts,macros"]
--------------------------------------------------
include-tagged::{doc-tests-file}[{api}-response-error]
--------------------------------------------------
<1> Client sets status to `NOT_FOUND` if at least one item of specified
indices or aliases is not found. Otherwise it is `OK`.
<2> If at least one item of specified indices isn't exist client sets
`ElasticsearchException` and returns empty result.
<3> If at least one item of specified aliases ins't exist client puts
error description in `error` field and returns partial result if any
of other patterns match.
If user specified indices or aliases as regular expressions
and nothing was found client returns `OK` status and no errors.