Skip to content

Commit 2c27c58

Browse files
sohaibiftikharnik9000
authored andcommitted
REST high-level client: add synced flush API (2) (#30650)
Adds the synced flush API to the high level REST client. Relates to #27205.
1 parent f582418 commit 2c27c58

File tree

9 files changed

+881
-4
lines changed

9 files changed

+881
-4
lines changed

client/rest-high-level/src/main/java/org/elasticsearch/client/IndicesClient.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse;
3535
import org.elasticsearch.action.admin.indices.flush.FlushRequest;
3636
import org.elasticsearch.action.admin.indices.flush.FlushResponse;
37+
import org.elasticsearch.action.admin.indices.flush.SyncedFlushRequest;
3738
import org.elasticsearch.action.admin.indices.forcemerge.ForceMergeRequest;
3839
import org.elasticsearch.action.admin.indices.forcemerge.ForceMergeResponse;
3940
import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
@@ -269,6 +270,28 @@ public void flushAsync(FlushRequest flushRequest, ActionListener<FlushResponse>
269270
listener, emptySet(), headers);
270271
}
271272

273+
/** Initiate a synced flush manually using the synced flush API
274+
* <p>
275+
* See <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-synced-flush.html">
276+
* Synced flush API on elastic.co</a>
277+
*/
278+
public SyncedFlushResponse flushSynced(SyncedFlushRequest syncedFlushRequest, Header... headers) throws IOException {
279+
return restHighLevelClient.performRequestAndParseEntity(syncedFlushRequest, RequestConverters::flushSynced,
280+
SyncedFlushResponse::fromXContent, emptySet(), headers);
281+
}
282+
283+
/**
284+
* Asynchronously initiate a synced flush manually using the synced flush API
285+
* <p>
286+
* See <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-synced-flush.html">
287+
* Synced flush API on elastic.co</a>
288+
*/
289+
public void flushSyncedAsync(SyncedFlushRequest syncedFlushRequest, ActionListener<SyncedFlushResponse> listener, Header... headers) {
290+
restHighLevelClient.performRequestAsyncAndParseEntity(syncedFlushRequest, RequestConverters::flushSynced,
291+
SyncedFlushResponse::fromXContent, listener, emptySet(), headers);
292+
}
293+
294+
272295
/**
273296
* Retrieve the settings of one or more indices
274297
* <p>

client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
4242
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
4343
import org.elasticsearch.action.admin.indices.flush.FlushRequest;
44+
import org.elasticsearch.action.admin.indices.flush.SyncedFlushRequest;
4445
import org.elasticsearch.action.admin.indices.forcemerge.ForceMergeRequest;
4546
import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
4647
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
@@ -211,6 +212,14 @@ static Request flush(FlushRequest flushRequest) {
211212
return request;
212213
}
213214

215+
static Request flushSynced(SyncedFlushRequest syncedFlushRequest) {
216+
String[] indices = syncedFlushRequest.indices() == null ? Strings.EMPTY_ARRAY : syncedFlushRequest.indices();
217+
Request request = new Request(HttpPost.METHOD_NAME, endpoint(indices, "_flush/synced"));
218+
Params parameters = new Params(request);
219+
parameters.withIndicesOptions(syncedFlushRequest.indicesOptions());
220+
return request;
221+
}
222+
214223
static Request forceMerge(ForceMergeRequest forceMergeRequest) {
215224
String[] indices = forceMergeRequest.indices() == null ? Strings.EMPTY_ARRAY : forceMergeRequest.indices();
216225
Request request = new Request(HttpPost.METHOD_NAME, endpoint(indices, "_forcemerge"));

0 commit comments

Comments
 (0)