aboutsummaryrefslogtreecommitdiffstats
path: root/dmaap-listener/src/main/java/org/onap/ccsdk/sli/northbound/dmaapclient/A1AdapterPolicyDmaapConsumer.java
diff options
context:
space:
mode:
authorSandeep Shah <sandeeplinux1068@gmail.com>2019-11-22 11:14:57 -0600
committerSandeep Shah <sandeeplinux1068@gmail.com>2019-11-22 11:14:57 -0600
commitfc2a8c873189ee8d46e5973176777a4dad1e353f (patch)
tree53870f1fa2b5f3e29d8a7773396bc7455f5b61a6 /dmaap-listener/src/main/java/org/onap/ccsdk/sli/northbound/dmaapclient/A1AdapterPolicyDmaapConsumer.java
parent083f91d1de09cc087e33c58476ffc301569f7841 (diff)
DMAAP Listener for ORAN A1 Adapter Policy Mgmt
Support DMAAP listener for A1 Adapter related DMAAP messages for policy management. Also included are JUNIT test files. DMAAP topic is A1-P. Issue-ID: CCSDK-1964 Signed-off-by: SandeepLinux <Sandeep.Shah@ibm.com> Change-Id: Ied78e8c14538136fede0f420804232770bcbdf3b
Diffstat (limited to 'dmaap-listener/src/main/java/org/onap/ccsdk/sli/northbound/dmaapclient/A1AdapterPolicyDmaapConsumer.java')
-rw-r--r--dmaap-listener/src/main/java/org/onap/ccsdk/sli/northbound/dmaapclient/A1AdapterPolicyDmaapConsumer.java92
1 files changed, 92 insertions, 0 deletions
diff --git a/dmaap-listener/src/main/java/org/onap/ccsdk/sli/northbound/dmaapclient/A1AdapterPolicyDmaapConsumer.java b/dmaap-listener/src/main/java/org/onap/ccsdk/sli/northbound/dmaapclient/A1AdapterPolicyDmaapConsumer.java
new file mode 100644
index 00000000..778a77b8
--- /dev/null
+++ b/dmaap-listener/src/main/java/org/onap/ccsdk/sli/northbound/dmaapclient/A1AdapterPolicyDmaapConsumer.java
@@ -0,0 +1,92 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * Modifications Copyright © 2019 IBM.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.ccsdk.sli.northbound.dmaapclient;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class A1AdapterPolicyDmaapConsumer extends SdncDmaapConsumerImpl {
+
+ private static final Logger LOG = LoggerFactory.getLogger(A1AdapterPolicyDmaapConsumer.class);
+
+ private static final String BODY = "body";
+ private static final String RPC = "rpc-name";
+
+ @Override
+ public void processMsg(String msg) throws InvalidMessageException {
+
+ if (msg == null) {
+ throw new InvalidMessageException("Null A1-ADAPTER-DMAAP message");
+ }
+
+ ObjectMapper oMapper = new ObjectMapper();
+ JsonNode a1AdapterRootNode;
+ try {
+ a1AdapterRootNode = oMapper.readTree(msg);
+ } catch (Exception e) {
+ throw new InvalidMessageException("Cannot parse A1-ADAPTER-DMAAP json input", e);
+ }
+
+ JsonNode bodyNode = a1AdapterRootNode.get(BODY);
+ if(bodyNode == null) {
+ LOG.warn("Missing body in A1-ADAPTER-DMAAP message");
+ return;
+ }
+ String rpcMsgbody;
+ try {
+ ObjectMapper mapper = new ObjectMapper();
+ rpcMsgbody = mapper.writeValueAsString(bodyNode);
+
+ } catch (Exception e) {
+ LOG.error("Unable to parse body in A1-ADAPTER-DMAAP message", e);
+ return;
+ }
+
+ JsonNode rpcNode = a1AdapterRootNode.get(RPC);
+ if(rpcNode == null) {
+ LOG.warn("Missing node in A1-ADAPTER-DMAAP message- " + RPC);
+ return;
+ }
+ String rpc = rpcNode.textValue();
+ String sdncEndpoint = "A1-ADAPTER-API:" + rpc;
+
+ try {
+ String odlUrlBase = getProperty("sdnc.odl.url-base");
+ String odlUser = getProperty("sdnc.odl.user");
+ String odlPassword = getProperty("sdnc.odl.password");
+ LOG.info("POST A1-ADAPTER-API Request " + rpcMsgbody);
+ if ((odlUrlBase != null) && (odlUrlBase.length() > 0)) {
+ SdncOdlConnection conn = SdncOdlConnection.newInstance(odlUrlBase + "/" + sdncEndpoint, odlUser, odlPassword);
+
+ conn.send("POST", "application/json", rpcMsgbody);
+ } else {
+ LOG.warn("Unable to POST A1-ADAPTER-API message. SDNC URL not available. body:\n" + rpcMsgbody);
+ }
+ } catch (Exception e) {
+ LOG.error("Unable to process message", e);
+ }
+ }
+}