|
26 | 26 | import org.apache.http.client.methods.HttpPost;
|
27 | 27 | import org.apache.http.client.methods.HttpPut;
|
28 | 28 | import org.apache.http.entity.ByteArrayEntity;
|
29 |
| -import org.apache.http.entity.ContentType; |
30 |
| -import org.apache.http.entity.StringEntity; |
31 | 29 | import org.apache.http.util.EntityUtils;
|
32 | 30 | import org.elasticsearch.action.ActionRequestValidationException;
|
33 | 31 | import org.elasticsearch.action.DocWriteRequest;
|
34 | 32 | import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsRequest;
|
| 33 | +import org.elasticsearch.action.admin.indices.alias.Alias; |
35 | 34 | import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
|
36 | 35 | import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest.AliasActions;
|
37 | 36 | import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest;
|
|
46 | 45 | import org.elasticsearch.action.admin.indices.open.OpenIndexRequest;
|
47 | 46 | import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
|
48 | 47 | import org.elasticsearch.action.admin.indices.rollover.RolloverRequest;
|
49 |
| -import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsRequest; |
50 | 48 | import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
|
| 49 | +import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsRequest; |
51 | 50 | import org.elasticsearch.action.admin.indices.shrink.ResizeRequest;
|
52 | 51 | import org.elasticsearch.action.admin.indices.shrink.ResizeType;
|
| 52 | +import org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequest; |
53 | 53 | import org.elasticsearch.action.bulk.BulkRequest;
|
54 | 54 | import org.elasticsearch.action.bulk.BulkShardRequest;
|
55 | 55 | import org.elasticsearch.action.delete.DeleteRequest;
|
|
70 | 70 | import org.elasticsearch.action.support.master.MasterNodeRequest;
|
71 | 71 | import org.elasticsearch.action.support.replication.ReplicationRequest;
|
72 | 72 | import org.elasticsearch.action.update.UpdateRequest;
|
| 73 | +import org.elasticsearch.client.RequestConverters.EndpointBuilder; |
73 | 74 | import org.elasticsearch.common.CheckedBiConsumer;
|
74 | 75 | import org.elasticsearch.common.CheckedFunction;
|
75 | 76 | import org.elasticsearch.common.Strings;
|
76 | 77 | import org.elasticsearch.common.bytes.BytesArray;
|
77 | 78 | import org.elasticsearch.common.bytes.BytesReference;
|
78 | 79 | import org.elasticsearch.common.io.Streams;
|
79 | 80 | import org.elasticsearch.common.lucene.uid.Versions;
|
80 |
| -import org.elasticsearch.common.settings.IndexScopedSettings; |
| 81 | +import org.elasticsearch.common.settings.Settings; |
81 | 82 | import org.elasticsearch.common.unit.TimeValue;
|
82 | 83 | import org.elasticsearch.common.xcontent.ToXContent;
|
83 | 84 | import org.elasticsearch.common.xcontent.XContentBuilder;
|
84 | 85 | import org.elasticsearch.common.xcontent.XContentHelper;
|
85 | 86 | import org.elasticsearch.common.xcontent.XContentParser;
|
86 | 87 | import org.elasticsearch.common.xcontent.XContentType;
|
87 |
| -import org.elasticsearch.client.RequestConverters.EndpointBuilder; |
88 |
| -import org.elasticsearch.client.RequestConverters.Params; |
89 | 88 | import org.elasticsearch.index.RandomCreateIndexGenerator;
|
90 | 89 | import org.elasticsearch.index.VersionType;
|
91 | 90 | import org.elasticsearch.index.query.TermQueryBuilder;
|
|
94 | 93 | import org.elasticsearch.index.rankeval.RankEvalSpec;
|
95 | 94 | import org.elasticsearch.index.rankeval.RatedRequest;
|
96 | 95 | import org.elasticsearch.index.rankeval.RestRankEvalAction;
|
97 |
| -import org.elasticsearch.rest.action.RestFieldCapabilitiesAction; |
98 | 96 | import org.elasticsearch.rest.action.search.RestSearchAction;
|
99 | 97 | import org.elasticsearch.search.Scroll;
|
100 | 98 | import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
|
|
111 | 109 |
|
112 | 110 | import java.io.IOException;
|
113 | 111 | import java.io.InputStream;
|
114 |
| -import java.lang.reflect.Constructor; |
115 |
| -import java.lang.reflect.Modifier; |
116 | 112 | import java.util.ArrayList;
|
117 | 113 | import java.util.Arrays;
|
118 | 114 | import java.util.Collections;
|
|
121 | 117 | import java.util.List;
|
122 | 118 | import java.util.Locale;
|
123 | 119 | import java.util.Map;
|
124 |
| -import java.util.Set; |
125 | 120 | import java.util.StringJoiner;
|
126 | 121 | import java.util.function.Consumer;
|
127 | 122 | import java.util.function.Function;
|
@@ -1432,6 +1427,48 @@ public void testIndexPutSettings() throws IOException {
|
1432 | 1427 | assertEquals(expectedParams, request.getParameters());
|
1433 | 1428 | }
|
1434 | 1429 |
|
| 1430 | + public void testPutTemplateRequest() throws Exception { |
| 1431 | + Map<String, String> names = new HashMap<>(); |
| 1432 | + names.put("log", "log"); |
| 1433 | + names.put("template#1", "template%231"); |
| 1434 | + names.put("-#template", "-%23template"); |
| 1435 | + names.put("foo^bar", "foo%5Ebar"); |
| 1436 | + |
| 1437 | + PutIndexTemplateRequest putTemplateRequest = new PutIndexTemplateRequest() |
| 1438 | + .name(randomFrom(names.keySet())) |
| 1439 | + .patterns(Arrays.asList(generateRandomStringArray(20, 100, false, false))); |
| 1440 | + if (randomBoolean()) { |
| 1441 | + putTemplateRequest.order(randomInt()); |
| 1442 | + } |
| 1443 | + if (randomBoolean()) { |
| 1444 | + putTemplateRequest.version(randomInt()); |
| 1445 | + } |
| 1446 | + if (randomBoolean()) { |
| 1447 | + putTemplateRequest.settings(Settings.builder().put("setting-" + randomInt(), randomTimeValue())); |
| 1448 | + } |
| 1449 | + if (randomBoolean()) { |
| 1450 | + putTemplateRequest.mapping("doc-" + randomInt(), "field-" + randomInt(), "type=" + randomFrom("text", "keyword")); |
| 1451 | + } |
| 1452 | + if (randomBoolean()) { |
| 1453 | + putTemplateRequest.alias(new Alias("alias-" + randomInt())); |
| 1454 | + } |
| 1455 | + Map<String, String> expectedParams = new HashMap<>(); |
| 1456 | + if (randomBoolean()) { |
| 1457 | + expectedParams.put("create", Boolean.TRUE.toString()); |
| 1458 | + putTemplateRequest.create(true); |
| 1459 | + } |
| 1460 | + if (randomBoolean()) { |
| 1461 | + String cause = randomUnicodeOfCodepointLengthBetween(1, 50); |
| 1462 | + putTemplateRequest.cause(cause); |
| 1463 | + expectedParams.put("cause", cause); |
| 1464 | + } |
| 1465 | + setRandomMasterTimeout(putTemplateRequest, expectedParams); |
| 1466 | + Request request = RequestConverters.putTemplate(putTemplateRequest); |
| 1467 | + assertThat(request.getEndpoint(), equalTo("/_template/" + names.get(putTemplateRequest.name()))); |
| 1468 | + assertThat(request.getParameters(), equalTo(expectedParams)); |
| 1469 | + assertToXContentBody(putTemplateRequest, request.getEntity()); |
| 1470 | + } |
| 1471 | + |
1435 | 1472 | private static void assertToXContentBody(ToXContent expectedBody, HttpEntity actualEntity) throws IOException {
|
1436 | 1473 | BytesReference expectedBytes = XContentHelper.toXContent(expectedBody, REQUEST_BODY_CONTENT_TYPE, false);
|
1437 | 1474 | assertEquals(XContentType.JSON.mediaTypeWithoutParameters(), actualEntity.getContentType().getValue());
|
|
0 commit comments