use of org.opensearch.client.Cancellable in project OpenSearch by opensearch-project.
the class SearchRestCancellationIT method verifyCancellationDuringQueryPhase.
void verifyCancellationDuringQueryPhase(String searchAction, Request searchRequest) throws Exception {
Map<String, String> nodeIdToName = readNodesInfo();
List<ScriptedBlockPlugin> plugins = initBlockFactory();
indexTestData();
CountDownLatch latch = new CountDownLatch(1);
AtomicReference<Exception> error = new AtomicReference<>();
Cancellable cancellable = getRestClient().performRequestAsync(searchRequest, new ResponseListener() {
@Override
public void onSuccess(Response response) {
latch.countDown();
}
@Override
public void onFailure(Exception exception) {
error.set(exception);
latch.countDown();
}
});
awaitForBlock(plugins);
cancellable.cancel();
ensureSearchTaskIsCancelled(searchAction, nodeIdToName::get);
disableBlocks(plugins);
latch.await();
assertThat(error.get(), instanceOf(CancellationException.class));
}
use of org.opensearch.client.Cancellable in project OpenSearch by opensearch-project.
the class RestClientDocumentation method usage.
// end::rest-client-options-singleton
@SuppressWarnings("unused")
public void usage() throws IOException, InterruptedException {
// tag::rest-client-init
RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200, "http"), new HttpHost("localhost", 9201, "http")).build();
// end::rest-client-init
// tag::rest-client-close
restClient.close();
// end::rest-client-close
{
// tag::rest-client-init-default-headers
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
Header[] defaultHeaders = new Header[] { new BasicHeader("header", "value") };
// <1>
builder.setDefaultHeaders(defaultHeaders);
// end::rest-client-init-default-headers
}
{
// tag::rest-client-init-node-selector
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
// <1>
builder.setNodeSelector(NodeSelector.SKIP_DEDICATED_MASTERS);
// end::rest-client-init-node-selector
}
{
// tag::rest-client-init-allocation-aware-selector
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
builder.setNodeSelector(new // <1>
NodeSelector() {
@Override
public void select(Iterable<Node> nodes) {
/*
* Prefer any node that belongs to rack_one. If none is around
* we will go to another rack till it's time to try and revive
* some of the nodes that belong to rack_one.
*/
boolean foundOne = false;
for (Node node : nodes) {
String rackId = node.getAttributes().get("rack_id").get(0);
if ("rack_one".equals(rackId)) {
foundOne = true;
break;
}
}
if (foundOne) {
Iterator<Node> nodesIt = nodes.iterator();
while (nodesIt.hasNext()) {
Node node = nodesIt.next();
String rackId = node.getAttributes().get("rack_id").get(0);
if ("rack_one".equals(rackId) == false) {
nodesIt.remove();
}
}
}
}
});
// end::rest-client-init-allocation-aware-selector
}
{
// tag::rest-client-init-failure-listener
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
builder.setFailureListener(new RestClient.FailureListener() {
@Override
public void onFailure(Node node) {
// <1>
}
});
// end::rest-client-init-failure-listener
}
{
// tag::rest-client-init-request-config-callback
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
builder.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
@Override
public RequestConfig.Builder customizeRequestConfig(RequestConfig.Builder requestConfigBuilder) {
// <1>
return requestConfigBuilder.setSocketTimeout(10000);
}
});
// end::rest-client-init-request-config-callback
}
{
// tag::rest-client-init-client-config-callback
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
builder.setHttpClientConfigCallback(new HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setProxy(// <1>
new HttpHost("proxy", 9000, "http"));
}
});
// end::rest-client-init-client-config-callback
}
{
// tag::rest-client-sync
Request request = new Request(// <1>
"GET", // <2>
"/");
Response response = restClient.performRequest(request);
// end::rest-client-sync
}
{
// tag::rest-client-async
Request request = new Request(// <1>
"GET", // <2>
"/");
Cancellable cancellable = restClient.performRequestAsync(request, new ResponseListener() {
@Override
public void onSuccess(Response response) {
// <3>
}
@Override
public void onFailure(Exception exception) {
// <4>
}
});
// end::rest-client-async
}
{
Request request = new Request("GET", "/");
// tag::rest-client-parameters
request.addParameter("pretty", "true");
// end::rest-client-parameters
// tag::rest-client-body
request.setEntity(new NStringEntity("{\"json\":\"text\"}", ContentType.APPLICATION_JSON));
// end::rest-client-body
// tag::rest-client-body-shorter
request.setJsonEntity("{\"json\":\"text\"}");
// end::rest-client-body-shorter
// tag::rest-client-options-set-singleton
request.setOptions(COMMON_OPTIONS);
// end::rest-client-options-set-singleton
{
// tag::rest-client-options-customize-header
RequestOptions.Builder options = COMMON_OPTIONS.toBuilder();
options.addHeader("cats", "knock things off of other things");
request.setOptions(options);
// end::rest-client-options-customize-header
}
}
{
HttpEntity[] documents = new HttpEntity[10];
// tag::rest-client-async-example
final CountDownLatch latch = new CountDownLatch(documents.length);
for (int i = 0; i < documents.length; i++) {
Request request = new Request("PUT", "/posts/doc/" + i);
// let's assume that the documents are stored in an HttpEntity array
request.setEntity(documents[i]);
restClient.performRequestAsync(request, new ResponseListener() {
@Override
public void onSuccess(Response response) {
// <1>
latch.countDown();
}
@Override
public void onFailure(Exception exception) {
// <2>
latch.countDown();
}
});
}
latch.await();
// end::rest-client-async-example
}
{
// tag::rest-client-async-cancel
Request request = new Request("GET", "/posts/_search");
Cancellable cancellable = restClient.performRequestAsync(request, new ResponseListener() {
@Override
public void onSuccess(Response response) {
// <1>
}
@Override
public void onFailure(Exception exception) {
// <2>
}
});
cancellable.cancel();
// end::rest-client-async-cancel
}
{
// tag::rest-client-response2
Response response = restClient.performRequest(new Request("GET", "/"));
// <1>
RequestLine requestLine = response.getRequestLine();
// <2>
HttpHost host = response.getHost();
// <3>
int statusCode = response.getStatusLine().getStatusCode();
// <4>
Header[] headers = response.getHeaders();
// <5>
String responseBody = EntityUtils.toString(response.getEntity());
// end::rest-client-response2
}
}
use of org.opensearch.client.Cancellable in project OpenSearch by opensearch-project.
the class SearchRestCancellationIT method verifyCancellationDuringFetchPhase.
void verifyCancellationDuringFetchPhase(String searchAction, Request searchRequest) throws Exception {
Map<String, String> nodeIdToName = readNodesInfo();
List<ScriptedBlockPlugin> plugins = initBlockFactory();
indexTestData();
CountDownLatch latch = new CountDownLatch(1);
AtomicReference<Exception> error = new AtomicReference<>();
Cancellable cancellable = getRestClient().performRequestAsync(searchRequest, new ResponseListener() {
@Override
public void onSuccess(Response response) {
latch.countDown();
}
@Override
public void onFailure(Exception exception) {
error.set(exception);
latch.countDown();
}
});
awaitForBlock(plugins);
cancellable.cancel();
ensureSearchTaskIsCancelled(searchAction, nodeIdToName::get);
disableBlocks(plugins);
latch.await();
assertThat(error.get(), instanceOf(CancellationException.class));
}
Aggregations