aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/devicemanager-openroadm/provider/src/main
diff options
context:
space:
mode:
authorMichael DÜrre <michael.duerre@highstreet-technologies.com>2021-04-08 06:34:22 +0200
committerMichael DÜrre <michael.duerre@highstreet-technologies.com>2021-04-08 06:34:46 +0200
commitf3969004c6ccac18e742c5fc48c844e315991023 (patch)
treef5486a62e842bb16ca7d3af47a8663df08feef55 /sdnr/wt/devicemanager-openroadm/provider/src/main
parenta252be83694ae33260d99d5371ed48c1558aa2e8 (diff)
update websocketmanager
update complete notification flow Issue-ID: CCSDK-3252 Signed-off-by: Michael DÜrre <michael.duerre@highstreet-technologies.com> Change-Id: I87ba00f615707b942471fcace57bcda50ce37e61
Diffstat (limited to 'sdnr/wt/devicemanager-openroadm/provider/src/main')
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java19
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java13
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java24
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java63
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java9
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java88
6 files changed, 118 insertions, 98 deletions
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java
index a138dfbd8..3af6d7aca 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java
@@ -23,7 +23,9 @@ package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
import java.util.List;
import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
+import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.IetfNetconfNotificationsListener;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfConfigChange;
@@ -50,12 +52,15 @@ public class OpenroadmChangeNotificationListener implements IetfNetconfNotificat
private static final Logger log = LoggerFactory.getLogger(OpenroadmChangeNotificationListener.class);
private final NetconfAccessor netconfAccessor;
private final DataProvider databaseService;
+ private final WebsocketManagerService notificationServiceService;
// end of variables
// constructors
- public OpenroadmChangeNotificationListener(NetconfAccessor netconfAccessor, DataProvider databaseService) {
+ public OpenroadmChangeNotificationListener(NetconfAccessor netconfAccessor, DataProvider databaseService,
+ WebsocketManagerService notificationService) {
this.netconfAccessor = netconfAccessor;
this.databaseService = databaseService;
+ this.notificationServiceService = notificationService;
}
// end of constructors
@@ -63,21 +68,30 @@ public class OpenroadmChangeNotificationListener implements IetfNetconfNotificat
@Override
public void onNetconfConfirmedCommit(NetconfConfirmedCommit notification) {
log.info("onNetconfConfirmedCommit {} ", notification);
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ NetconfConfirmedCommit.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp());
}
@Override
public void onNetconfSessionStart(NetconfSessionStart notification) {
log.info("onNetconfSessionStart {} ", notification);
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ NetconfSessionStart.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp());
+
}
@Override
public void onNetconfSessionEnd(NetconfSessionEnd notification) {
log.info("onNetconfSessionEnd {}", notification);
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ NetconfSessionEnd.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp());
}
@Override
public void onNetconfCapabilityChange(NetconfCapabilityChange notification) {
log.info("onNetconfCapabilityChange {}", notification);
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ NetconfCapabilityChange.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp());
}
@Override
@@ -106,6 +120,9 @@ public class OpenroadmChangeNotificationListener implements IetfNetconfNotificat
databaseService.writeEventLog(eventlogBuilder.build());
}
log.info("onNetconfConfigChange (2) {}", sb);
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ NetconfConfigChange.QNAME, NetconfTimeStampImpl.getConverter().getTimeStamp());
+
}
// end of public methods
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java
index 44c8b8d6d..daea1adb3 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java
@@ -27,6 +27,7 @@ import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.NetconfTimeStamp;
import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStampImpl;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.ChangeNotification;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.CreateTechInfoNotification;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDeviceListener;
@@ -52,13 +53,16 @@ public class OpenroadmDeviceChangeNotificationListener implements OrgOpenroadmDe
private Integer counter = 1;
private final NetconfAccessor netconfAccessor;
private final DataProvider databaseProvider;
+ private final WebsocketManagerService notificationServiceService;
private static final NetconfTimeStamp ncTimeConverter = NetconfTimeStampImpl.getConverter();
// end of variables
// constructors
- public OpenroadmDeviceChangeNotificationListener(NetconfAccessor netconfAccessor, DataProvider databaseService) {
+ public OpenroadmDeviceChangeNotificationListener(NetconfAccessor netconfAccessor, DataProvider databaseService,
+ WebsocketManagerService faultService) {
this.netconfAccessor = netconfAccessor;
this.databaseProvider = databaseService;
+ this.notificationServiceService = faultService;
}
// end of constructors
@@ -100,18 +104,23 @@ public class OpenroadmDeviceChangeNotificationListener implements OrgOpenroadmDe
log.info("onDeviceConfigChange (2) {}", sb);
counter++;
}
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ ChangeNotification.QNAME, notification.getChangeTime());
}
@Override
public void onCreateTechInfoNotification(CreateTechInfoNotification notification) {
+ DateAndTime now = NetconfTimeStampImpl.getConverter().getTimeStamp();
log.info("onCreateTechInfoNotification(1){}", notification);
EventlogBuilder eventlogBuilder = new EventlogBuilder();
eventlogBuilder.setId(notification.getShelfId()).setAttributeName(notification.getShelfId())
.setObjectId(notification.getShelfId()).setNodeId(this.netconfAccessor.getNodeId().getValue())
.setCounter(counter).setNewValue(notification.getStatus().getName()).setSourceType(SourceType.Netconf)
- .setTimestamp(new DateAndTime(ncTimeConverter.getTimeStamp()));
+ .setTimestamp(now);
databaseProvider.writeEventLog(eventlogBuilder.build());
+ this.notificationServiceService.sendNotification(notification, this.netconfAccessor.getNodeId().getValue(),
+ CreateTechInfoNotification.QNAME, now);
log.info("Create-techInfo Notification written ");
counter++;
}
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java
index 6c3ebd60a..10d0a5640 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java
@@ -25,10 +25,12 @@ package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
import org.eclipse.jdt.annotation.NonNull;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.FaultService;
+import org.onap.ccsdk.features.sdnr.wt.websocketmanager.model.WebsocketManagerService;
import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.AlarmNotification;
import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.OrgOpenroadmAlarmListener;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,36 +41,38 @@ import org.slf4j.LoggerFactory;
**/
public class OpenroadmFaultNotificationListener implements OrgOpenroadmAlarmListener {
private static final Logger log = LoggerFactory.getLogger(OpenroadmFaultNotificationListener.class);
- // variables
+
private final @NonNull FaultService faultEventListener;
+ private @NonNull WebsocketManagerService notificationService;
private Integer count = 1;
- // end of variables
- // constructors
+
+
public OpenroadmFaultNotificationListener(DeviceManagerServiceProvider serviceProvider) {
this.faultEventListener = serviceProvider.getFaultService();
+ this.notificationService = serviceProvider.getWebsocketService();
}
- // end of constructors
- // public methods
+
@Override
public void onAlarmNotification(AlarmNotification notification) {
log.info("AlarmNotification {} \t {}", notification.getId(), notification.getAdditionalDetail());
-
+ final String nodeId = notification.getResource().getDevice().getNodeId().getValue();
FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getCircuitId())
- .setProblem(notification.getProbableCause().getCause().getName())
- .setTimestamp(notification.getRaiseTime()).setId(notification.getId())
- .setNodeId(notification.getResource().getDevice().getNodeId().getValue())
+ .setProblem(notification.getProbableCause().getCause().getName()).setSourceType(SourceType.Netconf)
+ .setTimestamp(notification.getRaiseTime()).setId(notification.getId()).setNodeId(nodeId)
.setSeverity(InitialDeviceAlarmReader.checkSeverityValue(notification.getSeverity())).setCounter(count)
.build();
this.faultEventListener.faultNotification(faultAlarm);
+ this.notificationService.sendNotification(notification, nodeId, AlarmNotification.QNAME,
+ notification.getRaiseTime());
count++;
log.info("Notification is written into the database {}", faultAlarm.getObjectId());
}
- // end of public methods
+
}
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java
index bf57a3cf7..02f8547ae 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java
@@ -25,7 +25,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Hashtable;
import java.util.List;
-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.dataprovider.model.NetconfTimeStamp;
@@ -33,7 +32,6 @@ import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.NetconfTimeStamp
import org.onap.ccsdk.features.sdnr.wt.devicemanager.service.DeviceManagerServiceProvider;
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.NetconfNotifications;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.OrgOpenroadmDevice;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.circuit.packs.CircuitPacks;
@@ -44,6 +42,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.shelves.
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.xponder.XpdrPort;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
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.Inventory;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntity;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SourceType;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
@@ -77,7 +76,6 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
private PmDataBuilderOpenRoadm openRoadmPmData;
private InitialDeviceAlarmReader initialAlarmReader;
- private Optional<NetconfNotifications> notifications;
private static final NetconfTimeStamp ncTimeConverter = NetconfTimeStampImpl.getConverter();
private int counter = 1;
// end of variables
@@ -87,15 +85,15 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
super(netconfAccess, serviceProvider);
- this.notifications = netconfAccess.getNotificationAccessor();
-
log.info("Create {}", OpenroadmNetworkElement.class.getSimpleName());
this.openRdmListenerRegistrationResult = null;
- this.openRdmListener = new OpenroadmChangeNotificationListener(netconfAccessor, databaseService);
+ this.openRdmListener = new OpenroadmChangeNotificationListener(netconfAccessor, databaseService,
+ serviceProvider.getWebsocketService());
this.opnRdmFaultListenerRegistrationResult = null;
this.opnRdmFaultListener = new OpenroadmFaultNotificationListener(serviceProvider);
this.opnRdmDeviceListenerRegistrationResult = null;
- this.opnRdmDeviceListener = new OpenroadmDeviceChangeNotificationListener(netconfAccessor, databaseService);
+ this.opnRdmDeviceListener = new OpenroadmDeviceChangeNotificationListener(netconfAccessor, databaseService,
+ serviceProvider.getWebsocketService());
this.circuitPacksRecord = new Hashtable<>();
this.shelfProvisionedcircuitPacks = new Hashtable<>();
this.openRoadmPmData = new PmDataBuilderOpenRoadm(this.netconfAccessor);
@@ -112,15 +110,16 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
OrgOpenroadmDevice device = readDevice(this.netconfAccessor);
this.opnRdmInventoryInput = new OpenroadmInventoryInput(this.netconfAccessor, device);
log.info("openroadmMapper details{}", this.opnRdmInventoryInput.getClass().getName());
- databaseService.writeInventory(this.opnRdmInventoryInput.getInventoryData(Uint32.valueOf(equipmentLevel)));
-
- readShelvesData(device);
- readXpndrData(device);
- readCircuitPacketData(device);
- readInterfaceData(device);
+ List<Inventory> inventoryList = new ArrayList<>();
+ inventoryList.add(this.opnRdmInventoryInput.getInventoryData(Uint32.valueOf(equipmentLevel)));
+ readShelvesData(inventoryList, device);
+ readXpndrData(inventoryList, device);
+ readCircuitPacketData(inventoryList, device);
+ readInterfaceData(inventoryList, device);
+ this.databaseService.writeInventory(this.netconfAccessor.getNodeId().getValue(), inventoryList);
// Writing initial alarms at the time of device registration
initialAlarmReader.faultService();
-// Writing historical PM data at the time of device registration
+ // Writing historical PM data at the time of device registration
List<PmdataEntity> pmDataEntity = new ArrayList<>();
pmDataEntity = this.openRoadmPmData.buildPmDataEntity(this.openRoadmPmData.getPmData(this.netconfAccessor));
if (!pmDataEntity.isEmpty()) {
@@ -145,7 +144,7 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
this.opnRdmDeviceListenerRegistrationResult =
netconfAccessor.doRegisterNotificationListener(opnRdmDeviceListener);
// Register netconf stream
- notifications.get().registerNotificationsStream(NetconfAccessor.DefaultNotificationsStream);
+ netconfAccessor.registerNotificationsStream(NetconfAccessor.DefaultNotificationsStream);
}
@Override
@@ -164,7 +163,7 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
// end of public methods
// private methods
- private void readShelvesData(OrgOpenroadmDevice device) {
+ private void readShelvesData(List<Inventory> inventoryList, OrgOpenroadmDevice device) {
Collection<Shelves> shelves = YangHelper.getCollection(device.getShelves());
if (shelves != null) {
for (Shelves shelf : shelves) {
@@ -174,8 +173,8 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
shelf.getShelfName(), shelf.getSerialId(), shelf.getProductCode(), shelf.getShelfPosition(),
shelf.getEquipmentState(), shelf.getHardwareVersion(), shelf.getShelfType(), shelf.getVendor(),
shelf.getLifecycleState());
- databaseService.writeInventory(
- this.opnRdmInventoryInput.getShelvesInventory(shelf, Uint32.valueOf(equipmentLevel + 1)));
+ inventoryList
+ .add(this.opnRdmInventoryInput.getShelvesInventory(shelf, Uint32.valueOf(equipmentLevel + 1)));
Collection<Slots> slotList = YangHelper.getCollection(shelf.getSlots());
if (slotList != null) {
for (Slots slot : slotList) {
@@ -193,13 +192,13 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
}
- private void readXpndrData(OrgOpenroadmDevice device) {
+ private void readXpndrData(List<Inventory> inventoryList, OrgOpenroadmDevice device) {
Collection<Xponder> xponderList = YangHelper.getCollection(device.getXponder());
if (xponderList != null) {
for (Xponder xponder : xponderList) {
- databaseService.writeInventory(
+ inventoryList.add(
this.opnRdmInventoryInput.getXponderInventory(xponder, Uint32.valueOf(equipmentLevel + 1)));
log.info("Xponders: No.: {} , \n Port: {} ,\n Type: {}", xponder.getXpdrNumber(), xponder.getXpdrPort(),
xponder.getXpdrType());
@@ -216,12 +215,12 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
}
}
- private void readCircuitPacketData(OrgOpenroadmDevice device) {
+ private void readCircuitPacketData(List<Inventory> inventoryList, OrgOpenroadmDevice device) {
Collection<CircuitPacks> circuitpackCollection = YangHelper.getCollection(device.getCircuitPacks());
List<String> cpNameList = new ArrayList<>();
if (circuitpackCollection != null) {
-// collect all circuit pack names. Required to check for invalid parents later on
+ // collect all circuit pack names. Required to check for invalid parents later on
for (CircuitPacks cp : circuitpackCollection) {
cpNameList.add(cp.getCircuitPackName());
}
@@ -233,7 +232,7 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
&& !this.shelfProvisionedcircuitPacks.containsKey(cp.getCircuitPackName())) {
log.info("cp has no parent and no shelf");
this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 1));
- databaseService.writeInventory(
+ inventoryList.add(
this.opnRdmInventoryInput.getCircuitPackInventory(cp, Uint32.valueOf(equipmentLevel + 1)));
} else {
// check for missing valid parent circuit name
@@ -243,7 +242,7 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
log.info("Cp {} has slotname of the parent circuit pack but no parent circuit pack name",
cp.getCircuitPackName());
this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 3));
- databaseService.writeInventory(this.opnRdmInventoryInput.getCircuitPackInventory(cp,
+ inventoryList.add(this.opnRdmInventoryInput.getCircuitPackInventory(cp,
Uint32.valueOf(equipmentLevel + 3)));
databaseService.writeEventLog(writeIncorrectParentLog(cp.getCircuitPackName(), counter)
.setObjectId(device.getInfo().getNodeId().getValue())
@@ -254,10 +253,10 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
.containsKey(cp.getParentCircuitPack().getCircuitPackName())) {
log.info("Cp {} has parent circuit pack and shelf", cp.getCircuitPackName());
this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 3));
- databaseService.writeInventory(this.opnRdmInventoryInput.getCircuitPackInventory(cp,
+ inventoryList.add(this.opnRdmInventoryInput.getCircuitPackInventory(cp,
Uint32.valueOf(equipmentLevel + 3)));
} else {
-// check for incorrect hierarchy
+ // check for incorrect hierarchy
if (cp.getParentCircuitPack().getCircuitPackName() != null
&& !cpNameList.contains(cp.getParentCircuitPack().getCircuitPackName())) {
databaseService.writeEventLog(writeIncorrectParentLog(cp.getCircuitPackName(), counter)
@@ -267,7 +266,7 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
log.info("Cp has parent circuit pack but no shelf or a shelf but no parent circuit pack");
this.circuitPacksRecord.put(cp.getCircuitPackName(), (equipmentLevel + 2));
- databaseService.writeInventory(this.opnRdmInventoryInput.getCircuitPackInventory(cp,
+ inventoryList.add(this.opnRdmInventoryInput.getCircuitPackInventory(cp,
Uint32.valueOf(equipmentLevel + 2)));
}
@@ -277,7 +276,7 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
}
}
- private void readInterfaceData(OrgOpenroadmDevice device) {
+ private void readInterfaceData(List<Inventory> inventoryList, OrgOpenroadmDevice device) {
Collection<Interface> interfaceList = YangHelper.getCollection(device.getInterface());
if (interfaceList != null) {
for (Interface deviceInterface : interfaceList) {
@@ -290,13 +289,13 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
deviceInterface.getSupportingCircuitPackName());
if (deviceInterface.getSupportingCircuitPackName() != null) {
if (this.circuitPacksRecord.containsKey(deviceInterface.getSupportingCircuitPackName())) {
- databaseService.writeInventory(this.opnRdmInventoryInput.getInterfacesInventory(deviceInterface,
+ inventoryList.add(this.opnRdmInventoryInput.getInterfacesInventory(deviceInterface,
Uint32.valueOf(
this.circuitPacksRecord.get(deviceInterface.getSupportingCircuitPackName())
+ 1)));
}
} else {
- databaseService.writeInventory(this.opnRdmInventoryInput.getInterfacesInventory(deviceInterface,
+ inventoryList.add(this.opnRdmInventoryInput.getInterfacesInventory(deviceInterface,
Uint32.valueOf(equipmentLevel + 1)));
}
}
@@ -306,8 +305,8 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
private OrgOpenroadmDevice readDevice(NetconfBindingAccessor accessor) {
final Class<OrgOpenroadmDevice> openRoadmDev = OrgOpenroadmDevice.class;
InstanceIdentifier<OrgOpenroadmDevice> deviceId = InstanceIdentifier.builder(openRoadmDev).build();
- return accessor.getTransactionUtils().readData(accessor.getDataBroker(),
- LogicalDatastoreType.OPERATIONAL, deviceId);
+ return accessor.getTransactionUtils().readData(accessor.getDataBroker(), LogicalDatastoreType.OPERATIONAL,
+ deviceId);
}
private EventlogBuilder writeIncorrectParentLog(String attributeName, Integer counter) {
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java
index 9f69018f8..9949056bb 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElementBase.java
@@ -32,19 +32,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
public class OpenroadmNetworkElementBase implements NetworkElement {
- // variables
+
protected final NetconfBindingAccessor netconfAccessor;
protected final DataProvider databaseService;
- // end of variables
- // constructors
+
public OpenroadmNetworkElementBase(NetconfBindingAccessor netconfAccess,
DeviceManagerServiceProvider serviceProvider) {
this.netconfAccessor = netconfAccess;
this.databaseService = serviceProvider.getDataProvider();
}
- // end of constructors
- //public methods
+
@Override
public void register() {}
@@ -73,5 +71,4 @@ public class OpenroadmNetworkElementBase implements NetworkElement {
public Optional<NetconfAccessor> getAcessor() {
return Optional.of(netconfAccessor);
}
- // end of public methods
}
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java
index 7665e81d8..f1fd4471f 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/PmDataBuilderOpenRoadm.java
@@ -71,17 +71,17 @@ public class PmDataBuilderOpenRoadm {
private static final Logger log = LoggerFactory.getLogger(PmDataBuilderOpenRoadm.class);
private PmdataEntityBuilder pmDataBuilder;
private Bundle b = FrameworkUtil.getBundle(this.getClass());
- // end of variables
+ // end of variables
// constructors
public PmDataBuilderOpenRoadm(NetconfBindingAccessor accessor) {
this.pmDataBuilder = new PmdataEntityBuilder();
this.pmDataBuilder.setNodeName(accessor.getNodeId().getValue());
}
- // end of constructors
+ // end of constructors
// public methods
- // Instantiate historical PM data list
+ // Read PM data
public HistoricalPmList getPmData(NetconfBindingAccessor accessor) {
final Class<HistoricalPmList> pmDataClass = HistoricalPmList.class;
log.info("Get PM data for element {}", accessor.getNodeId().getValue());
@@ -101,6 +101,7 @@ public class PmDataBuilderOpenRoadm {
Collection<HistoricalPm> historicalPmList = YangHelper.getCollection(pmDataEntry.getHistoricalPm());
for (HistoricalPm historicalPm : historicalPmList) {
log.info("PmName:{}", historicalPm.getType());
+ // pmDataBuilder.setPerformanceData(value)
try {
writeperformanceData(historicalPm);
@@ -118,11 +119,9 @@ public class PmDataBuilderOpenRoadm {
// end of public methods
// private methods
- // Build performance data of Data provider by mapping values from device
private void writeperformanceData(HistoricalPm historicalPm) throws ClassNotFoundException {
Collection<Measurement> measurementList = YangHelper.getCollection(historicalPm.getMeasurement());
- Map<MeasurementKey, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement> measurementMap =
- new HashMap<>();
+ Map<MeasurementKey, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement> measurementMap=new HashMap<>();
// Map Performance data of PmDataEntity with MeasurmentData-HistoricalPm
PerformanceDataBuilder performanceDataBuilder = new PerformanceDataBuilder();
for (Measurement measurementData : measurementList) {
@@ -131,11 +130,9 @@ public class PmDataBuilderOpenRoadm {
if (measurementData.getValidity().getName().equals("suspect")) {
this.pmDataBuilder.setSuspectIntervalFlag(true);
}
- measurementMap.put(
- new MeasurementKey(measurementBuilder(historicalPm.getType(), measurementData.getPmParameterUnit(),
- measurementData.getPmParameterValue()).getPmKey()),
- measurementBuilder(historicalPm.getType(), measurementData.getPmParameterUnit(),
- measurementData.getPmParameterValue()));
+ measurementMap.put(new MeasurementKey(measurementBuilder(historicalPm.getType(), measurementData.getPmParameterUnit(),
+ measurementData.getPmParameterValue()).getPmKey()), measurementBuilder(historicalPm.getType(), measurementData.getPmParameterUnit(),
+ measurementData.getPmParameterValue()));
}
@@ -166,42 +163,20 @@ public class PmDataBuilderOpenRoadm {
return granPeriod;
}
-
- // Build the measurement list of data provider based on various values from device
- private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement measurementBuilder(
- PmNamesEnum pmType, String pmUnit, PmDataType pmDataType) {
-
- MeasurementBuilder measBuilder = new MeasurementBuilder();
- if (pmType.getName().equals("erroredSeconds")) {
- measBuilder.setPmKey(ErroredSecond.class);
- } else if (pmType.getName().equals("severelyErroredSeconds")) {
- measBuilder.setPmKey(SeverelyErroredSecond.class);
- } else {
- for (Class<? extends PerformanceMeasurementTypeId> obj : setMeasurementTypeId()) {
- if (obj.toString().contains(pmType.name())) {
- measBuilder.setPmKey(obj);
- }
- }
- }
- measBuilder.setPmUnit(setMeasurementUnit(pmUnit));
- measBuilder.setPmValue(pmDataType);
- return measBuilder.build();
-
- }
- // Find the proper PerformanceMeasurementTypeId class based on the PmNames Enum value from device
private List<Class<? extends PerformanceMeasurementTypeId>> setMeasurementTypeId() {
String packageName =
"org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413";
String packageName1 =
"/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/data/provider/openroadm/pm/types/rev200413/";
- List<Class<? extends PerformanceMeasurementTypeId>> measTypeObjList = new ArrayList<>();
+ List<Class<? extends PerformanceMeasurementTypeId>> measTypeObjList =
+ new ArrayList<>();
URL root = Thread.currentThread().getContextClassLoader().getResource(packageName1);
log.info("path for type package: {}", root);
Enumeration<URL> results = getFileURL(b, packageName);
log.info("FOund Packages {}", results);
- if (results != null) {
+ if(results != null) {
while (results.hasMoreElements()) {
URL path = results.nextElement();
@@ -212,11 +187,11 @@ public class PmDataBuilderOpenRoadm {
}
- if (cls1 != null) {
+ if(cls1!=null) {
log.info("Class Added {}", cls1.getSimpleName());
}
- }
+ }
}
@@ -224,34 +199,53 @@ public class PmDataBuilderOpenRoadm {
return measTypeObjList;
}
- //Map matching PerformanceMeasurementUnitId class based on the string value from device
private Class<? extends PerformanceMeasurementUnitId> setMeasurementUnit(String unitName) {
- Class<? extends PerformanceMeasurementUnitId> measurementUnitClass = null;
+ Class<? extends PerformanceMeasurementUnitId> measurementUnitClass = null;
switch (unitName) {
case ("celsius"):
measurementUnitClass = Celsius.class;
break;
- case ("dB"):
+ case("dB"):
measurementUnitClass = DB.class;
break;
- case ("dBm"):
+ case("dBm"):
measurementUnitClass = DBm.class;
break;
- case ("fahrenheit"):
+ case("fahrenheit"):
measurementUnitClass = Fahrenheit.class;
break;
- case ("kHz"):
+ case("kHz"):
measurementUnitClass = KHz.class;
break;
- case ("mW"):
+ case("mW"):
measurementUnitClass = MW.class;
break;
default:
break;
}
- return measurementUnitClass;
- }
+ return measurementUnitClass;
+ }
+
+ private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement measurementBuilder(
+ PmNamesEnum pmType, String pmUnit, PmDataType pmDataType) {
+ MeasurementBuilder measBuilder = new MeasurementBuilder();
+ if (pmType.getName().equals("erroredSeconds") ) {
+ measBuilder.setPmKey(ErroredSecond.class);
+ } else if (pmType.getName().equals("severelyErroredSeconds")) {
+ measBuilder.setPmKey(SeverelyErroredSecond.class);
+ } else {
+ for (Class<? extends PerformanceMeasurementTypeId> obj : setMeasurementTypeId()) {
+ if (obj.toString().contains(pmType.name())) {
+ measBuilder.setPmKey(obj);
+ }
+ }
+ }
+ measBuilder.setPmUnit(setMeasurementUnit(pmUnit));
+ measBuilder.setPmValue(pmDataType);
+ return measBuilder.build();
+
+ }
private Class<?> loadClass(Bundle bundle, String classFilePath) {
String className = classFilePath.replaceFirst("^/", "").replace('/', '.').replaceFirst(".class$", "");