|  | 
| 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