Merge "Fixes in OxmModelLoader"
authorSteven Blimkie <Steven.Blimkie@amdocs.com>
Thu, 22 Mar 2018 14:42:41 +0000 (14:42 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 22 Mar 2018 14:42:41 +0000 (14:42 +0000)
FUNCTIONS.md
src/main/java/org/onap/aai/datarouter/policy/EntityEventPolicy.java
src/main/java/org/onap/aai/datarouter/policy/SpikeEntityEventPolicy.java
src/main/java/org/onap/aai/datarouter/query/ChameleonResponseBuiler.java
src/main/java/org/onap/aai/datarouter/service/EchoService.java

index cf0ce87..84efd58 100644 (file)
@@ -4,6 +4,15 @@ The _Synapse_ data router comes packaged with a set of functionality that needs
 
 ## Entity Change Event
 
+### Interfaces
+
+_Synapse_ pulls from message bus 
+Purpose:
+- Get every create/update/delete events coming from _AAI Resources_
+
+_Synapse_ -> Search data Service port 9509 (REST)
+Purposes: 
+ - Update secondary database with information pulled from the message bus
 
 ### Configuration
 
index 1d447c9..793588f 100644 (file)
@@ -74,20 +74,20 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 public class EntityEventPolicy implements Processor {
 
   public static final String additionalInfo = "Response of AAIEntityEventPolicy";
-  private static final String entitySearchSchema = "entitysearch_schema.json";
-  private static final String topographicalSearchSchema   = "topographysearch_schema.json";
+  private static final String ENTITY_SEARCH_SCHEMA = "entitysearch_schema.json";
+  private static final String TOPOGRAPHICAL_SEARCH_SCHEMA = "topographysearch_schema.json";
   private Collection<ExternalOxmModelProcessor> externalOxmModelProcessors;
 
-  private final String EVENT_HEADER = "event-header";
-  private final String ENTITY_HEADER = "entity";
-  private final String ACTION_CREATE = "create";
-  private final static String ACTION_DELETE = "delete";
-  private final String ACTION_UPDATE = "update";
-  private final String PROCESS_AAI_EVENT = "Process AAI Event";
-  private final String TOPO_LAT = "latitude";
-  private final String TOPO_LONG = "longitude";
+  private static final String EVENT_HEADER = "event-header";
+  private static final String ENTITY_HEADER = "entity";
+  private static final String ACTION_CREATE = "create";
+  private static final String ACTION_DELETE = "delete";
+  private static final String ACTION_UPDATE = "update";
+  private static final String PROCESS_AAI_EVENT = "Process AAI Event";
+  private static final String TOPO_LAT = "latitude";
+  private static final String TOPO_LONG = "longitude";
 
-  private final List<String> SUPPORTED_ACTIONS =
+  private static final List<String> SUPPORTED_ACTIONS =
       Arrays.asList(ACTION_CREATE, ACTION_UPDATE, ACTION_DELETE);
 
   Map<String, DynamicJAXBContext> oxmVersionContextMap = new HashMap<>();
@@ -172,8 +172,8 @@ public class EntityEventPolicy implements Processor {
   public void startup() {
     
     // Create the indexes in the search service if they do not already exist.
-    searchAgent.createSearchIndex(entitySearchIndex, entitySearchSchema);
-    searchAgent.createSearchIndex(topographicalSearchIndex, topographicalSearchSchema);
+    searchAgent.createSearchIndex(entitySearchIndex, ENTITY_SEARCH_SCHEMA);
+    searchAgent.createSearchIndex(topographicalSearchIndex, TOPOGRAPHICAL_SEARCH_SCHEMA);
     
     logger.info(EntityEventPolicyMsgs.ENTITY_EVENT_POLICY_REGISTERED);
   }
@@ -506,7 +506,7 @@ public class EntityEventPolicy implements Processor {
                     updateCerInEntity(entityToSync);
 
                   } catch (NoSuchAlgorithmException e) {
-                    e.printStackTrace();
+                    logger.debug(e.getMessage());
                   }
                 }
               } else {
@@ -814,7 +814,7 @@ public class EntityEventPolicy implements Processor {
       uebJsonObj = new JSONObject(payload);
     } catch (JSONException e) {
       logger.debug(EntityEventPolicyMsgs.DISCARD_EVENT_VERBOSE,
-          "Payload has invalid JSON Format", payload.toString());
+          "Payload has invalid JSON Format", payload);
       logger.error(EntityEventPolicyMsgs.DISCARD_EVENT_NONVERBOSE,
           "Payload has invalid JSON Format");
       return null;
@@ -823,8 +823,7 @@ public class EntityEventPolicy implements Processor {
     if (uebJsonObj.has(ENTITY_HEADER)) {
       return uebJsonObj.getJSONObject(ENTITY_HEADER);
     } else {
-      logger.debug(EntityEventPolicyMsgs.FAILED_TO_PARSE_UEB_PAYLOAD, ENTITY_HEADER + " missing",
-          payload.toString());
+      logger.debug(EntityEventPolicyMsgs.FAILED_TO_PARSE_UEB_PAYLOAD, ENTITY_HEADER + " missing", payload);
       logger.error(EntityEventPolicyMsgs.FAILED_TO_PARSE_UEB_PAYLOAD, ENTITY_HEADER + " missing");
       return null;
     }
@@ -846,8 +845,6 @@ public class EntityEventPolicy implements Processor {
         primaryKeyValues.add(pkeyValue);
         primaryKeyNames.add(keyName);
       } else {
-        // logger.warn("getPopulatedDocument(), pKeyValue is null for entityType = " +
-        // resultDescriptor.getEntityName());
         logger.error(EntityEventPolicyMsgs.PRIMARY_KEY_NULL_FOR_ENTITY_TYPE,
             resultDescriptor.getEntityName());
       }
@@ -966,8 +963,6 @@ public class EntityEventPolicy implements Processor {
 
       String entityId = eventEntity.getId();
 
-      // System.out.println("aaiEventEntity as json = " + aaiEventEntity.getAsJson());
-
       if ((action.equalsIgnoreCase(ACTION_CREATE) && entityId != null)
           || action.equalsIgnoreCase(ACTION_UPDATE)) {
 
index 455e6b9..36bb142 100644 (file)
@@ -64,20 +64,20 @@ import com.fasterxml.jackson.databind.ObjectWriter;
 public class SpikeEntityEventPolicy implements Processor {
 
   public static final String additionalInfo = "Response of SpikeEntityEventPolicy";
-  private static final String entitySearchSchema = "entitysearch_schema.json";
+  private static final String ENTITY_SEARCH_SCHEMA = "entitysearch_schema.json";
 
   private Collection<ExternalOxmModelProcessor> externalOxmModelProcessors;
 
 
-  private final String ACTION_CREATE = "create";
-  private final String EVENT_VERTEX = "vertex";
-  private final static String ACTION_DELETE = "delete";
-  private final String ACTION_UPDATE = "update";
-  private final String PROCESS_SPIKE_EVENT = "Process Spike Event";
-  private final String OPERATION_KEY = "operation";
+  private static final String ACTION_CREATE = "create";
+  private static final String EVENT_VERTEX = "vertex";
+  private static final String ACTION_DELETE = "delete";
+  private static final String ACTION_UPDATE = "update";
+  private static final String PROCESS_SPIKE_EVENT = "Process Spike Event";
+  private static final String OPERATION_KEY = "operation";
 
 
-  private final List<String> SUPPORTED_ACTIONS =
+  private static final List<String> SUPPORTED_ACTIONS =
       Arrays.asList(ACTION_CREATE, ACTION_UPDATE, ACTION_DELETE);
 
   Map<String, DynamicJAXBContext> oxmVersionContextMap = new HashMap<>();
@@ -86,7 +86,6 @@ public class SpikeEntityEventPolicy implements Processor {
   /** Agent for communicating with the Search Service. */
   private SearchServiceAgent searchAgent = null;
   private String entitySearchIndex;
-  private String srcDomain;
 
   private Logger logger;
   private Logger metricsLogger;
@@ -101,7 +100,7 @@ public class SpikeEntityEventPolicy implements Processor {
     metricsLogger = loggerFactoryInstance.getMetricsLogger(SpikeEntityEventPolicy.class.getName());
 
 
-    srcDomain = config.getSourceDomain();
+    //srcDomain = config.getSourceDomain();
 
     // Populate the index names.
     entitySearchIndex = config.getSearchEntitySearchIndex();
@@ -145,7 +144,7 @@ public class SpikeEntityEventPolicy implements Processor {
   public void startup() {
 
     // Create the indexes in the search service if they do not already exist.
-    searchAgent.createSearchIndex(entitySearchIndex, entitySearchSchema);
+    searchAgent.createSearchIndex(entitySearchIndex, ENTITY_SEARCH_SCHEMA);
     logger.info(EntityEventPolicyMsgs.ENTITY_EVENT_POLICY_REGISTERED);
   }
 
@@ -441,7 +440,7 @@ public class SpikeEntityEventPolicy implements Processor {
     return "";
   }
 
-  private String lookupValueUsingKey(String payload, String key) throws JSONException {
+  private String lookupValueUsingKey(String payload, String key) {
     JsonNode jsonNode = convertToJsonNode(payload);
     return RouterServiceUtil.recursivelyLookupJsonPayload(jsonNode, key);
   }
@@ -537,8 +536,6 @@ public class SpikeEntityEventPolicy implements Processor {
         primaryKeyValues.add(pkeyValue);
         primaryKeyNames.add(keyName);
       } else {
-        // logger.warn("getPopulatedDocument(), pKeyValue is null for entityType = " +
-        // resultDescriptor.getEntityName());
         logger.error(EntityEventPolicyMsgs.PRIMARY_KEY_NULL_FOR_ENTITY_TYPE,
             resultDescriptor.getEntityName());
       }
index f74e742..d319c48 100644 (file)
@@ -32,32 +32,33 @@ import com.google.gson.JsonParser;
 
 public class ChameleonResponseBuiler  {
 
-  public static void buildEntity(Exchange exchange, String ID){
+  private static final String SOURCE = "source";
+  private static final String TARGET = "target";
+  private static final String TYPE = "type";
+
+  public static void buildEntity(Exchange exchange, String id){
     String response = exchange.getIn().getBody().toString();
     JsonParser parser = new JsonParser();
     JsonObject root = parser.parse(response).getAsJsonObject();
     JsonObject champResponse = new JsonObject();
-    if (!root.has("type")) {
+    if (!root.has(TYPE)) {
       exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 400);
       return ;
     }
-    champResponse.addProperty("key", ID);
-    champResponse.addProperty("type", root.get("type").getAsString());
-    if (root.has("source")) {
-      champResponse.add("source", root.get("source"));
+    champResponse.addProperty("key", id);
+    champResponse.addProperty(TYPE, root.get(TYPE).getAsString());
+    if (root.has(SOURCE)) {
+      champResponse.add(SOURCE, root.get(SOURCE));
     }
-    if (root.has("target")) {
-      champResponse.add("target", root.get("target"));
+    if (root.has(TARGET)) {
+      champResponse.add(TARGET, root.get(TARGET));
     }
 
     JsonObject props = new JsonObject();
     List<Map.Entry<String, JsonElement>> entries = new ArrayList<Map.Entry<String, JsonElement>>(
         root.getAsJsonObject().entrySet());
     for (Map.Entry<String, JsonElement> e : entries) {
-      if (!e.getKey().equals("type") && !e.getKey().equals("source") && !e.getKey().equals("target")) {
-        if (e.getKey().equals("source")) {
-
-        }
+      if (!TYPE.equals(e.getKey()) && !SOURCE.equals(e.getKey()) && !TARGET.equals(e.getKey())) {
         props.addProperty(e.getKey(), e.getValue().getAsString());
       }
 
@@ -70,7 +71,7 @@ public class ChameleonResponseBuiler  {
   }
   
  
-  public static void buildObjectRelationship(Exchange exchange, String ID){
+  public static void buildObjectRelationship(Exchange exchange, String id){
     //TODO: implement when chameleon supports this query     
   }
   public static void buildCollection(Exchange exchange){
index 4ff658b..8192935 100644 (file)
@@ -44,6 +44,8 @@ public class EchoService {
   private static Logger logger = LoggerFactory.getInstance().getLogger(EchoService.class.getName());
   private static Logger auditLogger =
       LoggerFactory.getInstance().getAuditLogger(EchoService.class.getName());
+  private static final String XFROMAPPID = "X-FromAppId";
+  private static final String XTRANSACTIONID = "X-TransactionId";
 
   @GET
   @Path("echo/{input}")
@@ -55,15 +57,15 @@ public class EchoService {
     String fromAppId = "";
     String transId;
 
-    if (headers.getRequestHeaders().getFirst("X-FromAppId") != null) {
-      fromAppId = headers.getRequestHeaders().getFirst("X-FromAppId");
+    if (headers.getRequestHeaders().getFirst(XFROMAPPID) != null) {
+      fromAppId = headers.getRequestHeaders().getFirst(XFROMAPPID);
     }
 
-    if ((headers.getRequestHeaders().getFirst("X-TransactionId") == null)
-        || headers.getRequestHeaders().getFirst("X-TransactionId").isEmpty()) {
+    if ((headers.getRequestHeaders().getFirst(XTRANSACTIONID) == null)
+        || headers.getRequestHeaders().getFirst(XTRANSACTIONID).isEmpty()) {
       transId = java.util.UUID.randomUUID().toString();
     } else {
-      transId = headers.getRequestHeaders().getFirst("X-TransactionId");
+      transId = headers.getRequestHeaders().getFirst(XTRANSACTIONID);
     }
 
     MdcContext.initialize(transId, DataRouterConstants.DATA_ROUTER_SERVICE_NAME, "", fromAppId,
@@ -83,9 +85,7 @@ public class EchoService {
     auditLogger.info(DataRouterMsgs.PROCESS_REST_REQUEST,
         new LogFields().setField(LogLine.DefinedFields.RESPONSE_CODE, status)
             .setField(LogLine.DefinedFields.RESPONSE_DESCRIPTION, respStatusString),
-        (req != null) ? req.getMethod() : "Unknown",
-        (req != null) ? req.getRequestURL().toString() : "Unknown",
-        (req != null) ? req.getRemoteHost() : "Unknown", Integer.toString(status));
+        req.getMethod(), req.getRequestURL().toString(), req.getRemoteHost(), Integer.toString(status));
     MDC.clear();
 
     return "Hello, " + input + ".";