|
38 | 38 | import static org.elasticsearch.cluster.metadata.DataStream.getDefaultBackingIndexName; |
39 | 39 | import static org.elasticsearch.cluster.metadata.DataStream.getDefaultFailureStoreName; |
40 | 40 | import static org.hamcrest.Matchers.is; |
| 41 | +import static org.hamcrest.Matchers.notNullValue; |
41 | 42 | import static org.hamcrest.Matchers.nullValue; |
42 | 43 |
|
43 | 44 | public class GetDataStreamsResponseTests extends AbstractWireSerializingTestCase<Response> { |
@@ -163,21 +164,16 @@ public void testResponseIlmAndDataStreamLifecycleRepresentation() throws Excepti |
163 | 164 | is(ManagedBy.LIFECYCLE.displayValue) |
164 | 165 | ); |
165 | 166 |
|
166 | | - if (DataStream.isFailureStoreFeatureFlagEnabled()) { |
167 | | - var failureStore = (Map<String, Object>) dataStreamMap.get(DataStream.FAILURE_STORE_FIELD.getPreferredName()); |
168 | | - List<Object> failureStoresRepresentation = (List<Object>) failureStore.get(DataStream.INDICES_FIELD.getPreferredName()); |
169 | | - Map<String, Object> failureStoreRepresentation = (Map<String, Object>) failureStoresRepresentation.get(0); |
170 | | - assertThat(failureStoreRepresentation.get("index_name"), is(failureStoreIndex.getName())); |
171 | | - assertThat(failureStoreRepresentation.get(Response.DataStreamInfo.PREFER_ILM.getPreferredName()), is(false)); |
172 | | - assertThat( |
173 | | - failureStoreRepresentation.get(Response.DataStreamInfo.ILM_POLICY_FIELD.getPreferredName()), |
174 | | - is(nullValue()) |
175 | | - ); |
176 | | - assertThat( |
177 | | - failureStoreRepresentation.get(Response.DataStreamInfo.MANAGED_BY.getPreferredName()), |
178 | | - is(ManagedBy.LIFECYCLE.displayValue) |
179 | | - ); |
180 | | - } |
| 167 | + var failureStore = (Map<String, Object>) dataStreamMap.get(DataStream.FAILURE_STORE_FIELD.getPreferredName()); |
| 168 | + List<Object> failureIndices = (List<Object>) failureStore.get(DataStream.INDICES_FIELD.getPreferredName()); |
| 169 | + Map<String, Object> failureIndexRepresentation = (Map<String, Object>) failureIndices.get(0); |
| 170 | + assertThat(failureIndexRepresentation.get("index_name"), is(failureStoreIndex.getName())); |
| 171 | + assertThat(failureIndexRepresentation.get(Response.DataStreamInfo.PREFER_ILM.getPreferredName()), nullValue()); |
| 172 | + assertThat(failureIndexRepresentation.get(Response.DataStreamInfo.ILM_POLICY_FIELD.getPreferredName()), is(nullValue())); |
| 173 | + assertThat( |
| 174 | + failureIndexRepresentation.get(Response.DataStreamInfo.MANAGED_BY.getPreferredName()), |
| 175 | + is(ManagedBy.LIFECYCLE.displayValue) |
| 176 | + ); |
181 | 177 | } |
182 | 178 | } |
183 | 179 |
|
@@ -256,21 +252,75 @@ public void testResponseIlmAndDataStreamLifecycleRepresentation() throws Excepti |
256 | 252 | is(ManagedBy.UNMANAGED.displayValue) |
257 | 253 | ); |
258 | 254 |
|
259 | | - if (DataStream.isFailureStoreFeatureFlagEnabled()) { |
260 | | - var failureStore = (Map<String, Object>) dataStreamMap.get(DataStream.FAILURE_STORE_FIELD.getPreferredName()); |
261 | | - List<Object> failureStoresRepresentation = (List<Object>) failureStore.get(DataStream.INDICES_FIELD.getPreferredName()); |
262 | | - Map<String, Object> failureStoreRepresentation = (Map<String, Object>) failureStoresRepresentation.get(0); |
263 | | - assertThat(failureStoreRepresentation.get("index_name"), is(failureStoreIndex.getName())); |
264 | | - assertThat(failureStoreRepresentation.get(Response.DataStreamInfo.PREFER_ILM.getPreferredName()), is(false)); |
265 | | - assertThat( |
266 | | - failureStoreRepresentation.get(Response.DataStreamInfo.ILM_POLICY_FIELD.getPreferredName()), |
267 | | - is(nullValue()) |
268 | | - ); |
269 | | - assertThat( |
270 | | - failureStoreRepresentation.get(Response.DataStreamInfo.MANAGED_BY.getPreferredName()), |
271 | | - is(ManagedBy.UNMANAGED.displayValue) |
272 | | - ); |
273 | | - } |
| 255 | + var failureStore = (Map<String, Object>) dataStreamMap.get(DataStream.FAILURE_STORE_FIELD.getPreferredName()); |
| 256 | + List<Object> failureStoresRepresentation = (List<Object>) failureStore.get(DataStream.INDICES_FIELD.getPreferredName()); |
| 257 | + Map<String, Object> failureStoreRepresentation = (Map<String, Object>) failureStoresRepresentation.get(0); |
| 258 | + assertThat(failureStoreRepresentation.get("index_name"), is(failureStoreIndex.getName())); |
| 259 | + assertThat(failureStoreRepresentation.get(Response.DataStreamInfo.PREFER_ILM.getPreferredName()), nullValue()); |
| 260 | + assertThat(failureStoreRepresentation.get(Response.DataStreamInfo.ILM_POLICY_FIELD.getPreferredName()), is(nullValue())); |
| 261 | + assertThat( |
| 262 | + failureStoreRepresentation.get(Response.DataStreamInfo.MANAGED_BY.getPreferredName()), |
| 263 | + is(ManagedBy.UNMANAGED.displayValue) |
| 264 | + ); |
| 265 | + } |
| 266 | + } |
| 267 | + |
| 268 | + { |
| 269 | + // one failure index that have ILM policy |
| 270 | + DataStream logs = DataStream.builder("logs", indices) |
| 271 | + .setGeneration(3) |
| 272 | + .setAllowCustomRouting(true) |
| 273 | + .setIndexMode(IndexMode.STANDARD) |
| 274 | + .setLifecycle(DataStreamLifecycle.DEFAULT_DATA_LIFECYCLE) |
| 275 | + .setDataStreamOptions(DataStreamOptions.FAILURE_STORE_ENABLED) |
| 276 | + .setFailureIndices(DataStream.DataStreamIndices.failureIndicesBuilder(failureStores).build()) |
| 277 | + .build(); |
| 278 | + |
| 279 | + String ilmPolicyName = "rollover-30days"; |
| 280 | + Map<Index, Response.IndexProperties> indexSettingsValues = Map.of( |
| 281 | + firstGenerationIndex, |
| 282 | + new Response.IndexProperties(true, ilmPolicyName, ManagedBy.ILM), |
| 283 | + secondGenerationIndex, |
| 284 | + new Response.IndexProperties(false, ilmPolicyName, ManagedBy.LIFECYCLE), |
| 285 | + writeIndex, |
| 286 | + new Response.IndexProperties(true, null, ManagedBy.LIFECYCLE), |
| 287 | + failureStoreIndex, |
| 288 | + new Response.IndexProperties(randomBoolean(), ilmPolicyName, ManagedBy.LIFECYCLE) |
| 289 | + ); |
| 290 | + |
| 291 | + Response.DataStreamInfo dataStreamInfo = new Response.DataStreamInfo( |
| 292 | + logs, |
| 293 | + true, |
| 294 | + ClusterHealthStatus.GREEN, |
| 295 | + "index-template", |
| 296 | + null, |
| 297 | + null, |
| 298 | + indexSettingsValues, |
| 299 | + false, |
| 300 | + null |
| 301 | + ); |
| 302 | + Response response = new Response(List.of(dataStreamInfo)); |
| 303 | + XContentBuilder contentBuilder = XContentFactory.jsonBuilder(); |
| 304 | + response.toXContent(contentBuilder, ToXContent.EMPTY_PARAMS); |
| 305 | + |
| 306 | + BytesReference bytes = BytesReference.bytes(contentBuilder); |
| 307 | + try (XContentParser parser = createParser(JsonXContent.jsonXContent, bytes)) { |
| 308 | + Map<String, Object> map = parser.map(); |
| 309 | + List<Object> dataStreams = (List<Object>) map.get(Response.DATA_STREAMS_FIELD.getPreferredName()); |
| 310 | + assertThat(dataStreams.size(), is(1)); |
| 311 | + Map<String, Object> dataStreamMap = (Map<String, Object>) dataStreams.get(0); |
| 312 | + assertThat(dataStreamMap.get(DataStream.NAME_FIELD.getPreferredName()), is(dataStreamName)); |
| 313 | + |
| 314 | + var failureStore = (Map<String, Object>) dataStreamMap.get(DataStream.FAILURE_STORE_FIELD.getPreferredName()); |
| 315 | + List<Object> failureIndices = (List<Object>) failureStore.get(DataStream.INDICES_FIELD.getPreferredName()); |
| 316 | + Map<String, Object> failureIndexRepresentation = (Map<String, Object>) failureIndices.get(0); |
| 317 | + assertThat(failureIndexRepresentation.get("index_name"), is(failureStoreIndex.getName())); |
| 318 | + assertThat(failureIndexRepresentation.get(Response.DataStreamInfo.PREFER_ILM.getPreferredName()), notNullValue()); |
| 319 | + assertThat(failureIndexRepresentation.get(Response.DataStreamInfo.ILM_POLICY_FIELD.getPreferredName()), is(ilmPolicyName)); |
| 320 | + assertThat( |
| 321 | + failureIndexRepresentation.get(Response.DataStreamInfo.MANAGED_BY.getPreferredName()), |
| 322 | + is(ManagedBy.LIFECYCLE.displayValue) |
| 323 | + ); |
274 | 324 | } |
275 | 325 | } |
276 | 326 | } |
|
0 commit comments