13
13
import org .elasticsearch .common .time .FormatNames ;
14
14
import org .elasticsearch .test .rest .ESRestTestCase ;
15
15
import org .elasticsearch .test .rest .ObjectPath ;
16
+ import org .junit .Before ;
16
17
17
18
import java .io .IOException ;
18
19
import java .time .Instant ;
35
36
36
37
public class TsdbDataStreamRestIT extends ESRestTestCase {
37
38
39
+ private static final String COMPONENT_TEMPLATE = """
40
+ {
41
+ "template": {
42
+ "settings": {}
43
+ }
44
+ }
45
+ """ ;
46
+
38
47
private static final String TEMPLATE = """
39
48
{
40
49
"index_patterns": ["k8s*"],
@@ -97,6 +106,7 @@ public class TsdbDataStreamRestIT extends ESRestTestCase {
97
106
}
98
107
}
99
108
},
109
+ "composed_of": ["custom_template"],
100
110
"data_stream": {
101
111
}
102
112
}""" ;
@@ -190,12 +200,19 @@ public class TsdbDataStreamRestIT extends ESRestTestCase {
190
200
{"@timestamp": "$now", "metricset": "pod", "k8s": {"pod": {"name": "elephant", "uid":"df3145b3-0563-4d3b-a0f7-897eb2876eb4", "ip": "10.10.55.3", "network": {"tx": 1434595272, "rx": 530605511}}}}
191
201
""" ;
192
202
193
- public void testTsdbDataStreams () throws Exception {
194
- // Create a template
195
- var putComposableIndexTemplateRequest = new Request ("POST" , "/_index_template/1" );
196
- putComposableIndexTemplateRequest .setJsonEntity (TEMPLATE );
197
- assertOK (client ().performRequest (putComposableIndexTemplateRequest ));
203
+ @ Before
204
+ public void setup () throws IOException {
205
+ // Add component template:
206
+ var request = new Request ("POST" , "/_component_template/custom_template" );
207
+ request .setJsonEntity (COMPONENT_TEMPLATE );
208
+ assertOK (client ().performRequest (request ));
209
+ // Add composable index template
210
+ request = new Request ("POST" , "/_index_template/1" );
211
+ request .setJsonEntity (TEMPLATE );
212
+ assertOK (client ().performRequest (request ));
213
+ }
198
214
215
+ public void testTsdbDataStreams () throws Exception {
199
216
var bulkRequest = new Request ("POST" , "/k8s/_bulk" );
200
217
bulkRequest .setJsonEntity (BULK .replace ("$now" , formatInstant (Instant .now ())));
201
218
bulkRequest .addParameter ("refresh" , "true" );
@@ -331,10 +348,6 @@ public void testTsdbDataStreamsNanos() throws Exception {
331
348
}
332
349
333
350
public void testSimulateTsdbDataStreamTemplate () throws Exception {
334
- var putComposableIndexTemplateRequest = new Request ("POST" , "/_index_template/1" );
335
- putComposableIndexTemplateRequest .setJsonEntity (TEMPLATE );
336
- assertOK (client ().performRequest (putComposableIndexTemplateRequest ));
337
-
338
351
var simulateIndexTemplateRequest = new Request ("POST" , "/_index_template/_simulate_index/k8s" );
339
352
var response = client ().performRequest (simulateIndexTemplateRequest );
340
353
assertOK (response );
@@ -353,11 +366,6 @@ public void testSimulateTsdbDataStreamTemplate() throws Exception {
353
366
}
354
367
355
368
public void testSubsequentRollovers () throws Exception {
356
- // Create a template
357
- var putComposableIndexTemplateRequest = new Request ("POST" , "/_index_template/1" );
358
- putComposableIndexTemplateRequest .setJsonEntity (TEMPLATE );
359
- assertOK (client ().performRequest (putComposableIndexTemplateRequest ));
360
-
361
369
var createDataStreamRequest = new Request ("PUT" , "/_data_stream/k8s" );
362
370
assertOK (client ().performRequest (createDataStreamRequest ));
363
371
@@ -461,12 +469,6 @@ public void testMigrateRegularDataStreamToTsdbDataStream() throws Exception {
461
469
}
462
470
463
471
public void testChangeTemplateIndexMode () throws Exception {
464
- // Create a template
465
- {
466
- var putComposableIndexTemplateRequest = new Request ("POST" , "/_index_template/1" );
467
- putComposableIndexTemplateRequest .setJsonEntity (TEMPLATE );
468
- assertOK (client ().performRequest (putComposableIndexTemplateRequest ));
469
- }
470
472
{
471
473
var indexRequest = new Request ("POST" , "/k8s/_doc" );
472
474
var time = Instant .now ();
@@ -489,6 +491,22 @@ public void testChangeTemplateIndexMode() throws Exception {
489
491
}
490
492
}
491
493
494
+ public void testUpdateComponentTemplateDoesNotFailIndexTemplateValidation () throws IOException {
495
+ var request = new Request ("POST" , "/_component_template/custom_template" );
496
+ request .setJsonEntity ("""
497
+ {
498
+ "template": {
499
+ "settings": {
500
+ "index": {
501
+ "number_of_replicas": 1
502
+ }
503
+ }
504
+ }
505
+ }
506
+ """ );
507
+ client ().performRequest (request );
508
+ }
509
+
492
510
private static Map <?, ?> getIndex (String indexName ) throws IOException {
493
511
var getIndexRequest = new Request ("GET" , "/" + indexName + "?human" );
494
512
var response = client ().performRequest (getIndexRequest );
0 commit comments