@@ -92,3 +92,111 @@ setup:
92
92
index : my-data-stream-1
93
93
- match : { .$oldIndexName.mappings.properties.name: null }
94
94
- match : { .$newIndexName.mappings.properties.name.type: "keyword" }
95
+
96
+ ---
97
+ " Test mappings component templates only " :
98
+ - requires :
99
+ cluster_features : [ "logs_stream" ]
100
+ reason : requires setting 'logs_stream' to get or set data stream settings
101
+
102
+ - do :
103
+ cluster.put_component_template :
104
+ name : mappings-template
105
+ body :
106
+ template :
107
+ mappings :
108
+ properties :
109
+ field1 :
110
+ type : keyword
111
+ field2 :
112
+ type : keyword
113
+
114
+ - do :
115
+ allowed_warnings :
116
+ - " index template [my-component-only-template] has index patterns [my-component-only-data-stream-*] matching patterns from existing older templates [global] with patterns (global => [*]); this template [my-component-only-template] will take precedence during new index creation"
117
+ indices.put_index_template :
118
+ name : my-component-only-template
119
+ body :
120
+ index_patterns : [ my-component-only-data-stream-* ]
121
+ data_stream : { }
122
+ composed_of :
123
+ - mappings-template
124
+
125
+ - do :
126
+ indices.create_data_stream :
127
+ name : my-component-only-data-stream-1
128
+
129
+ - do :
130
+ cluster.health :
131
+ index : " my-component-only-data-stream-1"
132
+ wait_for_status : green
133
+
134
+ - do :
135
+ indices.get_data_stream :
136
+ name : my-component-only-data-stream-1
137
+ - match : { data_streams.0.name: my-component-only-data-stream-1 }
138
+ - match : { data_streams.0.mappings: {} }
139
+ - match : { data_streams.0.effective_mappings: null }
140
+
141
+ - do :
142
+ indices.put_data_stream_mappings :
143
+ name : my-component-only-data-stream-1
144
+ body :
145
+ properties :
146
+ field1 :
147
+ type : text
148
+ field3 :
149
+ type : text
150
+ - match : { data_streams.0.name: my-component-only-data-stream-1 }
151
+ - match : { data_streams.0.applied_to_data_stream: true }
152
+ - match : { data_streams.0.mappings.properties.field1.type: "text" }
153
+ - match : { data_streams.0.mappings.properties.field2: null }
154
+ - match : { data_streams.0.mappings.properties.field3.type: "text" }
155
+ - match : { data_streams.0.effective_mappings.properties.field1.type: "text" }
156
+ - match : { data_streams.0.effective_mappings.properties.field2: null }
157
+ - match : { data_streams.0.effective_mappings.properties.field3.type: "text" }
158
+
159
+ - do :
160
+ indices.rollover :
161
+ alias : " my-component-only-data-stream-1"
162
+
163
+ - do :
164
+ cluster.health :
165
+ index : " my-component-only-data-stream-1"
166
+ wait_for_status : green
167
+
168
+ - do :
169
+ indices.get_data_stream_mappings :
170
+ name : my-component-only-data-stream-1
171
+ - match : { data_streams.0.name: my-component-only-data-stream-1 }
172
+ - length : { data_streams.0.effective_mappings.properties: 2 }
173
+ - match : { data_streams.0.mappings.properties.field1.type: "text" }
174
+ - match : { data_streams.0.effective_mappings.properties.field3.type: "text" }
175
+
176
+ - do :
177
+ indices.get_data_stream :
178
+ name : my-component-only-data-stream-1
179
+ - match : { data_streams.0.name: my-component-only-data-stream-1 }
180
+ - match : { data_streams.0.mappings.properties.field1.type: "text" }
181
+ - match : { data_streams.0.effective_mappings: null }
182
+ - set : { data_streams.0.indices.0.index_name: oldIndexName }
183
+ - set : { data_streams.0.indices.1.index_name: newIndexName }
184
+
185
+ - do :
186
+ indices.get_mapping :
187
+ index : my-component-only-data-stream-1
188
+ - match : { .$oldIndexName.mappings.properties.field1.type: "keyword" }
189
+ - match : { .$oldIndexName.mappings.properties.field2.type: "keyword" }
190
+ - match : { .$oldIndexName.mappings.properties.field3: null }
191
+ - match : { .$newIndexName.mappings.properties.field1.type: "text" }
192
+ - match : { .$newIndexName.mappings.properties.field2.type: "keyword" }
193
+ - match : { .$newIndexName.mappings.properties.field3.type: "text" }
194
+
195
+ - do :
196
+ indices.put_data_stream_mappings :
197
+ name : my-component-only-data-stream-1
198
+ body : {}
199
+ - match : { data_streams.0.name: my-component-only-data-stream-1 }
200
+ - match : { data_streams.0.applied_to_data_stream: true }
201
+ - match : { data_streams.0.mappings null }
202
+ - match : { data_streams.0.effective_mappings: null }
0 commit comments