update websocketmanager
[ccsdk/features.git] / sdnr / wt / devicemanager-onf / provider / src / main / java / org / onap / ccsdk / features / sdnr / wt / devicemanager / onf / ifpac / microwave / WrapperMicrowaveModelRev170324.java
index 891aa3d..6b32180 100644 (file)
@@ -21,9 +21,10 @@ package org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
-import java.util.List;
+import java.util.Collection;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
+import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.ifpac.microwave.pm.PerformanceDataAirInterface170324Builder;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.notifications.NotificationWorker;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.onf.util.ONFLayerProtocolName;
@@ -32,8 +33,9 @@ import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.PerformanceDataLtp;
-import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.TransactionUtils;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.UniversalId;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
@@ -70,8 +72,11 @@ import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.r
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.hybrid.mw.structure.pac.HybridMwStructureCurrentProblems;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.pure.ethernet.structure.pac.PureEthernetStructureCurrentProblems;
 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.mw.tdm.container.pac.TdmContainerCurrentProblems;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.EventlogBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.NotificationListener;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -87,21 +92,24 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
 
 
     private final NotificationService microwaveModelListener;
-    private final NetconfAccessor acessor;
+    private final NetconfBindingAccessor acessor;
     private final TransactionUtils genericTransactionUtils;
     private final FaultService faultService;
 
     private Optional<NotificationWorker<EventlogEntity>> notificationQueue;
 
+    private final WebsocketManagerService notificationService;
+
     /**
      * @param acessor to access device
      */
-    public WrapperMicrowaveModelRev170324(@NonNull NetconfAccessor acessor,
+    public WrapperMicrowaveModelRev170324(@NonNull NetconfBindingAccessor acessor,
             @NonNull DeviceManagerServiceProvider serviceProvider) {
         this.acessor = acessor;
         this.genericTransactionUtils = acessor.getTransactionUtils();
         this.microwaveModelListener = serviceProvider.getNotificationService();
         this.faultService = serviceProvider.getFaultService();
+        this.notificationService = serviceProvider.getWebsocketService();
         this.notificationQueue = Optional.empty();
     }
 
@@ -200,6 +208,8 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
         if (notification != null) {
             microwaveModelListener.creationNotification(acessor.getNodeId(), notification.getCounter(),
                     notification.getTimeStamp(), Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue());
+            notificationService.sendNotification(notification, acessor.getNodeId().getValue(),
+                    ObjectCreationNotification.QNAME, notification.getTimeStamp());
         }
     }
 
@@ -209,6 +219,8 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
         if (notification != null) {
             microwaveModelListener.deletionNotification(acessor.getNodeId(), notification.getCounter(),
                     notification.getTimeStamp(), Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue());
+            notificationService.sendNotification(notification, acessor.getNodeId().getValue(),
+                    ObjectDeletionNotification.QNAME, notification.getTimeStamp());
         }
     }
 
@@ -220,6 +232,8 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
                 .setObjectId(Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue())
                 .setAttributeName(notification.getAttributeName()).setNewValue(notification.getNewValue()).build();
         microwaveModelListener.eventNotification(beventlogEntity);
+        notificationService.sendNotification(notification, acessor.getNodeId().getValue(),
+                AttributeValueChangedNotification.QNAME, notification.getTimeStamp());
         if (notificationQueue.isPresent()) {
             notificationQueue.get().put(beventlogEntity);
         }
