aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org
diff options
context:
space:
mode:
authorshabs2020 <shabnam.sultana@highstreet-technologies.com>2021-02-15 15:46:16 +0100
committershabs2020 <shabnam.sultana@highstreet-technologies.com>2021-02-15 15:47:06 +0100
commitdb20d36689c011333ed7216b64d3e987e473f1ee (patch)
treede9fcfc93a213ba298582fb59d6829e319ffc2b0 /sdnr/wt/devicemanager-openroadm/provider/src/main/java/org
parentc45ad37bca0b11e641f7d49ca39df15044db3b82 (diff)
Add Unit Tests for device manager openroadm
Add Unit Tests and remove feasible code smells for device manager openroadm Issue-ID: CCSDK-3165 Signed-off-by: shabs2020 <shabnam.sultana@highstreet-technologies.com> Change-Id: I039761d94feb8c83940c04dd3c737baf0a267ff7
Diffstat (limited to 'sdnr/wt/devicemanager-openroadm/provider/src/main/java/org')
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java40
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmChangeNotificationListener.java39
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmDeviceChangeNotificationListener.java5
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmFaultNotificationListener.java58
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java5
-rw-r--r--sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmNetworkElement.java46
-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.java167
8 files changed, 150 insertions, 219 deletions
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java
index ccada31bc..6c8837327 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/InitialDeviceAlarmReader.java
@@ -32,7 +32,6 @@ import org.onap.ccsdk.features.sdnr.wt.devicemanager.types.FaultData;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.ActiveAlarmList;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.OrgOpenroadmAlarmListener;
import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.Severity;
import org.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.active.alarm.list.ActiveAlarms;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Faultlog;
@@ -51,7 +50,7 @@ import org.slf4j.LoggerFactory;
public class InitialDeviceAlarmReader {
// variables
private Integer count = 1;
- private static final Logger log = LoggerFactory.getLogger(OrgOpenroadmAlarmListener.class);
+ private static final Logger log = LoggerFactory.getLogger(InitialDeviceAlarmReader.class);
private final NetconfBindingAccessor netConfAccesor;
private final @NonNull FaultService faultEventListener;
private final DataProvider dataProvider;
@@ -100,25 +99,8 @@ public class InitialDeviceAlarmReader {
this.faultEventListener.initCurrentProblemStatus(this.netConfAccesor.getNodeId(), writeFaultData());
writeAlarmLog(writeFaultData());
}
- // end of protected methods
-
- // private methods
-
- // Read Alarm Data
- private ActiveAlarmList getActiveAlarmList(NetconfBindingAccessor accessor) {
- final Class<ActiveAlarmList> classAlarm = ActiveAlarmList.class;
- log.info("Get Alarm data for element {}", accessor.getNodeId().getValue());
- InstanceIdentifier<ActiveAlarmList> alarmDataIid = InstanceIdentifier.builder(classAlarm).build();
-
- ActiveAlarmList alarmData = accessor.getTransactionUtils().readData(accessor.getDataBroker(),
- LogicalDatastoreType.OPERATIONAL, alarmDataIid);
-
- log.info("AlarmData {}", alarmData.toString());
- return alarmData;
- }
-
// Mapping Severity of AlarmNotification to SeverityType of FaultLog
- private SeverityType checkSeverityValue(Severity severity) {
+ protected static SeverityType checkSeverityValue(Severity severity) {
SeverityType severityType = null;
log.info("Device Severity: {}", severity.getName());
@@ -149,6 +131,24 @@ public class InitialDeviceAlarmReader {
return severityType;
}
+ // end of protected methods
+
+ // private methods
+
+ // Read Alarm Data
+ private ActiveAlarmList getActiveAlarmList(NetconfBindingAccessor accessor) {
+ final Class<ActiveAlarmList> classAlarm = ActiveAlarmList.class;
+ log.info("Get Alarm data for element {}", accessor.getNodeId().getValue());
+ InstanceIdentifier<ActiveAlarmList> alarmDataIid = InstanceIdentifier.builder(classAlarm).build();
+
+ ActiveAlarmList alarmData = accessor.getTransactionUtils().readData(accessor.getDataBroker(),
+ LogicalDatastoreType.OPERATIONAL, alarmDataIid);
+
+ log.info("AlarmData {}", alarmData);
+ return alarmData;
+ }
+
+
// end of private methods
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 539fd4847..a138dfbd8 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
@@ -22,10 +22,8 @@
package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
import java.util.List;
-import org.eclipse.jdt.annotation.NonNull;
import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.ChangeNotification;
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;
@@ -64,22 +62,22 @@ public class OpenroadmChangeNotificationListener implements IetfNetconfNotificat
// public methods
@Override
public void onNetconfConfirmedCommit(NetconfConfirmedCommit notification) {
- log.info("onNetconfConfirmedCommit ", notification);
+ log.info("onNetconfConfirmedCommit {} ", notification);
}
@Override
public void onNetconfSessionStart(NetconfSessionStart notification) {
- log.info("onNetconfSessionStart ", notification);
+ log.info("onNetconfSessionStart {} ", notification);
}
@Override
public void onNetconfSessionEnd(NetconfSessionEnd notification) {
- log.info("onNetconfSessionEnd ", notification);
+ log.info("onNetconfSessionEnd {}", notification);
}
@Override
public void onNetconfCapabilityChange(NetconfCapabilityChange notification) {
- log.info("onNetconfCapabilityChange ", notification);
+ log.info("onNetconfCapabilityChange {}", notification);
}
@Override
@@ -110,35 +108,6 @@ public class OpenroadmChangeNotificationListener implements IetfNetconfNotificat
log.info("onNetconfConfigChange (2) {}", sb);
}
- public void onDeviceConfigChange(ChangeNotification notification) {
- log.info("onDeviceConfigChange(1){}", notification);
- StringBuffer sb = new StringBuffer();
- @NonNull
- List<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.change.notification.Edit> editList =
- notification.nonnullEdit();
- for (org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev191129.change.notification.Edit edit : editList) {
- if (sb.length() > 0) {
- sb.append(", ");
- }
- sb.append(edit);
-
- EventlogBuilder eventlogBuilder = new EventlogBuilder();
-
- InstanceIdentifier<?> target = edit.getTarget();
- if (target != null) {
- eventlogBuilder.setObjectId(target.toString());
- log.info("TARGET: {} {}", target.getClass(), target.getTargetType());
- for (PathArgument pa : target.getPathArguments()) {
- log.info("PathArgument {}", pa);
- }
- }
- eventlogBuilder.setNodeId(netconfAccessor.getNodeId().getValue());
- eventlogBuilder.setNewValue(String.valueOf(edit.getOperation()));
- databaseService.writeEventLog(eventlogBuilder.build());
-
- }
- log.info("onDeviceConfigChange (2) {}", sb);
- }
// 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 a79bed706..44c8b8d6d 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,7 +27,6 @@ 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.opendaylight.yang.gen.v1.http.org.openroadm.alarm.rev191129.OrgOpenroadmAlarmListener;
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;
@@ -49,7 +48,7 @@ import org.slf4j.LoggerFactory;
public class OpenroadmDeviceChangeNotificationListener implements OrgOpenroadmDeviceListener {
// variables
- private static final Logger log = LoggerFactory.getLogger(OrgOpenroadmAlarmListener.class);
+ private static final Logger log = LoggerFactory.getLogger(OpenroadmDeviceChangeNotificationListener.class);
private Integer counter = 1;
private final NetconfAccessor netconfAccessor;
private final DataProvider databaseProvider;
@@ -105,7 +104,7 @@ public class OpenroadmDeviceChangeNotificationListener implements OrgOpenroadmDe
@Override
public void onCreateTechInfoNotification(CreateTechInfoNotification notification) {
- // TODO Auto-generated method stub
+
log.info("onCreateTechInfoNotification(1){}", notification);
EventlogBuilder eventlogBuilder = new EventlogBuilder();
eventlogBuilder.setId(notification.getShelfId()).setAttributeName(notification.getShelfId())
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 f3ff9f9bd..6c3ebd60a 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
@@ -23,16 +23,12 @@ package org.onap.ccsdk.features.sdnr.wt.devicemanager.openroadm.impl;
import org.eclipse.jdt.annotation.NonNull;
-//import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.DataProvider;
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.netconfnodestateservice.NetconfAccessor;
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.http.org.openroadm.alarm.rev191129.Severity;
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.SeverityType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,69 +38,37 @@ import org.slf4j.LoggerFactory;
* Listener for Open roadm device specific alarm notifications
**/
public class OpenroadmFaultNotificationListener implements OrgOpenroadmAlarmListener {
- private static final Logger log = LoggerFactory.getLogger(OrgOpenroadmAlarmListener.class);
- //private final NetconfAccessor accesor;
- //private final DataProvider databaseProvider;
+ private static final Logger log = LoggerFactory.getLogger(OpenroadmFaultNotificationListener.class);
+ // variables
private final @NonNull FaultService faultEventListener;
private Integer count = 1;
-
- public OpenroadmFaultNotificationListener(NetconfAccessor netConfAccessor,
- DeviceManagerServiceProvider serviceProvider) {
- //this.databaseProvider = serviceProvider.getDataProvider();
- //this.accesor = netConfAccessor;
+ // end of variables
+ // constructors
+ public OpenroadmFaultNotificationListener(DeviceManagerServiceProvider serviceProvider) {
this.faultEventListener = serviceProvider.getFaultService();
}
-
+ // end of constructors
+ // public methods
@Override
public void onAlarmNotification(AlarmNotification notification) {
+
log.info("AlarmNotification {} \t {}", notification.getId(), notification.getAdditionalDetail());
FaultlogEntity faultAlarm = new FaultlogBuilder().setObjectId(notification.getCircuitId())
.setProblem(notification.getProbableCause().getCause().getName())
.setTimestamp(notification.getRaiseTime()).setId(notification.getId())
.setNodeId(notification.getResource().getDevice().getNodeId().getValue())
- .setSeverity(checkSeverityValue(notification.getSeverity())).setCounter(count).build();
+ .setSeverity(InitialDeviceAlarmReader.checkSeverityValue(notification.getSeverity())).setCounter(count)
+ .build();
- //this.databaseProvider.writeFaultLog(faultAlarm);
this.faultEventListener.faultNotification(faultAlarm);
count++;
log.info("Notification is written into the database {}", faultAlarm.getObjectId());
}
-
- // Mapping Severity of AlarmNotification to SeverityType of FaultLog
- private SeverityType checkSeverityValue(Severity severity) {
- SeverityType severityType = null;
- log.info("Device Severity: {}", severity.getName());
-
- switch (severity.getName()) {
- case ("warning"):
- severityType = SeverityType.Warning;
- break;
- case ("major"):
- severityType = SeverityType.Major;
- break;
- case ("minor"):
- severityType = SeverityType.Minor;
- break;
- case ("clear"):
- severityType = SeverityType.NonAlarmed;
- break;
- case ("critical"):
- severityType = SeverityType.Critical;
- break;
- case ("indeterminate"):
- severityType = SeverityType.Critical;
- break;
- default:
- severityType = SeverityType.Critical;
- break;
- }
- return severityType;
-
- }
+ // end of public methods
}
diff --git a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java
index 9618ce2af..abaec72ab 100644
--- a/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java
+++ b/sdnr/wt/devicemanager-openroadm/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/openroadm/impl/OpenroadmInventoryInput.java
@@ -47,8 +47,8 @@ public class OpenroadmInventoryInput {
// end of variables
// constructors
- public OpenroadmInventoryInput(NetconfAccessor netconfAccessor, OrgOpenroadmDevice readDevice) {
- this.openRoadmDevice = readDevice;
+ public OpenroadmInventoryInput(NetconfAccessor netconfAccessor, OrgOpenroadmDevice roadmDevice) {
+ this.openRoadmDevice = roadmDevice;
this.accessor = netconfAccessor;
}
// end of constructors
@@ -56,6 +56,7 @@ public class OpenroadmInventoryInput {
// public methods
public Inventory getInventoryData(Uint32 treeLevel) {
InventoryBuilder inventoryBuilder = new InventoryBuilder();
+ log.info("Info for device {}", this.openRoadmDevice.getInfo().getNodeId().getValue());
inventoryBuilder.setNodeId(this.accessor.getNodeId().getValue())
.setUuid(this.openRoadmDevice.getInfo().getNodeId() == null ? "N/A"
: this.openRoadmDevice.getInfo().getNodeId().getValue())
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 7b45c3e42..bf57a3cf7 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
@@ -26,7 +26,6 @@ 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;
@@ -77,7 +76,7 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
private OpenroadmInventoryInput opnRdmInventoryInput;
private PmDataBuilderOpenRoadm openRoadmPmData;
private InitialDeviceAlarmReader initialAlarmReader;
- private List<PmdataEntity> pmDataEntity = new ArrayList<PmdataEntity>();
+
private Optional<NetconfNotifications> notifications;
private static final NetconfTimeStamp ncTimeConverter = NetconfTimeStampImpl.getConverter();
private int counter = 1;
@@ -87,18 +86,18 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
public OpenroadmNetworkElement(NetconfBindingAccessor netconfAccess, DeviceManagerServiceProvider serviceProvider) {
super(netconfAccess, serviceProvider);
-
+
this.notifications = netconfAccess.getNotificationAccessor();
log.info("Create {}", OpenroadmNetworkElement.class.getSimpleName());
this.openRdmListenerRegistrationResult = null;
this.openRdmListener = new OpenroadmChangeNotificationListener(netconfAccessor, databaseService);
this.opnRdmFaultListenerRegistrationResult = null;
- this.opnRdmFaultListener = new OpenroadmFaultNotificationListener(netconfAccessor, serviceProvider);
+ this.opnRdmFaultListener = new OpenroadmFaultNotificationListener(serviceProvider);
this.opnRdmDeviceListenerRegistrationResult = null;
this.opnRdmDeviceListener = new OpenroadmDeviceChangeNotificationListener(netconfAccessor, databaseService);
- this.circuitPacksRecord = new Hashtable<String, Long>();
- this.shelfProvisionedcircuitPacks = new Hashtable<String, Long>();
+ this.circuitPacksRecord = new Hashtable<>();
+ this.shelfProvisionedcircuitPacks = new Hashtable<>();
this.openRoadmPmData = new PmDataBuilderOpenRoadm(this.netconfAccessor);
this.initialAlarmReader = new InitialDeviceAlarmReader(this.netconfAccessor, serviceProvider);
log.info("NodeId {}", this.netconfAccessor.getNodeId().getValue());
@@ -112,7 +111,7 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
OrgOpenroadmDevice device = readDevice(this.netconfAccessor);
this.opnRdmInventoryInput = new OpenroadmInventoryInput(this.netconfAccessor, device);
- log.info("oScaMapper details{}", this.opnRdmInventoryInput.getClass().getName());
+ log.info("openroadmMapper details{}", this.opnRdmInventoryInput.getClass().getName());
databaseService.writeInventory(this.opnRdmInventoryInput.getInventoryData(Uint32.valueOf(equipmentLevel)));
readShelvesData(device);
@@ -121,6 +120,8 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
readInterfaceData(device);
// Writing initial alarms at the time of device registration
initialAlarmReader.faultService();
+// 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()) {
this.databaseService.doWritePerformanceData(pmDataEntity);
@@ -216,13 +217,16 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
}
private void readCircuitPacketData(OrgOpenroadmDevice device) {
- Collection<CircuitPacks> circuitpacklist = YangHelper.getCollection(device.getCircuitPacks());
- List<String> cpNames = new ArrayList<String>();
+ Collection<CircuitPacks> circuitpackCollection = YangHelper.getCollection(device.getCircuitPacks());
+ List<String> cpNameList = new ArrayList<>();
- if (circuitpacklist != null) {
- for (CircuitPacks cp : circuitpacklist) {
- cpNames.add(cp.getCircuitPackName());
+ if (circuitpackCollection != null) {
+// collect all circuit pack names. Required to check for invalid parents later on
+ for (CircuitPacks cp : circuitpackCollection) {
+ cpNameList.add(cp.getCircuitPackName());
+ }
+ for (CircuitPacks cp : circuitpackCollection) {
log.info("CP Name:{}", cp.getCircuitPackName());
if (cp.getParentCircuitPack() == null
@@ -253,13 +257,14 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
databaseService.writeInventory(this.opnRdmInventoryInput.getCircuitPackInventory(cp,
Uint32.valueOf(equipmentLevel + 3)));
} else {
- // check for incorrect hierarchy
+// check for incorrect hierarchy
if (cp.getParentCircuitPack().getCircuitPackName() != null
- && !cpNames.contains(cp.getParentCircuitPack().getCircuitPackName())) {
+ && !cpNameList.contains(cp.getParentCircuitPack().getCircuitPackName())) {
databaseService.writeEventLog(writeIncorrectParentLog(cp.getCircuitPackName(), counter)
.setObjectId(device.getInfo().getNodeId().getValue())
.setId(cp.getParentCircuitPack().getCpSlotName()).build());
}
+
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,
@@ -269,16 +274,6 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
}
}
-
- // for (String s : cpParentNames) {
- // log.info("Parent cps {}:", s);
- //
- // if (!cpNames.contains(s)) {
- // log.info("Invalid Hierarchy detected for {}", s);
- // databaseService.writeEventLog(writeIncorrectParentLog(s, counter)
- // .setObjectId(device.getInfo().getNodeId().getValue()).setId(s).build());
- // }
- // }
}
}
@@ -311,9 +306,8 @@ public class OpenroadmNetworkElement extends OpenroadmNetworkElementBase {
private OrgOpenroadmDevice readDevice(NetconfBindingAccessor accessor) {
final Class<OrgOpenroadmDevice> openRoadmDev = OrgOpenroadmDevice.class;
InstanceIdentifier<OrgOpenroadmDevice> deviceId = InstanceIdentifier.builder(openRoadmDev).build();
- OrgOpenroadmDevice device = accessor.getTransactionUtils().readData(accessor.getDataBroker(),
+ return accessor.getTransactionUtils().readData(accessor.getDataBroker(),
LogicalDatastoreType.OPERATIONAL, deviceId);
- return device;
}
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 9949056bb..9f69018f8 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,17 +32,19 @@ 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() {}
@@ -71,4 +73,5 @@ 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 7ad2003c4..7665e81d8 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
@@ -29,7 +29,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.YangHelper2;
import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.HistoricalPmList;
@@ -45,10 +44,15 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
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.PmdataEntityBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.entity.PerformanceData;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.entity.PerformanceDataBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.Celsius;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.DB;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.DBm;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.Fahrenheit;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.KHz;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.MW;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.PerformanceMeasurementUnitId;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.osgi.framework.Bundle;
@@ -64,20 +68,20 @@ import org.slf4j.LoggerFactory;
*/
public class PmDataBuilderOpenRoadm {
// variables
- private static final Logger log = LoggerFactory.getLogger(OpenroadmNetworkElement.class);
+ private static final Logger log = LoggerFactory.getLogger(PmDataBuilderOpenRoadm.class);
private PmdataEntityBuilder pmDataBuilder;
private Bundle b = FrameworkUtil.getBundle(this.getClass());
-
// end of variables
+
// constructors
public PmDataBuilderOpenRoadm(NetconfBindingAccessor accessor) {
this.pmDataBuilder = new PmdataEntityBuilder();
this.pmDataBuilder.setNodeName(accessor.getNodeId().getValue());
}
-
// end of constructors
+
// public methods
- // Read PM data
+ // Instantiate historical PM data list
public HistoricalPmList getPmData(NetconfBindingAccessor accessor) {
final Class<HistoricalPmList> pmDataClass = HistoricalPmList.class;
log.info("Get PM data for element {}", accessor.getNodeId().getValue());
@@ -97,15 +101,12 @@ 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);
} catch (ClassNotFoundException e) {
log.info("No relevant data found");
}
- // log.info("NodeName: {}, Scanner Id:{}, Period: {}", this.getNodeName(),
- // this.getScannerId(), this.getGranularityPeriod().getName());
pmEntitiyList.add(this.pmDataBuilder.build());
log.info("PmListSize before db writing: {}", pmEntitiyList.size());
@@ -117,9 +118,11 @@ 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<MeasurementKey, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement>();
+ 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) {
@@ -128,14 +131,13 @@ 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()));
-
- // log.info("Time:d{}, \n Scannerid: {}, \n UUID: {}", this.getGranularityPeriod().getName(),
- // pmDataBuilder.getScannerId(), this.getUuidInterface());
}
pmDataBuilder.setPerformanceData(performanceDataBuilder.setMeasurement(measurementMap).build());
@@ -143,15 +145,6 @@ public class PmDataBuilderOpenRoadm {
- //Map Performance data of PmDataEntity with MeasurmentData-HistoricalPm
- private PerformanceData getPerformancedata(Measurement measurementData) {
- PerformanceData performanceData;
- PerformanceDataBuilder performanceDataBuilder = new PerformanceDataBuilder();
- performanceData = performanceDataBuilder.setCses(YangHelper2.getInteger(measurementData.getBinNumber()))
- .setSes(measurementData.getPmParameterValue().getUint64().intValue()).build();
- return performanceData;
- }
-
// Mapping Granularity period of PmDataEntity with PmGranularity of MeasurmentData-HistoricalPm
private GranularityPeriodType mapGranularityPeriod(PmGranularity pmGranularity) {
@@ -173,88 +166,98 @@ public class PmDataBuilderOpenRoadm {
return granPeriod;
}
- private List<Class<? extends PerformanceMeasurementTypeId>> setMeasurementTypeId() throws ClassNotFoundException {
+
+ // 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<Class<? extends PerformanceMeasurementTypeId>>();
+ 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);
- while (results.hasMoreElements()) {
- URL path = results.nextElement();
- // log.info("Enumeration URL-file {}", path.getFile());
- // log.info("Enumeration URL-String {}", path.toString());
- Class<?> cls1 = loadClass(b, path.getFile());
-
- if (PerformanceMeasurementTypeId.class.isAssignableFrom(cls1)) {
- measTypeObjList.add((Class<? extends PerformanceMeasurementTypeId>) cls1);
- }
- log.info("Class Added {}", cls1.getSimpleName());
+ if (results != null) {
+ while (results.hasMoreElements()) {
+ URL path = results.nextElement();
- }
+ Class<?> cls1 = loadClass(b, path.getFile());
- return measTypeObjList;
- }
+ if (PerformanceMeasurementTypeId.class.isAssignableFrom(cls1)) {
+ measTypeObjList.add((Class<? extends PerformanceMeasurementTypeId>) cls1);
+
+
+ }
+ if (cls1 != null) {
+ log.info("Class Added {}", cls1.getSimpleName());
+ }
- private List<Class<? extends PerformanceMeasurementUnitId>> setMeasurementUnit() throws ClassNotFoundException {
- String packageName =
- "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413";
- List<Class<? extends PerformanceMeasurementUnitId>> measUnitObjList =
- new ArrayList<Class<? extends PerformanceMeasurementUnitId>>();
- URL root = Thread.currentThread().getContextClassLoader().getResource(packageName.replace(".", "/"));
- log.info("path for unit package{}", root);
-
- Enumeration<URL> results_unit = getFileURL(b, packageName);
- log.info("FOund Packages {}", results_unit);
- while (results_unit.hasMoreElements()) {
- URL path = results_unit.nextElement();
- Class<?> cls1 = loadClass(b, path.getFile());
- if (PerformanceMeasurementUnitId.class.isAssignableFrom(cls1)) {
- measUnitObjList.add((Class<? extends PerformanceMeasurementUnitId>) cls1);
}
- log.info("Class Added {}", cls1.getSimpleName());
+
}
- return measUnitObjList;
+ return measTypeObjList;
}
- 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) throws ClassNotFoundException {
-
- MeasurementBuilder measBuilder = new MeasurementBuilder();
- if (pmType.getName() == "erroredSeconds") {
- measBuilder.setPmKey(ErroredSecond.class);
- } else if (pmType.getName() == "severelyErroredSeconds") {
- measBuilder.setPmKey(SeverelyErroredSecond.class);
- } else {
- for (Class<? extends PerformanceMeasurementTypeId> obj : setMeasurementTypeId()) {
- if (obj.toString().contains(pmType.name())) {
- measBuilder.setPmKey(obj);
- }
- }
- }
- for (Class<? extends PerformanceMeasurementUnitId> obj : setMeasurementUnit()) {
- if (obj.toString().contains(pmUnit)) {
- measBuilder.setPmUnit(obj);
- }
+ //Map matching PerformanceMeasurementUnitId class based on the string value from device
+ private Class<? extends PerformanceMeasurementUnitId> setMeasurementUnit(String unitName) {
+ Class<? extends PerformanceMeasurementUnitId> measurementUnitClass = null;
+ switch (unitName) {
+ case ("celsius"):
+ measurementUnitClass = Celsius.class;
+ break;
+ case ("dB"):
+ measurementUnitClass = DB.class;
+ break;
+ case ("dBm"):
+ measurementUnitClass = DBm.class;
+ break;
+ case ("fahrenheit"):
+ measurementUnitClass = Fahrenheit.class;
+ break;
+ case ("kHz"):
+ measurementUnitClass = KHz.class;
+ break;
+ case ("mW"):
+ measurementUnitClass = MW.class;
+ break;
+ default:
+ break;
}
- measBuilder.setPmValue(pmDataType);
- return measBuilder.build();
-
+ return measurementUnitClass;
}
+
private Class<?> loadClass(Bundle bundle, String classFilePath) {
String className = classFilePath.replaceFirst("^/", "").replace('/', '.').replaceFirst(".class$", "");
try {
return bundle.loadClass(className);
- } catch (Throwable e) {
+ } catch (Exception e) {
log.info(String.format("Class [%s] could not be loaded. Message: [%s].", className, e.getMessage()));
}
return null;
@@ -277,9 +280,7 @@ public class PmDataBuilderOpenRoadm {
for (Bundle bundle : bundles) {
resultUrl = bundle.findEntries("/" + classPath.replace(".", "/"), "*.class", false);
- // resultUrl = bundle.getEntryPaths("/" + classPath.replace(".", "/"));
if (resultUrl != null) {
- b = bundle;
break;
}