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;
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;
*/
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());
} 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());
// private methods
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) {
measurementData.getPmParameterValue()));
-
- // log.info("Time:d{}, \n Scannerid: {}, \n UUID: {}", this.getGranularityPeriod().getName(),
- // pmDataBuilder.getScannerId(), this.getUuidInterface());
}
pmDataBuilder.setPerformanceData(performanceDataBuilder.setMeasurement(measurementMap).build());
- //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) {
return granPeriod;
}
- private List<Class<? extends PerformanceMeasurementTypeId>> setMeasurementTypeId() throws ClassNotFoundException {
+ 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>>();
+ 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);
- 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());
+
+ }
+ if(cls1!=null) {
+ log.info("Class Added {}", cls1.getSimpleName());
+ }
}
- return measUnitObjList;
+
+ }
+
+ return measTypeObjList;
}
+ 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;
+ }
+ 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) throws ClassNotFoundException {
+ PmNamesEnum pmType, String pmUnit, PmDataType pmDataType) {
MeasurementBuilder measBuilder = new MeasurementBuilder();
- if (pmType.getName() == "erroredSeconds") {
+ if (pmType.getName().equals("erroredSeconds") ) {
measBuilder.setPmKey(ErroredSecond.class);
- } else if (pmType.getName() == "severelyErroredSeconds") {
+ } else if (pmType.getName().equals("severelyErroredSeconds")) {
measBuilder.setPmKey(SeverelyErroredSecond.class);
} else {
for (Class<? extends PerformanceMeasurementTypeId> obj : setMeasurementTypeId()) {
}
}
}
- for (Class<? extends PerformanceMeasurementUnitId> obj : setMeasurementUnit()) {
- if (obj.toString().contains(pmUnit)) {
- measBuilder.setPmUnit(obj);
- }
- }
+ measBuilder.setPmUnit(setMeasurementUnit(pmUnit));
measBuilder.setPmValue(pmDataType);
return measBuilder.build();
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;
for (Bundle bundle : bundles) {
resultUrl = bundle.findEntries("/" + classPath.replace(".", "/"), "*.class", false);
- // resultUrl = bundle.getEntryPaths("/" + classPath.replace(".", "/"));
if (resultUrl != null) {
- b = bundle;
break;
}