diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java index 3303ed4f218e4..4f56981e680d1 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java @@ -1106,6 +1106,7 @@ public void testGetAliasesNonExistentIndexOrAlias() throws IOException { 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)); @@ -1113,7 +1114,9 @@ public void testGetAliasesNonExistentIndexOrAlias() throws IOException { 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]]")); } @@ -1121,6 +1124,7 @@ public void testGetAliasesNonExistentIndexOrAlias() throws IOException { 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]]")); @@ -1129,13 +1133,17 @@ public void testGetAliasesNonExistentIndexOrAlias() throws IOException { 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)); @@ -1155,6 +1163,13 @@ public void testGetAliasesNonExistentIndexOrAlias() throws IOException { } */ } + { + 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 { diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java index 506a2b52e47b1..0218d702d2851 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java @@ -109,6 +109,7 @@ 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. @@ -1909,8 +1910,17 @@ public void testGetAlias() throws Exception { Map> 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 listener = diff --git a/docs/java-rest/high-level/indices/get_alias.asciidoc b/docs/java-rest/high-level/indices/get_alias.asciidoc index f36591f33acea..c51f9fe5b95be 100644 --- a/docs/java-rest/high-level/indices/get_alias.asciidoc +++ b/docs/java-rest/high-level/indices/get_alias.asciidoc @@ -62,4 +62,24 @@ executed operation as follows: -------------------------------------------------- include-tagged::{doc-tests-file}[{api}-response] -------------------------------------------------- -<1> Retrieves a map of indices and their aliases \ No newline at end of file +<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.