Switch ml basic tests to new style Requests (#32483)
In #29623 we added `Request` object flavored requests to the low level REST client and in #30315 we deprecated the old `performRequest`s. This changes all calls in the `x-pack/qa/ml-basic-multi-node` project to use the new versions.
This commit is contained in:
parent
c3438bc8d8
commit
0cc99d270c
|
@ -6,12 +6,12 @@
|
|||
package org.elasticsearch.xpack.ml.integration;
|
||||
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.nio.entity.NStringEntity;
|
||||
import org.elasticsearch.client.Request;
|
||||
import org.elasticsearch.client.Response;
|
||||
import org.elasticsearch.client.ResponseException;
|
||||
import org.elasticsearch.common.Strings;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.XContentHelper;
|
||||
import org.elasticsearch.test.rest.ESRestTestCase;
|
||||
import org.elasticsearch.xpack.ml.MachineLearning;
|
||||
|
||||
|
@ -22,18 +22,15 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
|
||||
import static org.elasticsearch.common.xcontent.XContentType.JSON;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
|
||||
public class MlBasicMultiNodeIT extends ESRestTestCase {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void testMachineLearningInstalled() throws Exception {
|
||||
Response response = client().performRequest("get", "/_xpack");
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
Map<String, Object> features = (Map<String, Object>) responseEntityToMap(response).get("features");
|
||||
Map<String, Object> ml = (Map<String, Object>) features.get("ml");
|
||||
Response response = client().performRequest(new Request("GET", "/_xpack"));
|
||||
Map<?, ?> features = (Map<?, ?>) entityAsMap(response).get("features");
|
||||
Map<?, ?> ml = (Map<?, ?>) features.get("ml");
|
||||
assertNotNull(ml);
|
||||
assertTrue((Boolean) ml.get("available"));
|
||||
assertTrue((Boolean) ml.get("enabled"));
|
||||
|
@ -55,18 +52,18 @@ public class MlBasicMultiNodeIT extends ESRestTestCase {
|
|||
String jobId = "mini-farequote-job";
|
||||
createFarequoteJob(jobId);
|
||||
|
||||
Response response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_open");
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertEquals(Collections.singletonMap("opened", true), responseEntityToMap(response));
|
||||
Response openResponse = client().performRequest(
|
||||
new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_open"));
|
||||
assertEquals(Collections.singletonMap("opened", true), entityAsMap(openResponse));
|
||||
|
||||
String postData =
|
||||
Request addData = new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_data");
|
||||
addData.setEntity(new NStringEntity(
|
||||
"{\"airline\":\"AAL\",\"responsetime\":\"132.2046\",\"sourcetype\":\"farequote\",\"time\":\"1403481600\"}\n" +
|
||||
"{\"airline\":\"JZA\",\"responsetime\":\"990.4628\",\"sourcetype\":\"farequote\",\"time\":\"1403481700\"}";
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_data",
|
||||
Collections.emptyMap(),
|
||||
new StringEntity(postData, randomFrom(ContentType.APPLICATION_JSON, ContentType.create("application/x-ndjson"))));
|
||||
assertEquals(202, response.getStatusLine().getStatusCode());
|
||||
Map<String, Object> responseBody = responseEntityToMap(response);
|
||||
"{\"airline\":\"JZA\",\"responsetime\":\"990.4628\",\"sourcetype\":\"farequote\",\"time\":\"1403481700\"}",
|
||||
randomFrom(ContentType.APPLICATION_JSON, ContentType.create("application/x-ndjson"))));
|
||||
Response addDataResponse = client().performRequest(addData);
|
||||
assertEquals(202, addDataResponse.getStatusLine().getStatusCode());
|
||||
Map<String, Object> responseBody = entityAsMap(addDataResponse);
|
||||
assertEquals(2, responseBody.get("processed_record_count"));
|
||||
assertEquals(4, responseBody.get("processed_field_count"));
|
||||
assertEquals(177, responseBody.get("input_bytes"));
|
||||
|
@ -78,20 +75,19 @@ public class MlBasicMultiNodeIT extends ESRestTestCase {
|
|||
assertEquals(1403481600000L, responseBody.get("earliest_record_timestamp"));
|
||||
assertEquals(1403481700000L, responseBody.get("latest_record_timestamp"));
|
||||
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_flush");
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertFlushResponse(response, true, 1403481600000L);
|
||||
Response flushResponse = client().performRequest(
|
||||
new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_flush"));
|
||||
assertFlushResponse(flushResponse, true, 1403481600000L);
|
||||
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_close",
|
||||
Collections.singletonMap("timeout", "20s"));
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertEquals(Collections.singletonMap("closed", true), responseEntityToMap(response));
|
||||
Request closeRequest = new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_close");
|
||||
closeRequest.addParameter("timeout", "20s");
|
||||
Response closeResponse = client().performRequest(closeRequest);
|
||||
assertEquals(Collections.singletonMap("closed", true), entityAsMap(closeResponse));
|
||||
|
||||
response = client().performRequest("get", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_stats");
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> dataCountsDoc = (Map<String, Object>)
|
||||
((Map)((List) responseEntityToMap(response).get("jobs")).get(0)).get("data_counts");
|
||||
Response statsResponse = client().performRequest(
|
||||
new Request("GET", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_stats"));
|
||||
Map<?, ?> dataCountsDoc = (Map<?, ?>)
|
||||
((Map<?, ?>)((List<?>) entityAsMap(statsResponse).get("jobs")).get(0)).get("data_counts");
|
||||
assertEquals(2, dataCountsDoc.get("processed_record_count"));
|
||||
assertEquals(4, dataCountsDoc.get("processed_field_count"));
|
||||
assertEquals(177, dataCountsDoc.get("input_bytes"));
|
||||
|
@ -103,12 +99,12 @@ public class MlBasicMultiNodeIT extends ESRestTestCase {
|
|||
assertEquals(1403481600000L, dataCountsDoc.get("earliest_record_timestamp"));
|
||||
assertEquals(1403481700000L, dataCountsDoc.get("latest_record_timestamp"));
|
||||
|
||||
response = client().performRequest("delete", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId);
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
client().performRequest(new Request("DELETE", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId));
|
||||
}
|
||||
|
||||
public void testMiniFarequoteWithDatafeeder() throws Exception {
|
||||
String mappings = "{"
|
||||
Request createAirlineDataRequest = new Request("PUT", "/airline-data");
|
||||
createAirlineDataRequest.setJsonEntity("{"
|
||||
+ " \"mappings\": {"
|
||||
+ " \"response\": {"
|
||||
+ " \"properties\": {"
|
||||
|
@ -118,40 +114,38 @@ public class MlBasicMultiNodeIT extends ESRestTestCase {
|
|||
+ " }"
|
||||
+ " }"
|
||||
+ " }"
|
||||
+ "}";
|
||||
client().performRequest("put", "airline-data", Collections.emptyMap(), new StringEntity(mappings, ContentType.APPLICATION_JSON));
|
||||
client().performRequest("put", "airline-data/response/1", Collections.emptyMap(),
|
||||
new StringEntity("{\"time\":\"2016-06-01T00:00:00Z\",\"airline\":\"AAA\",\"responsetime\":135.22}",
|
||||
ContentType.APPLICATION_JSON));
|
||||
client().performRequest("put", "airline-data/response/2", Collections.emptyMap(),
|
||||
new StringEntity("{\"time\":\"2016-06-01T01:59:00Z\",\"airline\":\"AAA\",\"responsetime\":541.76}",
|
||||
ContentType.APPLICATION_JSON));
|
||||
+ "}");
|
||||
client().performRequest(createAirlineDataRequest);
|
||||
Request airlineData1 = new Request("PUT", "/airline-data/response/1");
|
||||
airlineData1.setJsonEntity("{\"time\":\"2016-06-01T00:00:00Z\",\"airline\":\"AAA\",\"responsetime\":135.22}");
|
||||
client().performRequest(airlineData1);
|
||||
Request airlineData2 = new Request("PUT", "/airline-data/response/2");
|
||||
airlineData2.setJsonEntity("{\"time\":\"2016-06-01T01:59:00Z\",\"airline\":\"AAA\",\"responsetime\":541.76}");
|
||||
client().performRequest(airlineData2);
|
||||
|
||||
// Ensure all data is searchable
|
||||
client().performRequest("post", "_refresh");
|
||||
client().performRequest(new Request("POST", "/_refresh"));
|
||||
|
||||
String jobId = "mini-farequote-with-data-feeder-job";
|
||||
createFarequoteJob(jobId);
|
||||
String datafeedId = "bar";
|
||||
createDatafeed(datafeedId, jobId);
|
||||
|
||||
Response response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_open");
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertEquals(Collections.singletonMap("opened", true), responseEntityToMap(response));
|
||||
Response openResponse = client().performRequest(
|
||||
new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_open"));
|
||||
assertEquals(Collections.singletonMap("opened", true), entityAsMap(openResponse));
|
||||
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "datafeeds/" + datafeedId + "/_start",
|
||||
Collections.singletonMap("start", "0"));
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertEquals(Collections.singletonMap("started", true), responseEntityToMap(response));
|
||||
Request startRequest = new Request("POST", MachineLearning.BASE_PATH + "datafeeds/" + datafeedId + "/_start");
|
||||
startRequest.addParameter("start", "0");
|
||||
Response startResponse = client().performRequest(startRequest);
|
||||
assertEquals(Collections.singletonMap("started", true), entityAsMap(startResponse));
|
||||
|
||||
assertBusy(() -> {
|
||||
try {
|
||||
Response statsResponse =
|
||||
client().performRequest("get", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_stats");
|
||||
assertEquals(200, statsResponse.getStatusLine().getStatusCode());
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> dataCountsDoc = (Map<String, Object>)
|
||||
((Map)((List) responseEntityToMap(statsResponse).get("jobs")).get(0)).get("data_counts");
|
||||
Response statsResponse = client().performRequest(
|
||||
new Request("GET", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_stats"));
|
||||
Map<?, ?> dataCountsDoc = (Map<?, ?>)
|
||||
((Map<?, ?>)((List<?>) entityAsMap(statsResponse).get("jobs")).get(0)).get("data_counts");
|
||||
assertEquals(2, dataCountsDoc.get("input_record_count"));
|
||||
assertEquals(2, dataCountsDoc.get("processed_record_count"));
|
||||
} catch (IOException e) {
|
||||
|
@ -159,41 +153,38 @@ public class MlBasicMultiNodeIT extends ESRestTestCase {
|
|||
}
|
||||
});
|
||||
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "datafeeds/" + datafeedId + "/_stop");
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertEquals(Collections.singletonMap("stopped", true), responseEntityToMap(response));
|
||||
Response stopResponse = client().performRequest(
|
||||
new Request("POST", MachineLearning.BASE_PATH + "datafeeds/" + datafeedId + "/_stop"));
|
||||
assertEquals(Collections.singletonMap("stopped", true), entityAsMap(stopResponse));
|
||||
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_close",
|
||||
Collections.singletonMap("timeout", "20s"));
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertEquals(Collections.singletonMap("closed", true), responseEntityToMap(response));
|
||||
Request closeRequest = new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_close");
|
||||
closeRequest.addParameter("timeout", "20s");
|
||||
assertEquals(Collections.singletonMap("closed", true),
|
||||
entityAsMap(client().performRequest(closeRequest)));
|
||||
|
||||
response = client().performRequest("delete", MachineLearning.BASE_PATH + "datafeeds/" + datafeedId);
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
|
||||
response = client().performRequest("delete", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId);
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
client().performRequest(new Request("DELETE", MachineLearning.BASE_PATH + "datafeeds/" + datafeedId));
|
||||
client().performRequest(new Request("DELETE", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId));
|
||||
}
|
||||
|
||||
public void testMiniFarequoteReopen() throws Exception {
|
||||
String jobId = "mini-farequote-reopen";
|
||||
createFarequoteJob(jobId);
|
||||
|
||||
Response response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_open");
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertEquals(Collections.singletonMap("opened", true), responseEntityToMap(response));
|
||||
Response openResponse = client().performRequest(
|
||||
new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_open"));
|
||||
assertEquals(Collections.singletonMap("opened", true), entityAsMap(openResponse));
|
||||
|
||||
String postData =
|
||||
Request addDataRequest = new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_data");
|
||||
addDataRequest.setEntity(new NStringEntity(
|
||||
"{\"airline\":\"AAL\",\"responsetime\":\"132.2046\",\"sourcetype\":\"farequote\",\"time\":\"1403481600\"}\n" +
|
||||
"{\"airline\":\"JZA\",\"responsetime\":\"990.4628\",\"sourcetype\":\"farequote\",\"time\":\"1403481700\"}\n" +
|
||||
"{\"airline\":\"JBU\",\"responsetime\":\"877.5927\",\"sourcetype\":\"farequote\",\"time\":\"1403481800\"}\n" +
|
||||
"{\"airline\":\"KLM\",\"responsetime\":\"1355.4812\",\"sourcetype\":\"farequote\",\"time\":\"1403481900\"}\n" +
|
||||
"{\"airline\":\"NKS\",\"responsetime\":\"9991.3981\",\"sourcetype\":\"farequote\",\"time\":\"1403482000\"}";
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_data",
|
||||
Collections.emptyMap(),
|
||||
new StringEntity(postData, randomFrom(ContentType.APPLICATION_JSON, ContentType.create("application/x-ndjson"))));
|
||||
assertEquals(202, response.getStatusLine().getStatusCode());
|
||||
Map<String, Object> responseBody = responseEntityToMap(response);
|
||||
"{\"airline\":\"NKS\",\"responsetime\":\"9991.3981\",\"sourcetype\":\"farequote\",\"time\":\"1403482000\"}",
|
||||
randomFrom(ContentType.APPLICATION_JSON, ContentType.create("application/x-ndjson"))));
|
||||
Response addDataResponse = client().performRequest(addDataRequest);
|
||||
assertEquals(202, addDataResponse.getStatusLine().getStatusCode());
|
||||
Map<String, Object> responseBody = entityAsMap(addDataResponse);
|
||||
assertEquals(5, responseBody.get("processed_record_count"));
|
||||
assertEquals(10, responseBody.get("processed_field_count"));
|
||||
assertEquals(446, responseBody.get("input_bytes"));
|
||||
|
@ -205,60 +196,56 @@ public class MlBasicMultiNodeIT extends ESRestTestCase {
|
|||
assertEquals(1403481600000L, responseBody.get("earliest_record_timestamp"));
|
||||
assertEquals(1403482000000L, responseBody.get("latest_record_timestamp"));
|
||||
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_flush");
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertFlushResponse(response, true, 1403481600000L);
|
||||
Response flushResponse = client().performRequest(
|
||||
new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_flush"));
|
||||
assertFlushResponse(flushResponse, true, 1403481600000L);
|
||||
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_close",
|
||||
Collections.singletonMap("timeout", "20s"));
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertEquals(Collections.singletonMap("closed", true), responseEntityToMap(response));
|
||||
Request closeRequest = new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_close");
|
||||
closeRequest.addParameter("timeout", "20s");
|
||||
assertEquals(Collections.singletonMap("closed", true),
|
||||
entityAsMap(client().performRequest(closeRequest)));
|
||||
|
||||
response = client().performRequest("get", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_stats");
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_open",
|
||||
Collections.singletonMap("timeout", "20s"));
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertEquals(Collections.singletonMap("opened", true), responseEntityToMap(response));
|
||||
Request statsRequest = new Request("GET", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_stats");
|
||||
client().performRequest(statsRequest);
|
||||
|
||||
Request openRequest = new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_open");
|
||||
openRequest.addParameter("timeout", "20s");
|
||||
Response openResponse2 = client().performRequest(openRequest);
|
||||
assertEquals(Collections.singletonMap("opened", true), entityAsMap(openResponse2));
|
||||
|
||||
// feed some more data points
|
||||
postData =
|
||||
Request addDataRequest2 = new Request("POST", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_data");
|
||||
addDataRequest2.setEntity(new NStringEntity(
|
||||
"{\"airline\":\"AAL\",\"responsetime\":\"136.2361\",\"sourcetype\":\"farequote\",\"time\":\"1407081600\"}\n" +
|
||||
"{\"airline\":\"VRD\",\"responsetime\":\"282.9847\",\"sourcetype\":\"farequote\",\"time\":\"1407081700\"}\n" +
|
||||
"{\"airline\":\"JAL\",\"responsetime\":\"493.0338\",\"sourcetype\":\"farequote\",\"time\":\"1407081800\"}\n" +
|
||||
"{\"airline\":\"UAL\",\"responsetime\":\"8.4275\",\"sourcetype\":\"farequote\",\"time\":\"1407081900\"}\n" +
|
||||
"{\"airline\":\"FFT\",\"responsetime\":\"221.8693\",\"sourcetype\":\"farequote\",\"time\":\"1407082000\"}";
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_data",
|
||||
Collections.emptyMap(),
|
||||
new StringEntity(postData, randomFrom(ContentType.APPLICATION_JSON, ContentType.create("application/x-ndjson"))));
|
||||
assertEquals(202, response.getStatusLine().getStatusCode());
|
||||
responseBody = responseEntityToMap(response);
|
||||
assertEquals(5, responseBody.get("processed_record_count"));
|
||||
assertEquals(10, responseBody.get("processed_field_count"));
|
||||
assertEquals(442, responseBody.get("input_bytes"));
|
||||
assertEquals(15, responseBody.get("input_field_count"));
|
||||
assertEquals(0, responseBody.get("invalid_date_count"));
|
||||
assertEquals(0, responseBody.get("missing_field_count"));
|
||||
assertEquals(0, responseBody.get("out_of_order_timestamp_count"));
|
||||
assertEquals(1000, responseBody.get("bucket_count"));
|
||||
|
||||
"{\"airline\":\"FFT\",\"responsetime\":\"221.8693\",\"sourcetype\":\"farequote\",\"time\":\"1407082000\"}",
|
||||
randomFrom(ContentType.APPLICATION_JSON, ContentType.create("application/x-ndjson"))));
|
||||
Response addDataResponse2 = client().performRequest(addDataRequest2);
|
||||
assertEquals(202, addDataResponse2.getStatusLine().getStatusCode());
|
||||
Map<String, Object> responseBody2 = entityAsMap(addDataResponse2);
|
||||
assertEquals(5, responseBody2.get("processed_record_count"));
|
||||
assertEquals(10, responseBody2.get("processed_field_count"));
|
||||
assertEquals(442, responseBody2.get("input_bytes"));
|
||||
assertEquals(15, responseBody2.get("input_field_count"));
|
||||
assertEquals(0, responseBody2.get("invalid_date_count"));
|
||||
assertEquals(0, responseBody2.get("missing_field_count"));
|
||||
assertEquals(0, responseBody2.get("out_of_order_timestamp_count"));
|
||||
assertEquals(1000, responseBody2.get("bucket_count"));
|
||||
|
||||
// unintuitive: should return the earliest record timestamp of this feed???
|
||||
assertEquals(null, responseBody.get("earliest_record_timestamp"));
|
||||
assertEquals(1407082000000L, responseBody.get("latest_record_timestamp"));
|
||||
|
||||
response = client().performRequest("post", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_close",
|
||||
Collections.singletonMap("timeout", "20s"));
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
assertEquals(Collections.singletonMap("closed", true), responseEntityToMap(response));
|
||||
assertEquals(null, responseBody2.get("earliest_record_timestamp"));
|
||||
assertEquals(1407082000000L, responseBody2.get("latest_record_timestamp"));
|
||||
|
||||
assertEquals(Collections.singletonMap("closed", true),
|
||||
entityAsMap(client().performRequest(closeRequest)));
|
||||
|
||||
// counts should be summed up
|
||||
response = client().performRequest("get", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId + "/_stats");
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> dataCountsDoc = (Map<String, Object>)
|
||||
((Map)((List) responseEntityToMap(response).get("jobs")).get(0)).get("data_counts");
|
||||
Response statsResponse = client().performRequest(statsRequest);
|
||||
|
||||
Map<?, ?> dataCountsDoc = (Map<?, ?>)
|
||||
((Map<?, ?>)((List<?>) entityAsMap(statsResponse).get("jobs")).get(0)).get("data_counts");
|
||||
assertEquals(10, dataCountsDoc.get("processed_record_count"));
|
||||
assertEquals(20, dataCountsDoc.get("processed_field_count"));
|
||||
assertEquals(888, dataCountsDoc.get("input_bytes"));
|
||||
|
@ -270,8 +257,7 @@ public class MlBasicMultiNodeIT extends ESRestTestCase {
|
|||
assertEquals(1403481600000L, dataCountsDoc.get("earliest_record_timestamp"));
|
||||
assertEquals(1407082000000L, dataCountsDoc.get("latest_record_timestamp"));
|
||||
|
||||
response = client().performRequest("delete", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId);
|
||||
assertEquals(200, response.getStatusLine().getStatusCode());
|
||||
client().performRequest(new Request("DELETE", MachineLearning.BASE_PATH + "anomaly_detectors/" + jobId));
|
||||
}
|
||||
|
||||
private Response createDatafeed(String datafeedId, String jobId) throws Exception {
|
||||
|
@ -282,45 +268,53 @@ public class MlBasicMultiNodeIT extends ESRestTestCase {
|
|||
xContentBuilder.array("types", "response");
|
||||
xContentBuilder.field("_source", true);
|
||||
xContentBuilder.endObject();
|
||||
return client().performRequest("put", MachineLearning.BASE_PATH + "datafeeds/" + datafeedId,
|
||||
Collections.emptyMap(), new StringEntity(Strings.toString(xContentBuilder), ContentType.APPLICATION_JSON));
|
||||
Request request = new Request("PUT", MachineLearning.BASE_PATH + "datafeeds/" + datafeedId);
|
||||
request.setJsonEntity(Strings.toString(xContentBuilder));
|
||||
return client().performRequest(request);
|
||||
}
|
||||
|
||||
private Response createFarequoteJob(String jobId) throws Exception {
|
||||
XContentBuilder xContentBuilder = jsonBuilder();
|
||||
xContentBuilder.startObject();
|
||||
xContentBuilder.field("job_id", jobId);
|
||||
xContentBuilder.field("description", "Analysis of response time by airline");
|
||||
{
|
||||
xContentBuilder.field("job_id", jobId);
|
||||
xContentBuilder.field("description", "Analysis of response time by airline");
|
||||
|
||||
xContentBuilder.startObject("analysis_config");
|
||||
xContentBuilder.field("bucket_span", "3600s");
|
||||
xContentBuilder.startArray("detectors");
|
||||
xContentBuilder.startObject();
|
||||
xContentBuilder.field("function", "metric");
|
||||
xContentBuilder.field("field_name", "responsetime");
|
||||
xContentBuilder.field("by_field_name", "airline");
|
||||
xContentBuilder.endObject();
|
||||
xContentBuilder.endArray();
|
||||
xContentBuilder.startObject("analysis_config");
|
||||
{
|
||||
xContentBuilder.field("bucket_span", "3600s");
|
||||
xContentBuilder.startArray("detectors");
|
||||
{
|
||||
xContentBuilder.startObject();
|
||||
{
|
||||
xContentBuilder.field("function", "metric");
|
||||
xContentBuilder.field("field_name", "responsetime");
|
||||
xContentBuilder.field("by_field_name", "airline");
|
||||
}
|
||||
xContentBuilder.endObject();
|
||||
}
|
||||
xContentBuilder.endArray();
|
||||
}
|
||||
xContentBuilder.endObject();
|
||||
|
||||
xContentBuilder.startObject("data_description");
|
||||
{
|
||||
xContentBuilder.field("format", "xcontent");
|
||||
xContentBuilder.field("time_field", "time");
|
||||
xContentBuilder.field("time_format", "epoch");
|
||||
}
|
||||
xContentBuilder.endObject();
|
||||
}
|
||||
xContentBuilder.endObject();
|
||||
|
||||
xContentBuilder.startObject("data_description");
|
||||
xContentBuilder.field("format", "xcontent");
|
||||
xContentBuilder.field("time_field", "time");
|
||||
xContentBuilder.field("time_format", "epoch");
|
||||
xContentBuilder.endObject();
|
||||
xContentBuilder.endObject();
|
||||
|
||||
return client().performRequest("put", MachineLearning.BASE_PATH + "anomaly_detectors/" + URLEncoder.encode(jobId, "UTF-8"),
|
||||
Collections.emptyMap(), new StringEntity(Strings.toString(xContentBuilder), ContentType.APPLICATION_JSON));
|
||||
}
|
||||
|
||||
private static Map<String, Object> responseEntityToMap(Response response) throws IOException {
|
||||
return XContentHelper.convertToMap(JSON.xContent(), response.getEntity().getContent(), false);
|
||||
Request request = new Request("PUT", MachineLearning.BASE_PATH + "anomaly_detectors/" + URLEncoder.encode(jobId, "UTF-8"));
|
||||
request.setJsonEntity(Strings.toString(xContentBuilder));
|
||||
return client().performRequest(request);
|
||||
}
|
||||
|
||||
private static void assertFlushResponse(Response response, boolean expectedFlushed, long expectedLastFinalizedBucketEnd)
|
||||
throws IOException {
|
||||
Map<String, Object> asMap = responseEntityToMap(response);
|
||||
Map<String, Object> asMap = entityAsMap(response);
|
||||
assertThat(asMap.size(), equalTo(2));
|
||||
assertThat(asMap.get("flushed"), is(true));
|
||||
assertThat(asMap.get("last_finalized_bucket_end"), equalTo(expectedLastFinalizedBucketEnd));
|
||||
|
|
Loading…
Reference in New Issue