29
29
import org .apache .http .entity .ContentType ;
30
30
import org .apache .lucene .util .BytesRef ;
31
31
import org .elasticsearch .action .DocWriteRequest ;
32
+ import org .elasticsearch .action .admin .cluster .node .tasks .list .ListTasksRequest ;
32
33
import org .elasticsearch .action .admin .cluster .repositories .get .GetRepositoriesRequest ;
34
+ import org .elasticsearch .action .admin .cluster .repositories .put .PutRepositoryRequest ;
33
35
import org .elasticsearch .action .admin .cluster .settings .ClusterUpdateSettingsRequest ;
34
36
import org .elasticsearch .action .admin .indices .alias .IndicesAliasesRequest ;
35
37
import org .elasticsearch .action .admin .indices .alias .get .GetAliasesRequest ;
44
46
import org .elasticsearch .action .admin .indices .open .OpenIndexRequest ;
45
47
import org .elasticsearch .action .admin .indices .refresh .RefreshRequest ;
46
48
import org .elasticsearch .action .admin .indices .rollover .RolloverRequest ;
47
- import org .elasticsearch .action .admin .indices .settings .put .UpdateSettingsRequest ;
48
49
import org .elasticsearch .action .admin .indices .settings .get .GetSettingsRequest ;
50
+ import org .elasticsearch .action .admin .indices .settings .put .UpdateSettingsRequest ;
49
51
import org .elasticsearch .action .admin .indices .shrink .ResizeRequest ;
50
52
import org .elasticsearch .action .admin .indices .shrink .ResizeType ;
51
53
import org .elasticsearch .action .admin .indices .template .put .PutIndexTemplateRequest ;
80
82
import org .elasticsearch .index .VersionType ;
81
83
import org .elasticsearch .index .rankeval .RankEvalRequest ;
82
84
import org .elasticsearch .rest .action .search .RestSearchAction ;
85
+ import org .elasticsearch .script .mustache .SearchTemplateRequest ;
83
86
import org .elasticsearch .search .fetch .subphase .FetchSourceContext ;
87
+ import org .elasticsearch .tasks .TaskId ;
84
88
85
89
import java .io .ByteArrayOutputStream ;
86
90
import java .io .IOException ;
@@ -458,6 +462,15 @@ static Request search(SearchRequest searchRequest) throws IOException {
458
462
Request request = new Request (HttpPost .METHOD_NAME , endpoint (searchRequest .indices (), searchRequest .types (), "_search" ));
459
463
460
464
Params params = new Params (request );
465
+ addSearchRequestParams (params , searchRequest );
466
+
467
+ if (searchRequest .source () != null ) {
468
+ request .setEntity (createEntity (searchRequest .source (), REQUEST_BODY_CONTENT_TYPE ));
469
+ }
470
+ return request ;
471
+ }
472
+
473
+ private static void addSearchRequestParams (Params params , SearchRequest searchRequest ) {
461
474
params .putParam (RestSearchAction .TYPED_KEYS_PARAM , "true" );
462
475
params .withRouting (searchRequest .routing ());
463
476
params .withPreference (searchRequest .preference ());
@@ -473,11 +486,6 @@ static Request search(SearchRequest searchRequest) throws IOException {
473
486
if (searchRequest .scroll () != null ) {
474
487
params .putParam ("scroll" , searchRequest .scroll ().keepAlive ());
475
488
}
476
-
477
- if (searchRequest .source () != null ) {
478
- request .setEntity (createEntity (searchRequest .source (), REQUEST_BODY_CONTENT_TYPE ));
479
- }
480
- return request ;
481
489
}
482
490
483
491
static Request searchScroll (SearchScrollRequest searchScrollRequest ) throws IOException {
@@ -507,6 +515,24 @@ static Request multiSearch(MultiSearchRequest multiSearchRequest) throws IOExcep
507
515
return request ;
508
516
}
509
517
518
+ static Request searchTemplate (SearchTemplateRequest searchTemplateRequest ) throws IOException {
519
+ Request request ;
520
+
521
+ if (searchTemplateRequest .isSimulate ()) {
522
+ request = new Request (HttpGet .METHOD_NAME , "_render/template" );
523
+ } else {
524
+ SearchRequest searchRequest = searchTemplateRequest .getRequest ();
525
+ String endpoint = endpoint (searchRequest .indices (), searchRequest .types (), "_search/template" );
526
+ request = new Request (HttpGet .METHOD_NAME , endpoint );
527
+
528
+ Params params = new Params (request );
529
+ addSearchRequestParams (params , searchRequest );
530
+ }
531
+
532
+ request .setEntity (createEntity (searchTemplateRequest , REQUEST_BODY_CONTENT_TYPE ));
533
+ return request ;
534
+ }
535
+
510
536
static Request existsAlias (GetAliasesRequest getAliasesRequest ) {
511
537
if ((getAliasesRequest .indices () == null || getAliasesRequest .indices ().length == 0 ) &&
512
538
(getAliasesRequest .aliases () == null || getAliasesRequest .aliases ().length == 0 )) {
@@ -582,6 +608,22 @@ static Request clusterPutSettings(ClusterUpdateSettingsRequest clusterUpdateSett
582
608
return request ;
583
609
}
584
610
611
+ static Request listTasks (ListTasksRequest listTaskRequest ) {
612
+ if (listTaskRequest .getTaskId () != null && listTaskRequest .getTaskId ().isSet ()) {
613
+ throw new IllegalArgumentException ("TaskId cannot be used for list tasks request" );
614
+ }
615
+ Request request = new Request (HttpGet .METHOD_NAME , "/_tasks" );
616
+ Params params = new Params (request );
617
+ params .withTimeout (listTaskRequest .getTimeout ())
618
+ .withDetailed (listTaskRequest .getDetailed ())
619
+ .withWaitForCompletion (listTaskRequest .getWaitForCompletion ())
620
+ .withParentTaskId (listTaskRequest .getParentTaskId ())
621
+ .withNodes (listTaskRequest .getNodes ())
622
+ .withActions (listTaskRequest .getActions ())
623
+ .putParam ("group_by" , "none" );
624
+ return request ;
625
+ }
626
+
585
627
static Request rollover (RolloverRequest rolloverRequest ) throws IOException {
586
628
String endpoint = new EndpointBuilder ().addPathPart (rolloverRequest .getAlias ()).addPathPartAsIs ("_rollover" )
587
629
.addPathPart (rolloverRequest .getNewIndexName ()).build ();
@@ -656,6 +698,19 @@ static Request getRepositories(GetRepositoriesRequest getRepositoriesRequest) {
656
698
return request ;
657
699
}
658
700
701
+ static Request createRepository (PutRepositoryRequest putRepositoryRequest ) throws IOException {
702
+ String endpoint = new EndpointBuilder ().addPathPart ("_snapshot" ).addPathPart (putRepositoryRequest .name ()).build ();
703
+ Request request = new Request (HttpPut .METHOD_NAME , endpoint );
704
+
705
+ Params parameters = new Params (request );
706
+ parameters .withMasterTimeout (putRepositoryRequest .masterNodeTimeout ());
707
+ parameters .withTimeout (putRepositoryRequest .timeout ());
708
+ parameters .withVerify (putRepositoryRequest .verify ());
709
+
710
+ request .setEntity (createEntity (putRepositoryRequest , REQUEST_BODY_CONTENT_TYPE ));
711
+ return request ;
712
+ }
713
+
659
714
static Request putTemplate (PutIndexTemplateRequest putIndexTemplateRequest ) throws IOException {
660
715
String endpoint = new EndpointBuilder ().addPathPartAsIs ("_template" ).addPathPart (putIndexTemplateRequest .name ()).build ();
661
716
Request request = new Request (HttpPut .METHOD_NAME , endpoint );
@@ -894,6 +949,48 @@ Params withPreserveExisting(boolean preserveExisting) {
894
949
}
895
950
return this ;
896
951
}
952
+
953
+ Params withDetailed (boolean detailed ) {
954
+ if (detailed ) {
955
+ return putParam ("detailed" , Boolean .TRUE .toString ());
956
+ }
957
+ return this ;
958
+ }
959
+
960
+ Params withWaitForCompletion (boolean waitForCompletion ) {
961
+ if (waitForCompletion ) {
962
+ return putParam ("wait_for_completion" , Boolean .TRUE .toString ());
963
+ }
964
+ return this ;
965
+ }
966
+
967
+ Params withNodes (String [] nodes ) {
968
+ if (nodes != null && nodes .length > 0 ) {
969
+ return putParam ("nodes" , String .join ("," , nodes ));
970
+ }
971
+ return this ;
972
+ }
973
+
974
+ Params withActions (String [] actions ) {
975
+ if (actions != null && actions .length > 0 ) {
976
+ return putParam ("actions" , String .join ("," , actions ));
977
+ }
978
+ return this ;
979
+ }
980
+
981
+ Params withParentTaskId (TaskId parentTaskId ) {
982
+ if (parentTaskId != null && parentTaskId .isSet ()) {
983
+ return putParam ("parent_task_id" , parentTaskId .toString ());
984
+ }
985
+ return this ;
986
+ }
987
+
988
+ Params withVerify (boolean verify ) {
989
+ if (verify ) {
990
+ return putParam ("verify" , Boolean .TRUE .toString ());
991
+ }
992
+ return this ;
993
+ }
897
994
}
898
995
899
996
/**
0 commit comments