protected boolean findCreatedDoc(String guid, String sensorType) throws InterruptedException, IOException, OriginalNotFoundException { for (int t = 0; t < MAX_RETRIES; ++t, Thread.sleep(SLEEP_MS)) { Document doc = metaDao.getLatest(guid, sensorType); if (doc != null) { return true; } } throw new OriginalNotFoundException( "Count not find " + guid + " after " + MAX_RETRIES + "tries"); }
private void escalateMetaAlert(String guid) throws Exception { // create the patch that 'escalates' the meta-alert Map<String, Object> patch = new HashMap<>(); patch.put("op", "add"); patch.put("path", "/alert_status"); patch.put("value", "escalate"); // 'escalate' the meta-alert PatchRequest patchRequest = new PatchRequest(); patchRequest.setGuid(guid); patchRequest.setIndex(getMetaAlertIndex()); patchRequest.setSensorType(METAALERT_TYPE); patchRequest.setPatch(Collections.singletonList(patch)); metaDao.patch(metaDao, patchRequest, Optional.of(System.currentTimeMillis())); // ensure the alert status was changed to 'escalate' assertEventually(() -> { Document updated = metaDao.getLatest(guid, METAALERT_TYPE); Assert.assertEquals("escalate", updated.getDocument().get("alert_status")); }); }
Document updated = metaDao.getLatest("meta_alert", METAALERT_TYPE); Assert.assertEquals(metaAlert.get(ALERT_FIELD), updated.getDocument().get(ALERT_FIELD)); });
Document updated = metaDao.getLatest("meta_alert", METAALERT_TYPE); Assert.assertEquals(metaAlert.get(STATUS_FIELD), updated.getDocument().get(STATUS_FIELD)); });
@Test public void shouldPatchMetaAlertFields() throws Exception { // Load alerts List<Map<String, Object>> alerts = buildAlerts(2); alerts.get(0).put(METAALERT_FIELD, Collections.singletonList("meta_active")); alerts.get(1).put(METAALERT_FIELD, Collections.singletonList("meta_active")); addRecords(alerts, getTestIndexFullName(), SENSOR_NAME); // Put the nested type into the test index, so that it'll match appropriately setupTypings(); // Load metaAlerts Map<String, Object> metaAlert = buildMetaAlert("meta_alert", MetaAlertStatus.ACTIVE, Optional.of(Arrays.asList(alerts.get(0), alerts.get(1)))); // We pass MetaAlertDao.METAALERT_TYPE, because the "_doc" gets appended automatically. addRecords(Collections.singletonList(metaAlert), getMetaAlertIndex(), METAALERT_TYPE); // ensure the test data was loaded findCreatedDocs(Arrays.asList( new GetRequest("message_0", SENSOR_NAME), new GetRequest("message_1", SENSOR_NAME), new GetRequest("meta_alert", METAALERT_TYPE))); // patch the name field String namePatch = namePatchRequest.replace(META_INDEX_FLAG, getMetaAlertIndex()); PatchRequest patchRequest = JSONUtils.INSTANCE.load(namePatch, PatchRequest.class); metaDao.patch(metaDao, patchRequest, Optional.of(System.currentTimeMillis())); // ensure the alert was patched assertEventually(() -> { Document updated = metaDao.getLatest("meta_alert", METAALERT_TYPE); Assert.assertEquals("New Meta Alert", updated.getDocument().get(NAME_FIELD)); }); }
Document message0 = metaDao.getLatest("message_0", SENSOR_NAME); message0.getDocument().put(NEW_FIELD, expectedFieldValue); message0.getDocument().put(THREAT_FIELD_DEFAULT, 10.0d); Document message0 = metaDao.getLatest("message_0", SENSOR_NAME); Assert.assertNotNull(message0); Assert.assertEquals(expectedFieldValue, message0.getDocument().get(NEW_FIELD)); Document active = metaDao.getLatest("meta_active", METAALERT_TYPE); Object value = active.getDocument().get(ALERT_FIELD); List<Map<String, Object>> children = List.class.cast(value); Document inactive = metaDao.getLatest("meta_inactive", METAALERT_TYPE); Object value = inactive.getDocument().get(ALERT_FIELD); List<Map<String, Object>> children = List.class.cast(value);
Document alert = metaDao.getLatest("message_0", SENSOR_NAME); Assert.assertEquals(4, alert.getDocument().size()); Assert.assertNull(alert.getDocument().get(METAALERT_FIELD));
protected void findUpdatedDoc(Map<String, Object> message0, String guid, String sensorType) throws InterruptedException, IOException, OriginalNotFoundException { commit(); for (int t = 0; t < MAX_RETRIES; ++t, Thread.sleep(SLEEP_MS)) { Document doc = metaDao.getLatest(guid, sensorType); // Change the underlying document alerts lists to sets to avoid ordering issues. convertAlertsFieldToSet(doc.getDocument()); convertAlertsFieldToSet(message0); if (doc.getDocument() != null && message0.equals(doc.getDocument())) { convertAlertsFieldToList(doc.getDocument()); convertAlertsFieldToList(message0); return; } } throw new OriginalNotFoundException( "Count not find " + guid + " after " + MAX_RETRIES + " tries"); }