Skip to content

Commit 5e81a20

Browse files
committed
Merge branch 'master' into ccr
* master: Add Verify Repository High Level REST API (#30934) [CI] Mute SamlAuthenticatorTests testIncorrectSigningKeyIsRejected [DOCS] Fixes kibana security file location SQL: Remove log4j and joda from JDBC dependencies (#30938) Revert accidentally pushed changes in NoriAnalysisTests Fix composite agg serialization error Change ScriptException status to 400 (bad request) (#30861) Fix synced flush docs REST high-level client: add synced flush API (2) (#30650) Fix missing option serialization after backport Cross Cluster Search: do not use dedicated masters as gateways (#30926) Fix AliasMetaData parsing (#30866) Fsync state file before exposing it (#30929)
2 parents adca32e + b716b08 commit 5e81a20

File tree

64 files changed

+1551
-951
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1551
-951
lines changed

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

+23
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

+23
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.elasticsearch.action.admin.cluster.repositories.delete.DeleteRepositoryRequest;
3434
import org.elasticsearch.action.admin.cluster.repositories.get.GetRepositoriesRequest;
3535
import org.elasticsearch.action.admin.cluster.repositories.put.PutRepositoryRequest;
36+
import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryRequest;
3637
import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsRequest;
3738
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
3839
import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest;
@@ -41,6 +42,7 @@
4142
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
4243
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
4344
import org.elasticsearch.action.admin.indices.flush.FlushRequest;
45+
import org.elasticsearch.action.admin.indices.flush.SyncedFlushRequest;
4446
import org.elasticsearch.action.admin.indices.forcemerge.ForceMergeRequest;
4547
import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
4648
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
@@ -211,6 +213,14 @@ static Request flush(FlushRequest flushRequest) {
211213
return request;
212214
}
213215

216+
static Request flushSynced(SyncedFlushRequest syncedFlushRequest) {
217+
String[] indices = syncedFlushRequest.indices() == null ? Strings.EMPTY_ARRAY : syncedFlushRequest.indices();
218+
Request request = new Request(HttpPost.METHOD_NAME, endpoint(indices, "_flush/synced"));
219+
Params parameters = new Params(request);
220+
parameters.withIndicesOptions(syncedFlushRequest.indicesOptions());
221+
return request;
222+
}
223+
214224
static Request forceMerge(ForceMergeRequest forceMergeRequest) {
215225
String[] indices = forceMergeRequest.indices() == null ? Strings.EMPTY_ARRAY : forceMergeRequest.indices();
216226
Request request = new Request(HttpPost.METHOD_NAME, endpoint(indices, "_forcemerge"));
@@ -738,6 +748,19 @@ static Request deleteRepository(DeleteRepositoryRequest deleteRepositoryRequest)
738748
return request;
739749
}
740750

751+
static Request verifyRepository(VerifyRepositoryRequest verifyRepositoryRequest) {
752+
String endpoint = new EndpointBuilder().addPathPartAsIs("_snapshot")
753+
.addPathPart(verifyRepositoryRequest.name())
754+
.addPathPartAsIs("_verify")
755+
.build();
756+
Request request = new Request(HttpPost.METHOD_NAME, endpoint);
757+
758+
Params parameters = new Params(request);
759+
parameters.withMasterTimeout(verifyRepositoryRequest.masterNodeTimeout());
760+
parameters.withTimeout(verifyRepositoryRequest.timeout());
761+
return request;
762+
}
763+
741764
static Request putTemplate(PutIndexTemplateRequest putIndexTemplateRequest) throws IOException {
742765
String endpoint = new EndpointBuilder().addPathPartAsIs("_template").addPathPart(putIndexTemplateRequest.name()).build();
743766
Request request = new Request(HttpPut.METHOD_NAME, endpoint);

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

+26
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import org.elasticsearch.action.admin.cluster.repositories.get.GetRepositoriesResponse;
2828
import org.elasticsearch.action.admin.cluster.repositories.put.PutRepositoryRequest;
2929
import org.elasticsearch.action.admin.cluster.repositories.put.PutRepositoryResponse;
30+
import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryRequest;
31+
import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryResponse;
3032

3133
import java.io.IOException;
3234

@@ -116,4 +118,28 @@ public void deleteRepositoryAsync(DeleteRepositoryRequest deleteRepositoryReques
116118
restHighLevelClient.performRequestAsyncAndParseEntity(deleteRepositoryRequest, RequestConverters::deleteRepository,
117119
DeleteRepositoryResponse::fromXContent, listener, emptySet(), headers);
118120
}
121+
122+
/**
123+
* Verifies a snapshot repository.
124+
* <p>
125+
* See <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html"> Snapshot and Restore
126+
* API on elastic.co</a>
127+
*/
128+
public VerifyRepositoryResponse verifyRepository(VerifyRepositoryRequest verifyRepositoryRequest, Header... headers)
129+
throws IOException {
130+
return restHighLevelClient.performRequestAndParseEntity(verifyRepositoryRequest, RequestConverters::verifyRepository,
131+
VerifyRepositoryResponse::fromXContent, emptySet(), headers);
132+
}
133+
134+
/**
135+
* Asynchronously verifies a snapshot repository.
136+
* <p>
137+
* See <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html"> Snapshot and Restore
138+
* API on elastic.co</a>
139+
*/
140+
public void verifyRepositoryAsync(VerifyRepositoryRequest verifyRepositoryRequest,
141+
ActionListener<VerifyRepositoryResponse> listener, Header... headers) {
142+
restHighLevelClient.performRequestAsyncAndParseEntity(verifyRepositoryRequest, RequestConverters::verifyRepository,
143+
VerifyRepositoryResponse::fromXContent, listener, emptySet(), headers);
144+
}
119145
}

0 commit comments

Comments
 (0)