use of org.opensearch.client.cluster.RemoteInfoResponse in project OpenSearch by opensearch-project.
the class ClusterClientDocumentationIT method testRemoteInfoAsync.
public void testRemoteInfoAsync() throws Exception {
setupRemoteClusterConfig("local_cluster");
RestHighLevelClient client = highLevelClient();
// tag::remote-info-request
RemoteInfoRequest request = new RemoteInfoRequest();
// end::remote-info-request
// tag::remote-info-execute-listener
ActionListener<RemoteInfoResponse> listener = new ActionListener<RemoteInfoResponse>() {
@Override
public void onResponse(RemoteInfoResponse response) {
// <1>
}
@Override
public void onFailure(Exception e) {
// <2>
}
};
// end::remote-info-execute-listener
// Replace the empty listener by a blocking listener in test
final CountDownLatch latch = new CountDownLatch(1);
listener = new LatchedActionListener<>(listener, latch);
// tag::health-execute-async
// <1>
client.cluster().remoteInfoAsync(request, RequestOptions.DEFAULT, listener);
// end::health-execute-async
assertTrue(latch.await(30L, TimeUnit.SECONDS));
}
use of org.opensearch.client.cluster.RemoteInfoResponse in project OpenSearch by opensearch-project.
the class ClusterClientDocumentationIT method testRemoteInfo.
public void testRemoteInfo() throws Exception {
setupRemoteClusterConfig("local_cluster");
RestHighLevelClient client = highLevelClient();
// tag::remote-info-request
RemoteInfoRequest request = new RemoteInfoRequest();
// end::remote-info-request
// tag::remote-info-execute
// <1>
RemoteInfoResponse response = client.cluster().remoteInfo(request, RequestOptions.DEFAULT);
// end::remote-info-execute
// tag::remote-info-response
List<RemoteConnectionInfo> infos = response.getInfos();
// end::remote-info-response
assertThat(infos.size(), greaterThan(0));
}
use of org.opensearch.client.cluster.RemoteInfoResponse in project OpenSearch by opensearch-project.
the class OpenSearchRestHighLevelClientTestCase method setupRemoteClusterConfig.
protected static void setupRemoteClusterConfig(String remoteClusterName) throws Exception {
// Configure local cluster as remote cluster:
// TODO: replace with nodes info highlevel rest client code when it is available:
final Request request = new Request("GET", "/_nodes");
Map<?, ?> nodesResponse = (Map<?, ?>) toMap(client().performRequest(request)).get("nodes");
// Select node info of first node (we don't know the node id):
nodesResponse = (Map<?, ?>) nodesResponse.get(nodesResponse.keySet().iterator().next());
String transportAddress = (String) nodesResponse.get("transport_address");
ClusterUpdateSettingsRequest updateSettingsRequest = new ClusterUpdateSettingsRequest();
updateSettingsRequest.transientSettings(singletonMap("cluster.remote." + remoteClusterName + ".seeds", transportAddress));
ClusterUpdateSettingsResponse updateSettingsResponse = restHighLevelClient.cluster().putSettings(updateSettingsRequest, RequestOptions.DEFAULT);
assertThat(updateSettingsResponse.isAcknowledged(), is(true));
assertBusy(() -> {
RemoteInfoResponse response = highLevelClient().cluster().remoteInfo(new RemoteInfoRequest(), RequestOptions.DEFAULT);
assertThat(response, notNullValue());
assertThat(response.getInfos().size(), greaterThan(0));
});
}
use of org.opensearch.client.cluster.RemoteInfoResponse in project OpenSearch by opensearch-project.
the class ClusterClientIT method testRemoteInfo.
public void testRemoteInfo() throws Exception {
String clusterAlias = "local_cluster";
setupRemoteClusterConfig(clusterAlias);
ClusterGetSettingsRequest settingsRequest = new ClusterGetSettingsRequest();
settingsRequest.includeDefaults(true);
ClusterGetSettingsResponse settingsResponse = highLevelClient().cluster().getSettings(settingsRequest, RequestOptions.DEFAULT);
List<String> seeds = SniffConnectionStrategy.REMOTE_CLUSTER_SEEDS.getConcreteSettingForNamespace(clusterAlias).get(settingsResponse.getTransientSettings());
int connectionsPerCluster = SniffConnectionStrategy.REMOTE_CONNECTIONS_PER_CLUSTER.get(settingsResponse.getTransientSettings());
TimeValue initialConnectionTimeout = RemoteClusterService.REMOTE_INITIAL_CONNECTION_TIMEOUT_SETTING.get(settingsResponse.getTransientSettings());
boolean skipUnavailable = RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE.getConcreteSettingForNamespace(clusterAlias).get(settingsResponse.getTransientSettings());
RemoteInfoRequest request = new RemoteInfoRequest();
RemoteInfoResponse response = execute(request, highLevelClient().cluster()::remoteInfo, highLevelClient().cluster()::remoteInfoAsync);
assertThat(response, notNullValue());
assertThat(response.getInfos().size(), equalTo(1));
RemoteConnectionInfo info = response.getInfos().get(0);
assertThat(info.getClusterAlias(), equalTo(clusterAlias));
assertThat(info.getInitialConnectionTimeoutString(), equalTo(initialConnectionTimeout.toString()));
assertThat(info.isSkipUnavailable(), equalTo(skipUnavailable));
assertThat(info.getModeInfo().modeName(), equalTo(SniffModeInfo.NAME));
assertThat(info.getModeInfo().isConnected(), equalTo(true));
SniffModeInfo sniffModeInfo = (SniffModeInfo) info.getModeInfo();
assertThat(sniffModeInfo.getMaxConnectionsPerCluster(), equalTo(connectionsPerCluster));
assertThat(sniffModeInfo.getNumNodesConnected(), equalTo(1));
assertThat(sniffModeInfo.getSeedNodes(), equalTo(seeds));
}
Aggregations