|
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