- BigDecimal spanLoss = new BigDecimal(0);
-
- for (int i = 0; i < roadmLinks.size(); i++) {
- //TODO Add logic to check PM measurement for 3 times
- OtsPmHolder srcOtsPmHoler = getPmMeasurements(roadmLinks.get(i).getSrcNodeId(),
- roadmLinks.get(i).getSrcTpId(), "OpticalPowerOutput");
- OtsPmHolder destOtsPmHoler = getPmMeasurements(roadmLinks.get(i).getDestNodeId(),
- roadmLinks.get(i).getDestTpid(), "OpticalPowerInput");
- spanLoss = new BigDecimal(srcOtsPmHoler.getOtsParameterVal() - destOtsPmHoler.getOtsParameterVal())
- .setScale(0, RoundingMode.HALF_UP);
- LOG.info("Spanloss Calculated as :" + spanLoss + "=" + srcOtsPmHoler.getOtsParameterVal() + "-"
- + destOtsPmHoler.getOtsParameterVal());
- //TODO make it 3 times in here
- if (spanLoss.doubleValue() < 28 && spanLoss.doubleValue() > 0) {
- if (!setSpanLoss(roadmLinks.get(i).getSrcNodeId(), srcOtsPmHoler.getOtsInterfaceName(), spanLoss,
- "TX", roadmLinks.get(i).getLinkId())) {
- LOG.info("Setting spanLoss failed for " + roadmLinks.get(i).getSrcNodeId());
- return false;
- }
- if (!setSpanLoss(roadmLinks.get(i).getDestNodeId(), destOtsPmHoler.getOtsInterfaceName(), spanLoss,
- "RX",roadmLinks.get(i).getLinkId())) {
- LOG.info("Setting spanLoss failed for " + roadmLinks.get(i).getDestNodeId());
- return false;
- }
+ BigDecimal spanLoss;
+ for (RoadmLinks link : roadmLinks) {
+ String sourceNodeId = link.getSrcNodeId();
+ String sourceTpId = link.getSrcTpId();
+ String destNodeId = link.getDestNodeId();
+ String destTpId = link.getDestTpid();
+ OtsPmHolder srcOtsPmHoler = getPmMeasurements(sourceNodeId, sourceTpId, "OpticalPowerOutput");
+ OtsPmHolder destOtsPmHoler = getPmMeasurements(destNodeId, destTpId, "OpticalPowerInput");
+ if (srcOtsPmHoler.getOtsInterfaceName() == null || destOtsPmHoler.getOtsInterfaceName() == null) {
+ LOG.warn("OTS is not present for the link {}", link);
+ continue;
+ }
+ spanLoss = BigDecimal.valueOf(srcOtsPmHoler.getOtsParameterVal() - destOtsPmHoler.getOtsParameterVal())
+ .setScale(1, RoundingMode.HALF_UP);
+ LOG.info("Spanloss Calculated as :{}={}-{}",
+ spanLoss, srcOtsPmHoler.getOtsParameterVal(), destOtsPmHoler.getOtsParameterVal());
+ if (spanLoss.doubleValue() > 28) {
+ LOG.warn("Span Loss is out of range of OpenROADM specifications");
+ }
+ if (!setSpanLoss(sourceNodeId, srcOtsPmHoler.getOtsInterfaceName(), spanLoss, "TX")) {
+ LOG.info("Setting spanLoss failed for {}", sourceNodeId);
+ return null;
+ }
+ if (!setSpanLoss(destNodeId, destOtsPmHoler.getOtsInterfaceName(), spanLoss, "RX")) {
+ LOG.info("Setting spanLoss failed for {}", destNodeId);
+ return null;