Skip to content

Commit 2c6a39a

Browse files
cwperksjainankitk
authored andcommitted
Add CompletionStage variants to IndicesAdminClient as an alternative to ActionListener (opensearch-project#19161)
* Add CompletionStage variants to IndicesAdminClient as an alternative to ActionListener Signed-off-by: Craig Perkins <[email protected]> * Add to CHANGELOG Signed-off-by: Craig Perkins <[email protected]> --------- Signed-off-by: Craig Perkins <[email protected]> Signed-off-by: Ankit Jain <[email protected]>
1 parent ddeb08e commit 2c6a39a

File tree

3 files changed

+313
-11
lines changed

3 files changed

+313
-11
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
2020
- IllegalArgumentException when scroll ID references a node not found in Cluster ([#19031](https://github.com/opensearch-project/OpenSearch/pull/19031))
2121
- Adding ScriptedAvg class to painless spi to allowlist usage from plugins ([#19006](https://github.com/opensearch-project/OpenSearch/pull/19006))
2222
- Replace centos:8 with almalinux:8 since centos docker images are deprecated ([#19154](https://github.com/opensearch-project/OpenSearch/pull/19154))
23+
- Add CompletionStage variants to IndicesAdminClient as an alternative to ActionListener ([#19161](https://github.com/opensearch-project/OpenSearch/pull/19161))
2324

2425
### Fixed
2526
- Fix unnecessary refreshes on update preparation failures ([#15261](https://github.com/opensearch-project/OpenSearch/issues/15261))

server/src/main/java/org/opensearch/transport/client/IndicesAdminClient.java

Lines changed: 305 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@
142142
import org.opensearch.common.annotation.PublicApi;
143143
import org.opensearch.core.action.ActionListener;
144144

145+
import java.util.concurrent.CompletableFuture;
146+
import java.util.concurrent.CompletionStage;
147+
145148
/**
146149
* Administrative actions/operations against indices.
147150
*
@@ -899,4 +902,306 @@ public interface IndicesAdminClient extends OpenSearchClient {
899902
* @return The request builder configured with the specified scaling direction
900903
*/
901904
ScaleIndexRequestBuilder prepareScaleSearchOnly(String index, boolean searchOnly);
905+
906+
/** Indices Exists - CompletionStage version */
907+
default CompletionStage<IndicesExistsResponse> existsAsync(IndicesExistsRequest request) {
908+
CompletableFuture<IndicesExistsResponse> future = new CompletableFuture<>();
909+
exists(request, ActionListener.wrap(future::complete, future::completeExceptionally));
910+
return future;
911+
}
912+
913+
/** Indices stats - CompletionStage version */
914+
default CompletionStage<IndicesStatsResponse> statsAsync(IndicesStatsRequest request) {
915+
CompletableFuture<IndicesStatsResponse> future = new CompletableFuture<>();
916+
stats(request, ActionListener.wrap(future::complete, future::completeExceptionally));
917+
return future;
918+
}
919+
920+
/** Recoveries - CompletionStage version */
921+
default CompletionStage<RecoveryResponse> recoveriesAsync(RecoveryRequest request) {
922+
CompletableFuture<RecoveryResponse> future = new CompletableFuture<>();
923+
recoveries(request, ActionListener.wrap(future::complete, future::completeExceptionally));
924+
return future;
925+
}
926+
927+
/** Segment replication stats - CompletionStage version */
928+
default CompletionStage<SegmentReplicationStatsResponse> segmentReplicationStatsAsync(SegmentReplicationStatsRequest request) {
929+
CompletableFuture<SegmentReplicationStatsResponse> future = new CompletableFuture<>();
930+
segmentReplicationStats(request, ActionListener.wrap(future::complete, future::completeExceptionally));
931+
return future;
932+
}
933+
934+
/** Segments - CompletionStage version */
935+
default CompletionStage<IndicesSegmentResponse> segmentsAsync(IndicesSegmentsRequest request) {
936+
CompletableFuture<IndicesSegmentResponse> future = new CompletableFuture<>();
937+
segments(request, ActionListener.wrap(future::complete, future::completeExceptionally));
938+
return future;
939+
}
940+
941+
/** Shard stores - CompletionStage version */
942+
default CompletionStage<IndicesShardStoresResponse> shardStoresAsync(IndicesShardStoresRequest request) {
943+
CompletableFuture<IndicesShardStoresResponse> future = new CompletableFuture<>();
944+
shardStores(request, ActionListener.wrap(future::complete, future::completeExceptionally));
945+
return future;
946+
}
947+
948+
/** Create index - CompletionStage version */
949+
default CompletionStage<CreateIndexResponse> createAsync(CreateIndexRequest request) {
950+
CompletableFuture<CreateIndexResponse> future = new CompletableFuture<>();
951+
create(request, ActionListener.wrap(future::complete, future::completeExceptionally));
952+
return future;
953+
}
954+
955+
/** Delete index - CompletionStage version */
956+
default CompletionStage<AcknowledgedResponse> deleteAsync(DeleteIndexRequest request) {
957+
CompletableFuture<AcknowledgedResponse> future = new CompletableFuture<>();
958+
delete(request, ActionListener.wrap(future::complete, future::completeExceptionally));
959+
return future;
960+
}
961+
962+
/** Close index - CompletionStage version */
963+
default CompletionStage<CloseIndexResponse> closeAsync(CloseIndexRequest request) {
964+
CompletableFuture<CloseIndexResponse> future = new CompletableFuture<>();
965+
close(request, ActionListener.wrap(future::complete, future::completeExceptionally));
966+
return future;
967+
}
968+
969+
/** Open index - CompletionStage version */
970+
default CompletionStage<OpenIndexResponse> openAsync(OpenIndexRequest request) {
971+
CompletableFuture<OpenIndexResponse> future = new CompletableFuture<>();
972+
open(request, ActionListener.wrap(future::complete, future::completeExceptionally));
973+
return future;
974+
}
975+
976+
/** Add index block - CompletionStage version */
977+
default CompletionStage<AddIndexBlockResponse> addBlockAsync(AddIndexBlockRequest request) {
978+
CompletableFuture<AddIndexBlockResponse> future = new CompletableFuture<>();
979+
addBlock(request, ActionListener.wrap(future::complete, future::completeExceptionally));
980+
return future;
981+
}
982+
983+
/** Refresh - CompletionStage version */
984+
default CompletionStage<RefreshResponse> refreshAsync(RefreshRequest request) {
985+
CompletableFuture<RefreshResponse> future = new CompletableFuture<>();
986+
refresh(request, ActionListener.wrap(future::complete, future::completeExceptionally));
987+
return future;
988+
}
989+
990+
/** Flush - CompletionStage version */
991+
default CompletionStage<FlushResponse> flushAsync(FlushRequest request) {
992+
CompletableFuture<FlushResponse> future = new CompletableFuture<>();
993+
flush(request, ActionListener.wrap(future::complete, future::completeExceptionally));
994+
return future;
995+
}
996+
997+
/** Force-merge - CompletionStage version */
998+
default CompletionStage<ForceMergeResponse> forceMergeAsync(ForceMergeRequest request) {
999+
CompletableFuture<ForceMergeResponse> future = new CompletableFuture<>();
1000+
forceMerge(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1001+
return future;
1002+
}
1003+
1004+
/** Upgrade - CompletionStage version */
1005+
default CompletionStage<UpgradeResponse> upgradeAsync(UpgradeRequest request) {
1006+
CompletableFuture<UpgradeResponse> future = new CompletableFuture<>();
1007+
upgrade(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1008+
return future;
1009+
}
1010+
1011+
/** Upgrade status - CompletionStage version */
1012+
default CompletionStage<UpgradeStatusResponse> upgradeStatusAsync(UpgradeStatusRequest request) {
1013+
CompletableFuture<UpgradeStatusResponse> future = new CompletableFuture<>();
1014+
upgradeStatus(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1015+
return future;
1016+
}
1017+
1018+
/** Get mappings - CompletionStage version */
1019+
default CompletionStage<GetMappingsResponse> getMappingsAsync(GetMappingsRequest request) {
1020+
CompletableFuture<GetMappingsResponse> future = new CompletableFuture<>();
1021+
getMappings(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1022+
return future;
1023+
}
1024+
1025+
/** Get field mappings - CompletionStage version */
1026+
default CompletionStage<GetFieldMappingsResponse> getFieldMappingsAsync(GetFieldMappingsRequest request) {
1027+
CompletableFuture<GetFieldMappingsResponse> future = new CompletableFuture<>();
1028+
getFieldMappings(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1029+
return future;
1030+
}
1031+
1032+
/** Put mapping - CompletionStage version */
1033+
default CompletionStage<AcknowledgedResponse> putMappingAsync(PutMappingRequest request) {
1034+
CompletableFuture<AcknowledgedResponse> future = new CompletableFuture<>();
1035+
putMapping(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1036+
return future;
1037+
}
1038+
1039+
/** Aliases - CompletionStage version */
1040+
default CompletionStage<AcknowledgedResponse> aliasesAsync(IndicesAliasesRequest request) {
1041+
CompletableFuture<AcknowledgedResponse> future = new CompletableFuture<>();
1042+
aliases(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1043+
return future;
1044+
}
1045+
1046+
/** Get aliases - CompletionStage version */
1047+
default CompletionStage<GetAliasesResponse> getAliasesAsync(GetAliasesRequest request) {
1048+
CompletableFuture<GetAliasesResponse> future = new CompletableFuture<>();
1049+
getAliases(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1050+
return future;
1051+
}
1052+
1053+
/** Get index - CompletionStage version */
1054+
default CompletionStage<GetIndexResponse> getIndexAsync(GetIndexRequest request) {
1055+
CompletableFuture<GetIndexResponse> future = new CompletableFuture<>();
1056+
getIndex(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1057+
return future;
1058+
}
1059+
1060+
/** Clear cache - CompletionStage version */
1061+
default CompletionStage<ClearIndicesCacheResponse> clearCacheAsync(ClearIndicesCacheRequest request) {
1062+
CompletableFuture<ClearIndicesCacheResponse> future = new CompletableFuture<>();
1063+
clearCache(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1064+
return future;
1065+
}
1066+
1067+
/** Update settings - CompletionStage version */
1068+
default CompletionStage<AcknowledgedResponse> updateSettingsAsync(UpdateSettingsRequest request) {
1069+
CompletableFuture<AcknowledgedResponse> future = new CompletableFuture<>();
1070+
updateSettings(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1071+
return future;
1072+
}
1073+
1074+
/** Get settings - CompletionStage version */
1075+
default CompletionStage<GetSettingsResponse> getSettingsAsync(GetSettingsRequest request) {
1076+
CompletableFuture<GetSettingsResponse> future = new CompletableFuture<>();
1077+
getSettings(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1078+
return future;
1079+
}
1080+
1081+
/** Analyze - CompletionStage version */
1082+
default CompletionStage<AnalyzeAction.Response> analyzeAsync(AnalyzeAction.Request request) {
1083+
CompletableFuture<AnalyzeAction.Response> future = new CompletableFuture<>();
1084+
analyze(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1085+
return future;
1086+
}
1087+
1088+
/** Put template - CompletionStage version */
1089+
default CompletionStage<AcknowledgedResponse> putTemplateAsync(PutIndexTemplateRequest request) {
1090+
CompletableFuture<AcknowledgedResponse> future = new CompletableFuture<>();
1091+
putTemplate(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1092+
return future;
1093+
}
1094+
1095+
/** Delete template - CompletionStage version */
1096+
default CompletionStage<AcknowledgedResponse> deleteTemplateAsync(DeleteIndexTemplateRequest request) {
1097+
CompletableFuture<AcknowledgedResponse> future = new CompletableFuture<>();
1098+
deleteTemplate(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1099+
return future;
1100+
}
1101+
1102+
/** Get templates - CompletionStage version */
1103+
default CompletionStage<GetIndexTemplatesResponse> getTemplatesAsync(GetIndexTemplatesRequest request) {
1104+
CompletableFuture<GetIndexTemplatesResponse> future = new CompletableFuture<>();
1105+
getTemplates(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1106+
return future;
1107+
}
1108+
1109+
/** Validate query - CompletionStage version */
1110+
default CompletionStage<ValidateQueryResponse> validateQueryAsync(ValidateQueryRequest request) {
1111+
CompletableFuture<ValidateQueryResponse> future = new CompletableFuture<>();
1112+
validateQuery(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1113+
return future;
1114+
}
1115+
1116+
/** Resize index - CompletionStage version */
1117+
default CompletionStage<ResizeResponse> resizeIndexAsync(ResizeRequest request) {
1118+
CompletableFuture<ResizeResponse> future = new CompletableFuture<>();
1119+
resizeIndex(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1120+
return future;
1121+
}
1122+
1123+
/** Rollover index - CompletionStage version */
1124+
default CompletionStage<RolloverResponse> rolloverIndexAsync(RolloverRequest request) {
1125+
CompletableFuture<RolloverResponse> future = new CompletableFuture<>();
1126+
rolloverIndex(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1127+
return future;
1128+
}
1129+
1130+
/** Create data stream - CompletionStage version */
1131+
default CompletionStage<AcknowledgedResponse> createDataStreamAsync(CreateDataStreamAction.Request request) {
1132+
CompletableFuture<AcknowledgedResponse> future = new CompletableFuture<>();
1133+
createDataStream(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1134+
return future;
1135+
}
1136+
1137+
/** Delete data stream - CompletionStage version */
1138+
default CompletionStage<AcknowledgedResponse> deleteDataStreamAsync(DeleteDataStreamAction.Request request) {
1139+
CompletableFuture<AcknowledgedResponse> future = new CompletableFuture<>();
1140+
deleteDataStream(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1141+
return future;
1142+
}
1143+
1144+
/** Get data streams - CompletionStage version */
1145+
default CompletionStage<GetDataStreamAction.Response> getDataStreamsAsync(GetDataStreamAction.Request request) {
1146+
CompletableFuture<GetDataStreamAction.Response> future = new CompletableFuture<>();
1147+
getDataStreams(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1148+
return future;
1149+
}
1150+
1151+
/** Resolve index - CompletionStage version */
1152+
default CompletionStage<ResolveIndexAction.Response> resolveIndexAsync(ResolveIndexAction.Request request) {
1153+
CompletableFuture<ResolveIndexAction.Response> future = new CompletableFuture<>();
1154+
resolveIndex(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1155+
return future;
1156+
}
1157+
1158+
/** Create view - CompletionStage version */
1159+
default CompletionStage<GetViewAction.Response> createViewAsync(CreateViewAction.Request request) {
1160+
CompletableFuture<GetViewAction.Response> future = new CompletableFuture<>();
1161+
createView(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1162+
return future;
1163+
}
1164+
1165+
/** Get view - CompletionStage version */
1166+
default CompletionStage<GetViewAction.Response> getViewAsync(GetViewAction.Request request) {
1167+
CompletableFuture<GetViewAction.Response> future = new CompletableFuture<>();
1168+
getView(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1169+
return future;
1170+
}
1171+
1172+
/** Delete view - CompletionStage version */
1173+
default CompletionStage<AcknowledgedResponse> deleteViewAsync(DeleteViewAction.Request request) {
1174+
CompletableFuture<AcknowledgedResponse> future = new CompletableFuture<>();
1175+
deleteView(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1176+
return future;
1177+
}
1178+
1179+
/** Update view - CompletionStage version */
1180+
default CompletionStage<GetViewAction.Response> updateViewAsync(CreateViewAction.Request request) {
1181+
CompletableFuture<GetViewAction.Response> future = new CompletableFuture<>();
1182+
updateView(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1183+
return future;
1184+
}
1185+
1186+
/** Pause ingestion - CompletionStage version */
1187+
default CompletionStage<PauseIngestionResponse> pauseIngestionAsync(PauseIngestionRequest request) {
1188+
CompletableFuture<PauseIngestionResponse> future = new CompletableFuture<>();
1189+
pauseIngestion(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1190+
return future;
1191+
}
1192+
1193+
/** Resume ingestion - CompletionStage version */
1194+
default CompletionStage<ResumeIngestionResponse> resumeIngestionAsync(ResumeIngestionRequest request) {
1195+
CompletableFuture<ResumeIngestionResponse> future = new CompletableFuture<>();
1196+
resumeIngestion(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1197+
return future;
1198+
}
1199+
1200+
/** Get ingestion state - CompletionStage version */
1201+
default CompletionStage<GetIngestionStateResponse> getIngestionStateAsync(GetIngestionStateRequest request) {
1202+
CompletableFuture<GetIngestionStateResponse> future = new CompletableFuture<>();
1203+
getIngestionState(request, ActionListener.wrap(future::complete, future::completeExceptionally));
1204+
return future;
1205+
}
1206+
9021207
}

0 commit comments

Comments
 (0)