Bug fix in DMAAP listener for A1 Adapter 93/99693/1
authorSandeep Shah <sandeeplinux1068@gmail.com>
Tue, 17 Dec 2019 06:22:14 +0000 (00:22 -0600)
committerSandeep Shah <sandeeplinux1068@gmail.com>
Tue, 17 Dec 2019 06:22:14 +0000 (00:22 -0600)
Modification to use the payload node to be sent as an
RPC message to stay in alignment with YANG model for
A1 adapter

Issue-ID: CCSDK-2001
Signed-off-by: SandeepLinux <Sandeep.Shah@ibm.com>
Change-Id: I023cf27ec9ac0305f1bc23bc9762603192c09e27

dmaap-listener/src/main/java/org/onap/ccsdk/sli/northbound/dmaapclient/A1AdapterPolicyDmaapConsumer.java

index 778a77b..dd59f58 100644 (file)
@@ -34,6 +34,9 @@ public class A1AdapterPolicyDmaapConsumer extends SdncDmaapConsumerImpl {
 
     private static final String BODY = "body";
     private static final String RPC = "rpc-name";
+    private static final String INPUT = "input";
+    private static final String PAYLOAD = "Payload";
+
 
     @Override
     public void processMsg(String msg) throws InvalidMessageException {
@@ -55,13 +58,26 @@ public class A1AdapterPolicyDmaapConsumer extends SdncDmaapConsumerImpl {
             LOG.warn("Missing body in A1-ADAPTER-DMAAP message");
             return;
         }
+
+        JsonNode input = bodyNode.get(INPUT);
+        if(input == null) {
+                LOG.info("Missing input node.");
+                return;
+        }
+
+        JsonNode payloadNode = input.get(PAYLOAD);
+        if(payloadNode == null) {
+            LOG.info("Missing payload node.");
+            return;
+        }
+
         String rpcMsgbody;
         try {
                ObjectMapper mapper = new ObjectMapper();
-                rpcMsgbody = mapper.writeValueAsString(bodyNode);
+                rpcMsgbody = mapper.writeValueAsString(payloadNode);
 
         } catch (Exception e) {
-            LOG.error("Unable to parse body in A1-ADAPTER-DMAAP message", e);
+            LOG.error("Unable to parse payload in A1-ADAPTER-DMAAP message", e);
             return;
         }