@@ -229,10 +243,15 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
     public void onProblemNotification(ProblemNotification notification) {
 
         LOG.debug("Got event of type :: {}", ProblemNotification.class.getSimpleName());
-
-        faultService.faultNotification(acessor.getNodeId(), notification.getCounter(), notification.getTimeStamp(),
-                Helper.nnGetUniversalId(notification.getObjectIdRef()).getValue(), notification.getProblem(),
-                mapSeverity(notification.getSeverity()));
+        FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getObjectIdRef().getValue())
+                .setProblem(notification.getProblem()).setSourceType(SourceType.Netconf)
+                .setTimestamp(notification.getTimeStamp())
+                .setNodeId(this.acessor.getNodeId().getValue())
+                .setSeverity(mapSeverity(notification.getSeverity())).setCounter(notification.getCounter())
+                .build();
+        faultService.faultNotification(faultAlarm);
+        notificationService.sendNotification(notification, acessor.getNodeId().getValue(), ProblemNotification.QNAME,
+                notification.getTimeStamp());
     }
 
     /*-----------------------------------------------------------------------------
@@ -265,7 +284,8 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
         if (problems == null) {
             LOG.debug("DBRead Id {} no AirInterfaceCurrentProblems", interfacePacUuid);
         } else {
-            for (AirInterfaceCurrentProblemTypeG problem : problems.nonnullCurrentProblemList()) {
+            for (AirInterfaceCurrentProblemTypeG problem : YangHelper
+                    .getCollection(problems.nonnullCurrentProblemList())) {
                 resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
                         interfacePacUuid.getValue(), problem.getProblemName(),
                         mapSeverity(problem.getProblemSeverity()));
@@ -298,7 +318,8 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
         if (problems == null) {
             LOG.debug("DBRead Id {} no EthernetContainerCurrentProblems", interfacePacUuid);
         } else {
-            for (ContainerCurrentProblemTypeG problem : problems.nonnullCurrentProblemList()) {
+            for (ContainerCurrentProblemTypeG problem : YangHelper
+                    .getCollection(problems.nonnullCurrentProblemList())) {
                 resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
                         interfacePacUuid.getValue(), problem.getProblemName(),
                         mapSeverity(problem.getProblemSeverity()));
@@ -330,7 +351,8 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
         if (problems == null) {
             LOG.debug("DBRead Id {} no AirInterfaceDiversityCurrentProblems", interfacePacUuid);
         } else {
-            for (AirInterfaceDiversityCurrentProblemTypeG problem : problems.nonnullCurrentProblemList()) {
+            for (AirInterfaceDiversityCurrentProblemTypeG problem : YangHelper
+                    .getCollection(problems.nonnullCurrentProblemList())) {
                 resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
                         interfacePacUuid.getValue(), problem.getProblemName(),
                         mapSeverity(problem.getProblemSeverity()));
@@ -362,7 +384,8 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
         if (problems == null) {
             LOG.debug("DBRead Id {} no PureEthernetStructureCurrentProblems", interfacePacUuid);
         } else {
-            for (StructureCurrentProblemTypeG problem : problems.nonnullCurrentProblemList()) {
+            for (StructureCurrentProblemTypeG problem : YangHelper
+                    .getCollection(problems.nonnullCurrentProblemList())) {
                 resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
                         interfacePacUuid.getValue(), problem.getProblemName(),
                         mapSeverity(problem.getProblemSeverity()));
@@ -394,7 +417,8 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
         if (problems == null) {
             LOG.debug("DBRead Id {} no HybridMwStructureCurrentProblems", interfacePacUuid);
         } else {
-            for (StructureCurrentProblemTypeG problem : problems.nonnullCurrentProblemList()) {
+            for (StructureCurrentProblemTypeG problem : YangHelper
+                    .getCollection(problems.nonnullCurrentProblemList())) {
                 resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
                         interfacePacUuid.getValue(), problem.getProblemName(),
                         mapSeverity(problem.getProblemSeverity()));
@@ -439,7 +463,8 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
                 LOG.debug("DBRead Id {} no TdmContainerCurrentProblems", interfacePacUuid);
             } else {
                 // -- Specific part 3
-                for (ContainerCurrentProblemTypeG problem : problems.nonnullCurrentProblemList()) {
+                for (ContainerCurrentProblemTypeG problem : YangHelper
+                        .getCollection(problems.nonnullCurrentProblemList())) {
                     resultList.add(acessor.getNodeId(), problem.getSequenceNumber(), problem.getTimeStamp(),
                             interfacePacUuid.getValue(), problem.getProblemName(),
                             mapSeverity(problem.getProblemSeverity()));
@@ -454,7 +479,7 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
 
     /**
      * Read and add performance data
-     * 
+     *
      * @param lp to read from
      * @param result Object to be filled with data
      * @return result
@@ -489,12 +514,11 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
                         mwAirInterfacePacuuId);
             } else {
                 // org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170320.air._interface.historical.performances.g.HistoricalPerformanceDataList
-                List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
-                        airHistoricalPerformanceData.nonnullHistoricalPerformanceDataList();
+                Collection<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.air._interface.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+                        YangHelper.getCollection(airHistoricalPerformanceData.nonnullHistoricalPerformanceDataList());
                 LOG.debug("DBRead MWAirInterfacePac Id {} Records intermediate: {}", mwAirInterfacePacuuId,
                         airHistPMList.size());
-                for (AirInterfaceHistoricalPerformanceTypeG pmRecord : airHistoricalPerformanceData
-                        .nonnullHistoricalPerformanceDataList()) {
+                for (AirInterfaceHistoricalPerformanceTypeG pmRecord : airHistPMList) {
                     result.add(new PerformanceDataAirInterface170324Builder(acessor.getNodeId(), lp, pmRecord,
                             airConfiguration));
                 }
@@ -525,8 +549,9 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
         if (ethContainerHistoricalPerformanceData == null) {
             LOG.debug("DBRead {} Id {} no HistoricalPerformances", myName, ethContainerPacuuId);
         } else {
-            List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
-                    ethContainerHistoricalPerformanceData.nonnullHistoricalPerformanceDataList();
+            Collection<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev170324.ethernet.container.historical.performances.g.HistoricalPerformanceDataList> airHistPMList =
+                    YangHelper.getCollection(
+                            ethContainerHistoricalPerformanceData.nonnullHistoricalPerformanceDataList());
             LOG.debug("DBRead {} Id {} Records intermediate: {}", myName, ethContainerPacuuId, airHistPMList.size());
             for (ContainerHistoricalPerformanceTypeG pmRecord : airHistPMList) {
                 result.add(new PerformanceDataAirInterface170324Builder(acessor.getNodeId(), lp, pmRecord));
@@ -536,14 +561,14 @@ public class WrapperMicrowaveModelRev170324 implements OnfMicrowaveModel, Microw
         return result;
     }
 
-    private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.SeverityType mapSeverity(
+    private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType mapSeverity(
             SeverityType severity) {
 
-        Optional<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.SeverityType> res =
-                org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.SeverityType
+        Optional<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType> res =
+                org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType
                         .forName(severity.name());
         return res.orElse(
-                org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.SeverityType.NonAlarmed);
+                org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType.NonAlarmed);
     }
 
 }