Github user merrimanr commented on a diff in the pull request:

    https://github.com/apache/metron/pull/1190#discussion_r216091258
  
    --- Diff: 
metron-platform/metron-indexing/src/test/java/org/apache/metron/indexing/dao/InMemoryMetaAlertDao.java
 ---
    @@ -174,145 +193,29 @@ public SearchResponse 
getAllMetaAlertsForAlert(String guid) throws InvalidSearch
     
       @SuppressWarnings("unchecked")
       @Override
    -  public MetaAlertCreateResponse createMetaAlert(MetaAlertCreateRequest 
request)
    -      throws InvalidCreateException {
    -    List<GetRequest> alertRequests = request.getAlerts();
    -    if (alertRequests.isEmpty()) {
    -      MetaAlertCreateResponse response = new MetaAlertCreateResponse();
    -      response.setCreated(false);
    -      return response;
    -    }
    -    // Build meta alert json.  Give it a reasonable GUID
    -    JSONObject metaAlert = new JSONObject();
    -    String metaAlertGuid =
    -        "meta_" + 
(InMemoryDao.BACKING_STORE.get(getMetaAlertIndex()).size() + 1);
    -    metaAlert.put(GUID, metaAlertGuid);
    -
    -    JSONArray groupsArray = new JSONArray();
    -    groupsArray.addAll(request.getGroups());
    -    metaAlert.put(MetaAlertConstants.GROUPS_FIELD, groupsArray);
    -
    -    // Retrieve the alert for each guid
    -    // For the purpose of testing, we're just using guids for the alerts 
field and grabbing the scores.
    -    JSONArray alertArray = new JSONArray();
    -    List<Double> threatScores = new ArrayList<>();
    -    Collection<String> alertGuids = new ArrayList<>();
    -    for (GetRequest alertRequest : alertRequests) {
    -      SearchRequest searchRequest = new SearchRequest();
    -      
searchRequest.setIndices(ImmutableList.of(alertRequest.getIndex().get()));
    -      searchRequest.setQuery("guid:" + alertRequest.getGuid());
    -      try {
    -        SearchResponse searchResponse = search(searchRequest);
    -        List<SearchResult> searchResults = searchResponse.getResults();
    -        if (searchResults.size() > 1) {
    -          throw new InvalidCreateException(
    -              "Found more than one result for: " + alertRequest.getGuid() 
+ ". Values: "
    -                  + searchResults
    -          );
    -        }
    -
    -        if (searchResults.size() == 1) {
    -          SearchResult result = searchResults.get(0);
    -          alertArray.add(result.getSource());
    -          Double threatScore = Double
    -              .parseDouble(
    -                  
result.getSource().getOrDefault(MetaAlertConstants.THREAT_FIELD_DEFAULT, "0")
    -                      .toString());
    -
    -          threatScores.add(threatScore);
    -        }
    -      } catch (InvalidSearchException e) {
    -        throw new InvalidCreateException("Unable to find guid: " + 
alertRequest.getGuid(), e);
    -      }
    -      alertGuids.add(alertRequest.getGuid());
    -    }
    -
    -    metaAlert.put(MetaAlertConstants.ALERT_FIELD, alertArray);
    -    metaAlert.putAll(new MetaScores(threatScores).getMetaScores());
    -    metaAlert.put(MetaAlertConstants.STATUS_FIELD, 
MetaAlertStatus.ACTIVE.getStatusString());
    -
    -    // Add the alert to the store, but make sure not to overwrite existing 
results
    -    
InMemoryDao.BACKING_STORE.get(getMetaAlertIndex()).add(metaAlert.toJSONString());
    -
    -    METAALERT_STORE.put(metaAlertGuid, new HashSet<>(alertGuids));
    -
    -    MetaAlertCreateResponse createResponse = new MetaAlertCreateResponse();
    -    createResponse.setGuid(metaAlertGuid);
    -    createResponse.setCreated(true);
    -    return createResponse;
    +  public Document createMetaAlert(MetaAlertCreateRequest request)
    +      throws InvalidCreateException, IOException {
    +    return metaAlertUpdateDao.createMetaAlert(request);
    --- End diff --
    
    Now we're delegating to the AbstractLuceneMetaAlertUpdateDao class instead 
of duplicating it.


---

Reply via email to