|
@@ -20,8 +20,8 @@ import org.elasticsearch.xcontent.json.JsonXContent;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
-import static org.hamcrest.Matchers.anyOf;
|
|
|
import static org.hamcrest.Matchers.equalTo;
|
|
|
+import static org.hamcrest.Matchers.hasKey;
|
|
|
import static org.hamcrest.Matchers.notNullValue;
|
|
|
|
|
|
public class DataStreamRestIT extends ESRestTestCase {
|
|
@@ -42,19 +42,24 @@ public class DataStreamRestIT extends ESRestTestCase {
|
|
|
assertTrue((boolean) dataStreams.get("enabled"));
|
|
|
}
|
|
|
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
public void testDSXpackUsage() throws Exception {
|
|
|
Map<?, ?> dataStreams = (Map<?, ?>) getLocation("/_xpack/usage").get("data_streams");
|
|
|
assertNotNull(dataStreams);
|
|
|
assertTrue((boolean) dataStreams.get("available"));
|
|
|
assertTrue((boolean) dataStreams.get("enabled"));
|
|
|
- assertThat(dataStreams.get("data_streams"), anyOf(equalTo(null), equalTo(0)));
|
|
|
-
|
|
|
+ assertThat(dataStreams.get("data_streams"), equalTo(0));
|
|
|
+ assertThat(dataStreams, hasKey("failure_store"));
|
|
|
+ Map<String, Integer> failureStoreStats = (Map<String, Integer>) dataStreams.get("failure_store");
|
|
|
+ assertThat(failureStoreStats.get("enabled_count"), equalTo(0));
|
|
|
+ assertThat(failureStoreStats.get("failure_indices_count"), equalTo(0));
|
|
|
assertBusy(() -> {
|
|
|
Map<?, ?> logsTemplate = (Map<?, ?>) ((List<?>) getLocation("/_index_template/logs").get("index_templates")).get(0);
|
|
|
assertThat(logsTemplate, notNullValue());
|
|
|
assertThat(logsTemplate.get("name"), equalTo("logs"));
|
|
|
assertThat(((Map<?, ?>) logsTemplate.get("index_template")).get("data_stream"), notNullValue());
|
|
|
});
|
|
|
+ putFailureStoreTemplate();
|
|
|
|
|
|
// Create a data stream
|
|
|
Request indexRequest = new Request("POST", "/logs-mysql-default/_doc");
|
|
@@ -65,21 +70,29 @@ public class DataStreamRestIT extends ESRestTestCase {
|
|
|
Request rollover = new Request("POST", "/logs-mysql-default/_rollover");
|
|
|
client().performRequest(rollover);
|
|
|
|
|
|
+ // Create failure store data stream
|
|
|
+ indexRequest = new Request("POST", "/fs/_doc");
|
|
|
+ indexRequest.setJsonEntity("{\"@timestamp\": \"2020-01-01\"}");
|
|
|
+ client().performRequest(indexRequest);
|
|
|
+
|
|
|
dataStreams = (Map<?, ?>) getLocation("/_xpack/usage").get("data_streams");
|
|
|
assertNotNull(dataStreams);
|
|
|
assertTrue((boolean) dataStreams.get("available"));
|
|
|
assertTrue((boolean) dataStreams.get("enabled"));
|
|
|
- assertThat("got: " + dataStreams, dataStreams.get("data_streams"), equalTo(1));
|
|
|
- assertThat("got: " + dataStreams, dataStreams.get("indices_count"), equalTo(2));
|
|
|
+ assertThat("got: " + dataStreams, dataStreams.get("data_streams"), equalTo(2));
|
|
|
+ assertThat("got: " + dataStreams, dataStreams.get("indices_count"), equalTo(3));
|
|
|
+ failureStoreStats = (Map<String, Integer>) dataStreams.get("failure_store");
|
|
|
+ assertThat(failureStoreStats.get("enabled_count"), equalTo(1));
|
|
|
+ assertThat(failureStoreStats.get("failure_indices_count"), equalTo(1));
|
|
|
}
|
|
|
|
|
|
Map<String, Object> getLocation(String path) {
|
|
|
try {
|
|
|
- Response executeRepsonse = client().performRequest(new Request("GET", path));
|
|
|
+ Response executeResponse = client().performRequest(new Request("GET", path));
|
|
|
try (
|
|
|
XContentParser parser = JsonXContent.jsonXContent.createParser(
|
|
|
XContentParserConfiguration.EMPTY,
|
|
|
- EntityUtils.toByteArray(executeRepsonse.getEntity())
|
|
|
+ EntityUtils.toByteArray(executeResponse.getEntity())
|
|
|
)
|
|
|
) {
|
|
|
return parser.map();
|
|
@@ -89,4 +102,15 @@ public class DataStreamRestIT extends ESRestTestCase {
|
|
|
throw new RuntimeException(e);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void putFailureStoreTemplate() {
|
|
|
+ try {
|
|
|
+ Request request = new Request("PUT", "/_index_template/fs-template");
|
|
|
+ request.setJsonEntity("{\"index_patterns\": [\"fs*\"], \"data_stream\": {\"failure_store\": true}}");
|
|
|
+ assertAcknowledged(client().performRequest(request));
|
|
|
+ } catch (Exception e) {
|
|
|
+ fail("failed to insert index template with failure store enabled - got: " + e);
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|