Modify ANR Payload aligned to A1 schema in SDNR
[dcaegen2/services/son-handler.git] / src / main / java / org / onap / dcaegen2 / services / sonhms / PmNotificationHandler.java
index a1127fe..ce50090 100644 (file)
@@ -32,12 +32,14 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
+import org.onap.dcaegen2.services.sonhms.Configuration;
 import org.onap.dcaegen2.services.sonhms.child.ChildThreadUtils;
 import org.onap.dcaegen2.services.sonhms.child.PnfUtils;
 import org.onap.dcaegen2.services.sonhms.dao.HandOverMetricsRepository;
 import org.onap.dcaegen2.services.sonhms.dmaap.PolicyDmaapClient;
 import org.onap.dcaegen2.services.sonhms.entity.HandOverMetrics;
 import org.onap.dcaegen2.services.sonhms.model.AdditionalMeasurements;
+import org.onap.dcaegen2.services.sonhms.model.A1Payload;
 import org.onap.dcaegen2.services.sonhms.model.ANRPayload;
 import org.onap.dcaegen2.services.sonhms.model.CellConfig;
 import org.onap.dcaegen2.services.sonhms.model.Common;
@@ -46,6 +48,7 @@ import org.onap.dcaegen2.services.sonhms.model.Data;
 import org.onap.dcaegen2.services.sonhms.model.FapService;
 import org.onap.dcaegen2.services.sonhms.model.Flag;
 import org.onap.dcaegen2.services.sonhms.model.HoDetails;
+import org.onap.dcaegen2.services.sonhms.model.Input;
 import org.onap.dcaegen2.services.sonhms.model.Lte;
 import org.onap.dcaegen2.services.sonhms.model.LteCell;
 import org.onap.dcaegen2.services.sonhms.model.NeighborListInUse;
@@ -65,6 +68,7 @@ public class PmNotificationHandler {
 
     private static Logger log = LoggerFactory.getLogger(PmNotificationHandler.class);
     PolicyDmaapClient policyDmaapClient;
+    Configuration configuration = Configuration.getInstance();
 
     public PmNotificationHandler() {
 
@@ -108,7 +112,7 @@ public class PmNotificationHandler {
                     .getAdditionalMeasurements()) {
                 int attemptsCount = Integer.parseInt(additionalMeasurements.getHashMap().get("InterEnbOutAtt_X2HO"));
                 int successCount = Integer.parseInt(additionalMeasurements.getHashMap().get("InterEnbOutSucc_X2HO"));
-                int successRate = (int)((float) successCount / attemptsCount) * 100;
+                int successRate = (int)(((float) successCount / attemptsCount) * 100);
 
                 Neighbours neighbourCell = new Neighbours();
                 neighbourCell.setHoKpi(successRate);
@@ -158,21 +162,25 @@ public class PmNotificationHandler {
         ObjectMapper mapper = new ObjectMapper();
         try {
             mapper.setSerializationInclusion(Include.NON_NULL);
+            String nearRtricUrl = configuration.getNearRtricUrl();
             String cellId = pmNotification.getEvent().getCommonEventHeader().getSourceName();
             String pnfName = pmNotification.getEvent().getCommonEventHeader().getReportingEntityName();
             String plmnId =  pmNotification.getEvent().getMeasurementFields()
                .getAdditionalMeasurements().get(0).getHashMap().get("networkId");
-            String ric_id = CpsClient.getRicId(cellId);
-            ANRPayload payload = new ANRPayload("CreatePolicy",1,1,ric_id,
-                    (new PolicyData(pnfName,plmnId,cellId,neighbourList)));
-            log.info("payload : {}", payload);
+            UUID uuid = UUID.randomUUID();
+
+            A1Payload payload = new A1Payload(new Input(nearRtricUrl,
+                                       new ANRPayload(uuid.toString(),"ANR","a1-terminator",
+                                       new PolicyData(pnfName,plmnId,cellId,neighbourList),"",false,"")));
+
             String anrUpdateString = mapper.writeValueAsString(payload);
+            log.info("After converting A1Paylod to String: " + anrUpdateString);
             ChildThreadUtils childUtils = new ChildThreadUtils(ConfigPolicy.getInstance(), new PnfUtils(),
                     new PolicyDmaapClient(new DmaapUtils(), Configuration.getInstance()), new HoMetricsComponent());
             String requestId = UUID.randomUUID().toString();
             String notification = childUtils.getNotificationString(
                     pmNotification.getEvent().getCommonEventHeader().getReportingEntityName(), requestId,
-                    anrUpdateString, System.currentTimeMillis(), "ModifyA1Policy");
+                    anrUpdateString, System.currentTimeMillis(), "putA1Policy");
             log.info("Policy Notification: {}", notification);
             Boolean result = policyDmaapClient.sendNotificationToPolicy(notification);
             log.info("send notification to policy result {} ", result);
@@ -201,3 +209,4 @@ public class PmNotificationHandler {
         return true;
     }
 }
+