Map ORAN alarm-notif to VES fault
[ccsdk/features.git] / sdnr / wt / devicemanager / provider / src / main / java / org / onap / ccsdk / features / sdnr / wt / devicemanager / impl / DeviceManagerImpl.java
index 53ba09a..689336f 100644 (file)
@@ -39,7 +39,6 @@
 package org.onap.ccsdk.features.sdnr.wt.devicemanager.impl;
 
 import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
@@ -74,15 +73,16 @@ import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.MaintenanceService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NetconfNetworkElementService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.NotificationService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.PerformanceManager;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.VESCollectorService;
 import org.onap.ccsdk.features.sdnr.wt.devicemanager.toggleAlarmFilter.DevicemanagerNotificationDelayService;
+import org.onap.ccsdk.features.sdnr.wt.devicemanager.vescollectorconnector.impl.VESCollectorServiceImpl;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfNodeStateService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.websocketmanager.rev150105.WebsocketmanagerService;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.MountPointService;
 import org.opendaylight.mdsal.binding.api.NotificationPublishService;
 import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
-import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.websocketmanager.rev150105.WebsocketmanagerService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -125,17 +125,15 @@ public class DeviceManagerImpl implements NetconfNetworkElementService, DeviceMa
     private ConnectionStatusHousekeepingService housekeepingService;
     private NetconfNodeStateService netconfNodeStateService;
     private DataProvider dataProvider;
+    private VESCollectorServiceImpl vesCollectorServiceImpl;
 
     // Handler
-    private DeviceManagerNetconfConnectHandler forTest;
+    private DeviceManagerNetconfConnectHandler deviceManagerNetconfConnectHandler;
 
     // Attributes
-    private final ConcurrentHashMap<String, NetworkElement> networkElementRepresentations;
     private final List<NetworkElementFactory> factoryList;
 
     private DeviceManagerDatabaseNotificationService deviceManagerDatabaseAndNotificationService;
-    private ClusterSingletonServiceRegistration cssRegistration;
-    private ClusterSingletonServiceRegistration cssRegistration2;
 
     ConfigurationFileRepresentation config;
     private Boolean devicemanagerInitializationOk;
@@ -145,7 +143,6 @@ public class DeviceManagerImpl implements NetconfNetworkElementService, DeviceMa
         LOG.info("Creating provider for {}", APPLICATION_NAME);
         this.devicemanagerInitializationOk = false;
         this.factoryList = new CopyOnWriteArrayList<>();
-        this.networkElementRepresentations = new ConcurrentHashMap<>();
 
         this.dataBroker = null;
         this.mountPointService = null;
@@ -211,6 +208,8 @@ public class DeviceManagerImpl implements NetconfNetworkElementService, DeviceMa
         this.dcaeProviderClient = new DcaeProviderClient(config, esConfig.getCluster(), this);
 
         this.aaiProviderClient = new AaiProviderClient(config, this);
+
+        this.vesCollectorServiceImpl = new VESCollectorServiceImpl(config);
         // EM
         String myDbKeyNameExtended = MYDBKEYNAMEBASE + "-" + esConfig.getCluster();
 
@@ -223,12 +222,10 @@ public class DeviceManagerImpl implements NetconfNetworkElementService, DeviceMa
                 new RpcPushNotificationsHandler(webSocketService, dataProvider, aotsDcaeForwarder);
         this.odlEventListenerHandler =
                 new ODLEventListenerHandler(myDbKeyNameExtended, webSocketService, dataProvider, aotsDcaeForwarder);
-        this.archiveCleanService = new ArchiveCleanService(iEntityDataProvider.getEsConfig(), dataProvider);
-        this.housekeepingService = new ConnectionStatusHousekeepingService(this.dataBroker, dataProvider);
-        this.cssRegistration =
-                this.clusterSingletonServiceProvider.registerClusterSingletonService(this.archiveCleanService);
-        this.cssRegistration2 =
-                this.clusterSingletonServiceProvider.registerClusterSingletonService(this.housekeepingService);
+        this.archiveCleanService = new ArchiveCleanService(iEntityDataProvider.getEsConfig(),
+                clusterSingletonServiceProvider, dataProvider);
+        this.housekeepingService = new ConnectionStatusHousekeepingService(config, clusterSingletonServiceProvider,
+                this.dataBroker, dataProvider);
         // PM
         this.performanceManager = new PerformanceManagerImpl(60, this, dataProvider, config);
         // DM
@@ -251,8 +248,8 @@ public class DeviceManagerImpl implements NetconfNetworkElementService, DeviceMa
 
         // service
         LOG.debug("start NetconfSubscriptionManager Service");
-        this.forTest = new DeviceManagerNetconfConnectHandler(netconfNodeStateService, odlEventListenerHandler,
-                deviceMonitor, this, factoryList);
+        this.deviceManagerNetconfConnectHandler = new DeviceManagerNetconfConnectHandler(netconfNodeStateService,
+                clusterSingletonServiceProvider, odlEventListenerHandler, deviceMonitor, this, factoryList);
 
         writeToEventLog(APPLICATION_NAME, "startup", "done");
         this.devicemanagerInitializationOk = true;
@@ -275,14 +272,14 @@ public class DeviceManagerImpl implements NetconfNetworkElementService, DeviceMa
         close(notificationDelayService);
         close(archiveCleanService);
         close(housekeepingService);
-        close(forTest);
-        close(cssRegistration, cssRegistration2);
+        close(deviceManagerNetconfConnectHandler);
+        close(vesCollectorServiceImpl);
         LOG.info("DeviceManagerImpl closing done");
     }
 
     @Override
-    public @NonNull <L extends NetworkElementFactory> FactoryRegistration<L> registerNetworkElementFactory(
-            @NonNull L factory) {
+    public @NonNull <L extends NetworkElementFactory> FactoryRegistration<L> registerBindingNetworkElementFactory(
+            @NonNull final L factory) {
         LOG.info("Factory registration {}", factory.getClass().getName());
 
         factoryList.add(factory);
@@ -359,7 +356,7 @@ public class DeviceManagerImpl implements NetconfNetworkElementService, DeviceMa
 
     /**
      * Used to close all Services, that should support AutoCloseable Pattern
-     * 
+     *
      * @param toClose
      */
     private void close(AutoCloseable... toCloseList) {
@@ -393,7 +390,7 @@ public class DeviceManagerImpl implements NetconfNetworkElementService, DeviceMa
 
     /**
      * Indication if init() of devicemanager successfully done.
-     * 
+     *
      * @return true if init() was sucessfull. False if not done or not successfull.
      */
     public boolean isDevicemanagerInitializationOk() {
@@ -402,13 +399,13 @@ public class DeviceManagerImpl implements NetconfNetworkElementService, DeviceMa
 
     /**
      * Get NE object. Used by DCAE Service
-     * 
+     *
      * @param mountpoint mount point name
      * @return null or NE specific data
      */
-    public @Nullable NetworkElement getNeByMountpoint(String mountpoint) {
+    public @Nullable NetworkElement getConnectedNeByMountpoint(String mountpoint) {
 
-        return networkElementRepresentations.get(mountpoint);
+        return this.deviceManagerNetconfConnectHandler.getConnectedNeByMountpoint(mountpoint);
 
     }
 
@@ -417,5 +414,9 @@ public class DeviceManagerImpl implements NetconfNetworkElementService, DeviceMa
         this.odlEventListenerHandler.writeEventLog(objectId, msg, value);
     }
 
+    @Override
+    public @NonNull VESCollectorService getVESCollectorService() {
+        return this.vesCollectorServiceImpl;
+    }
 
 }