You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by le...@apache.org on 2017/11/16 17:03:35 UTC
metron git commit: METRON-1290 Only first 10 alerts are update when a
MetaAlert status is changed to inactive (justinleet) closes apache/metron#842
Repository: metron
Updated Branches:
refs/heads/master 2d5209ebf -> a6b5eddd1
METRON-1290 Only first 10 alerts are update when a MetaAlert status is changed to inactive (justinleet) closes apache/metron#842
Project: http://git-wip-us.apache.org/repos/asf/metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/a6b5eddd
Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/a6b5eddd
Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/a6b5eddd
Branch: refs/heads/master
Commit: a6b5eddd10e970c20cd815f6b73aec870aa95be7
Parents: 2d5209e
Author: justinleet <ju...@gmail.com>
Authored: Thu Nov 16 11:36:27 2017 -0500
Committer: leet <le...@apache.org>
Committed: Thu Nov 16 11:36:27 2017 -0500
----------------------------------------------------------------------
.../ElasticsearchMetaAlertIntegrationTest.java | 91 ++++++++++++--------
1 file changed, 57 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metron/blob/a6b5eddd/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/ElasticsearchMetaAlertIntegrationTest.java
----------------------------------------------------------------------
diff --git a/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/ElasticsearchMetaAlertIntegrationTest.java b/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/ElasticsearchMetaAlertIntegrationTest.java
index c28094b..35f40ca 100644
--- a/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/ElasticsearchMetaAlertIntegrationTest.java
+++ b/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/ElasticsearchMetaAlertIntegrationTest.java
@@ -31,7 +31,6 @@ import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
@@ -44,13 +43,13 @@ import org.apache.metron.common.Constants;
import org.apache.metron.common.utils.JSONUtils;
import org.apache.metron.elasticsearch.dao.ElasticsearchDao;
import org.apache.metron.elasticsearch.dao.ElasticsearchMetaAlertDao;
-import org.apache.metron.indexing.dao.metaalert.MetaAlertStatus;
import org.apache.metron.elasticsearch.integration.components.ElasticSearchComponent;
import org.apache.metron.indexing.dao.AccessConfig;
import org.apache.metron.indexing.dao.IndexDao;
import org.apache.metron.indexing.dao.MetaAlertDao;
import org.apache.metron.indexing.dao.metaalert.MetaAlertCreateRequest;
import org.apache.metron.indexing.dao.metaalert.MetaAlertCreateResponse;
+import org.apache.metron.indexing.dao.metaalert.MetaAlertStatus;
import org.apache.metron.indexing.dao.search.GetRequest;
import org.apache.metron.indexing.dao.search.Group;
import org.apache.metron.indexing.dao.search.GroupRequest;
@@ -547,24 +546,34 @@ public class ElasticsearchMetaAlertIntegrationTest {
@Test
public void shouldUpdateMetaAlertStatus() throws Exception {
+ int numChildAlerts = 25;
+ int numUnrelatedAlerts = 25;
+ int totalAlerts = numChildAlerts + numUnrelatedAlerts;
+
// Load alerts
- List<Map<String, Object>> alerts = buildAlerts(3);
- alerts.get(0).put(METAALERT_FIELD, Collections.singletonList("meta_alert"));
- alerts.get(1).put(METAALERT_FIELD, Collections.singletonList("meta_alert"));
+ List<Map<String, Object>> alerts = buildAlerts(totalAlerts);
+ List<Map<String, Object>> childAlerts = alerts.subList(0, numChildAlerts);
+ List<Map<String, Object>> unrelatedAlerts = alerts.subList(numChildAlerts, totalAlerts);
+ for (Map<String, Object> alert : childAlerts) {
+ alert.put(METAALERT_FIELD, Collections.singletonList("meta_alert"));
+ }
elasticsearchAdd(alerts, INDEX, SENSOR_NAME);
// Load metaAlerts
Map<String, Object> metaAlert = buildMetaAlert("meta_alert", MetaAlertStatus.ACTIVE,
- Optional.of(Arrays.asList(alerts.get(0), alerts.get(1))));
+ Optional.of(childAlerts));
// We pass MetaAlertDao.METAALERT_TYPE, because the "_doc" gets appended automatically.
- elasticsearchAdd(Collections.singletonList(metaAlert), METAALERTS_INDEX, MetaAlertDao.METAALERT_TYPE);
+ elasticsearchAdd(Collections.singletonList(metaAlert), METAALERTS_INDEX,
+ MetaAlertDao.METAALERT_TYPE);
+
+ List<GetRequest> requests = new ArrayList<>();
+ for (int i = 0; i < numChildAlerts; ++i) {
+ requests.add(new GetRequest("message_" + i, SENSOR_NAME));
+ }
+ requests.add(new GetRequest("meta_alert", METAALERT_TYPE));
// Verify load was successful
- findCreatedDocs(Arrays.asList(
- new GetRequest("message_0", SENSOR_NAME),
- new GetRequest("message_1", SENSOR_NAME),
- new GetRequest("message_2", SENSOR_NAME),
- new GetRequest("meta_alert", METAALERT_TYPE)));
+ findCreatedDocs(requests);
{
// Verify status changed to inactive and child alerts are updated
@@ -575,16 +584,18 @@ public class ElasticsearchMetaAlertIntegrationTest {
findUpdatedDoc(expectedMetaAlert, "meta_alert", METAALERT_TYPE);
- Map<String, Object> expectedAlert0 = new HashMap<>(alerts.get(0));
- expectedAlert0.put("metaalerts", new ArrayList());
- findUpdatedDoc(expectedAlert0, "message_0", SENSOR_NAME);
-
- Map<String, Object> expectedAlert1 = new HashMap<>(alerts.get(1));
- expectedAlert1.put("metaalerts", new ArrayList());
- findUpdatedDoc(expectedAlert1, "message_1", SENSOR_NAME);
+ for (int i = 0; i < numChildAlerts; ++i) {
+ Map<String, Object> expectedAlert = new HashMap<>(childAlerts.get(i));
+ expectedAlert.put("metaalerts", new ArrayList());
+ findUpdatedDoc(expectedAlert, "message_" + i, SENSOR_NAME);
+ }
- Map<String, Object> expectedAlert2 = new HashMap<>(alerts.get(2));
- findUpdatedDoc(expectedAlert2, "message_2", SENSOR_NAME);
+ // Ensure unrelated alerts are unaffected
+ for (int i = 0; i < numUnrelatedAlerts; ++i) {
+ Map<String, Object> expectedAlert = new HashMap<>(unrelatedAlerts.get(i));
+ // Make sure to handle the guid offset from creation
+ findUpdatedDoc(expectedAlert, "message_" + (i + numChildAlerts), SENSOR_NAME);
+ }
}
{
@@ -596,25 +607,37 @@ public class ElasticsearchMetaAlertIntegrationTest {
findUpdatedDoc(expectedMetaAlert, "meta_alert", METAALERT_TYPE);
- Map<String, Object> expectedAlert0 = new HashMap<>(alerts.get(0));
- expectedAlert0.put("metaalerts", Collections.singletonList("meta_alert"));
- findUpdatedDoc(expectedAlert0, "message_0", SENSOR_NAME);
-
- Map<String, Object> expectedAlert1 = new HashMap<>(alerts.get(1));
- expectedAlert1.put("metaalerts", Collections.singletonList("meta_alert"));
- findUpdatedDoc(expectedAlert1, "message_1", SENSOR_NAME);
+ for (int i = 0; i < numChildAlerts; ++i) {
+ Map<String, Object> expectedAlert = new HashMap<>(alerts.get(i));
+ expectedAlert.put("metaalerts", Collections.singletonList("meta_alert"));
+ findUpdatedDoc(expectedAlert, "message_" + i, SENSOR_NAME);
+ }
- Map<String, Object> expectedAlert2 = new HashMap<>(alerts.get(2));
- findUpdatedDoc(expectedAlert2, "message_2", SENSOR_NAME);
+ // Ensure unrelated alerts are unaffected
+ for (int i = 0; i < numUnrelatedAlerts; ++i) {
+ Map<String, Object> expectedAlert = new HashMap<>(unrelatedAlerts.get(i));
+ // Make sure to handle the guid offset from creation
+ findUpdatedDoc(expectedAlert, "message_" + (i + numChildAlerts), SENSOR_NAME);
+ }
{
// Verify status changed to current status has no effect
Assert.assertFalse(metaDao.updateMetaAlertStatus("meta_alert", MetaAlertStatus.ACTIVE));
findUpdatedDoc(expectedMetaAlert, "meta_alert", METAALERT_TYPE);
- findUpdatedDoc(expectedAlert0, "message_0", SENSOR_NAME);
- findUpdatedDoc(expectedAlert1, "message_1", SENSOR_NAME);
- findUpdatedDoc(expectedAlert2, "message_2", SENSOR_NAME);
+
+ for (int i = 0; i < numChildAlerts; ++i) {
+ Map<String, Object> expectedAlert = new HashMap<>(alerts.get(i));
+ expectedAlert.put("metaalerts", Collections.singletonList("meta_alert"));
+ findUpdatedDoc(expectedAlert, "message_" + i, SENSOR_NAME);
+ }
+
+ // Ensure unrelated alerts are unaffected
+ for (int i = 0; i < numUnrelatedAlerts; ++i) {
+ Map<String, Object> expectedAlert = new HashMap<>(unrelatedAlerts.get(i));
+ // Make sure to handle the guid offset from creation
+ findUpdatedDoc(expectedAlert, "message_" + (i + numChildAlerts), SENSOR_NAME);
+ }
}
}
}
@@ -1015,7 +1038,7 @@ public class ElasticsearchMetaAlertIntegrationTest {
return;
}
}
- throw new OriginalNotFoundException("Count not find " + guid + " after " + MAX_RETRIES + "tries");
+ throw new OriginalNotFoundException("Count not find " + guid + " after " + MAX_RETRIES + " tries");
}
protected boolean findCreatedDoc(String guid, String sensorType)