From 50b9f0f52f388da8d04f06d748192e7be3f040c7 Mon Sep 17 00:00:00 2001 From: Gilles Thouenon Date: Fri, 14 Feb 2020 18:18:25 +0100 Subject: [PATCH 1/1] Fix issues related to Magnesium bump - use of some Uint32 (instead of Long) - use of ImmutableList JIRA: TRNSPRTPCE-198 Signed-off-by: Gilles Thouenon Co-authored-by: Christophe Betoule Co-authored-by: Emmanuelle Delfour Change-Id: Iaba3dda0941e957f549da0e9ca7ddbeb485c7dfe --- .../common/device/DeviceTransaction.java | 4 +- .../common/mapping/PortMappingVersion121.java | 10 ++- .../common/mapping/PortMappingVersion221.java | 6 +- .../networkmodel/util/OpenRoadmTopology.java | 2 +- .../pce/gnpy/GnpyServiceImpl.java | 3 +- .../pce/networkanalyzer/PceLink.java | 7 +- .../NetworkModelWavelengthServiceImpl.java | 76 ++++++++----------- .../RendererServiceOperationsImpl.java | 1 - 8 files changed, 51 insertions(+), 58 deletions(-) diff --git a/common/src/main/java/org/opendaylight/transportpce/common/device/DeviceTransaction.java b/common/src/main/java/org/opendaylight/transportpce/common/device/DeviceTransaction.java index e4232ff53..598229c22 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/device/DeviceTransaction.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/device/DeviceTransaction.java @@ -11,13 +11,15 @@ package org.opendaylight.transportpce.common.device; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.ListenableFuture; + +import edu.umd.cs.findbugs.annotations.Nullable; + import java.util.Optional; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; -import javax.annotation.Nullable; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; import org.opendaylight.mdsal.common.api.CommitInfo; diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion121.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion121.java index e4fc4a093..af83b8b02 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion121.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion121.java @@ -195,7 +195,8 @@ public class PortMappingVersion121 { Map lcpMap = new HashMap<>(); Map mappingMap = new HashMap<>(); - List circuitPackList = deviceObject.get().getCircuitPacks(); + // com.google.common.collect.ImmutableList implementation of List + List circuitPackList = new ArrayList<>(deviceObject.get().getCircuitPacks()); circuitPackList.sort(Comparator.comparing(CircuitPack::getCircuitPackName)); for (CircuitPacks cp : circuitPackList) { @@ -204,7 +205,9 @@ public class PortMappingVersion121 { LOG.warn("Ports were not found for circuit pack: {}", circuitPackName); continue; } - List portList = cp.getPorts(); + + // com.google.common.collect.ImmutableList implementation of List + List portList = new ArrayList<>(cp.getPorts()); portList.sort(Comparator.comparing(Ports::getPortName)); for (Ports port : portList) { if (port.getPortQual() == null) { @@ -366,8 +369,9 @@ public class PortMappingVersion121 { LOG.warn("{} : Circuit pack {} not found or without ports.", nodeId, circuitPackName); continue; } + // com.google.common.collect.ImmutableList implementation of List @Nullable - List portList = circuitPackObject.get().getPorts(); + List portList = new ArrayList<>(circuitPackObject.get().getPorts()); Collections.sort(portList, new SortPort121ByName()); int portIndex = 1; for (Ports port : portList) { diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion221.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion221.java index 7f0604952..ac05d9f09 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion221.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/PortMappingVersion221.java @@ -208,7 +208,7 @@ public class PortMappingVersion221 { LOG.warn("Circuit Packs are not present for {}", nodeId); return false; } else { - circuitPackList = deviceObject.get().getCircuitPacks(); + circuitPackList = new ArrayList<>(deviceObject.get().getCircuitPacks()); circuitPackList.sort(Comparator.comparing(CircuitPack::getCircuitPackName)); } if (device.getXponder() == null) { @@ -219,7 +219,7 @@ public class PortMappingVersion221 { LOG.warn("Ports were not found for circuit pack: {}", circuitPackName); continue; } - List portList = cp.getPorts(); + List portList = new ArrayList<>(cp.getPorts()); portList.sort(Comparator.comparing(Ports::getPortName)); for (Ports port : portList) { if (port.getPortQual() == null) { @@ -519,7 +519,7 @@ public class PortMappingVersion221 { LOG.warn("{} : Circuit pack {} not found or without ports.", nodeId, circuitPackName); continue; } - List portList = circuitPackObject.get().getPorts(); + List portList = new ArrayList<>(circuitPackObject.get().getPorts()); Collections.sort(portList, new SortPort221ByName()); int portIndex = 1; for (Ports port : portList) { diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java index 05c15e13d..2425f70f4 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java @@ -87,7 +87,7 @@ public final class OpenRoadmTopology { // transform flat mapping list to per degree and per srg mapping lists Map> mapDeg = new HashMap<>(); Map> mapSrg = new HashMap<>(); - List mappingList = mappingNode.getMapping(); + List mappingList = new ArrayList<>(mappingNode.getMapping()); mappingList.sort(Comparator.comparing(Mapping::getLogicalConnectionPoint)); List nodeShardList = new ArrayList<>(); diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyServiceImpl.java b/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyServiceImpl.java index 4bc475a98..44ba0f543 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyServiceImpl.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyServiceImpl.java @@ -170,7 +170,8 @@ public class GnpyServiceImpl { ExplicitRouteObjects explicitRouteObjects = new ExplicitRouteObjectsBuilder() .setRouteObjectIncludeExclude(routeObjectIncludeExcludes).build(); //Create Path Constraint - PathConstraints pathConstraints = createPathConstraints(ztoa.getRate(),ztoa.getZToAWavelengthNumber()); + PathConstraints pathConstraints = createPathConstraints(ztoa.getRate().toJava(), + ztoa.getZToAWavelengthNumber().toJava()); // Create the path request List pathRequestList = new ArrayList<>(); diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLink.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLink.java index e07459d0a..c8afb4c8a 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLink.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLink.java @@ -115,12 +115,13 @@ public class PceLink { return tmpoppositeLink; } - //Compute the link latency : if the latency is not defined, the latency it is computed from the omsAttributesSpan + //Compute the link latency : if the latency is not defined, the latency is computed from the omsAttributesSpan private Long calcLatency(Link link) { Link1 link1 = null; + Long tmplatency; link1 = link.augmentation(Link1.class); - Long tmplatency = link1.getLinkLatency().toJava(); - if (tmplatency != null) { + if (link1.getLinkLatency() != null) { + tmplatency = link1.getLinkLatency().toJava(); return tmplatency; } diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java index 9aaa23e00..b75a46b01 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/NetworkModelWavelengthServiceImpl.java @@ -89,13 +89,11 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength public void useWavelengths(PathDescription pathDescription) { List atozTpIds = getAToZTpList(pathDescription); - List ztoaTpIds = getZToATpList(pathDescription); - deleteAvailableWL(atozTpIds.stream().map(NodeIdPair::getNodeID).distinct().collect(Collectors.toList()), pathDescription.getAToZDirection().getAToZWavelengthNumber().toJava()); + List ztoaTpIds = getZToATpList(pathDescription); deleteAvailableWL(ztoaTpIds.stream().map(NodeIdPair::getNodeID).distinct().collect(Collectors.toList()), pathDescription.getZToADirection().getZToAWavelengthNumber().toJava()); - addUsedWL(pathDescription.getAToZDirection().getAToZWavelengthNumber().toJava(), atozTpIds); addUsedWL(pathDescription.getZToADirection().getZToAWavelengthNumber().toJava(), ztoaTpIds); } @@ -107,7 +105,6 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength deleteUsedWL(pathDescription.getAToZDirection().getAToZWavelengthNumber().toJava(), atozTpIds); deleteUsedWL(pathDescription.getZToADirection().getZToAWavelengthNumber().toJava(), ztoaTpIds); - addAvailableWL(atozTpIds.stream().map(NodeIdPair::getNodeID).distinct().collect(Collectors.toList()), pathDescription.getAToZDirection().getAToZWavelengthNumber().toJava()); addAvailableWL(ztoaTpIds.stream().map(NodeIdPair::getNodeID).distinct().collect(Collectors.toList()), @@ -234,14 +231,11 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength degreeAttributesBuilder = new DegreeAttributesBuilder(degreeAttributes); } List availableDegreeWLs = - degreeAttributesBuilder.getAvailableWavelengths(); - if (availableDegreeWLs == null) { - availableDegreeWLs = new ArrayList<>(); - degreeAttributesBuilder.setAvailableWavelengths(availableDegreeWLs); - } + .AvailableWavelengths> availableDegreeWLs = new ArrayList<>(degreeAttributesBuilder + .getAvailableWavelengths()); availableDegreeWLs.add(new org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree .node.attributes.AvailableWavelengthsBuilder().setIndex(wavelengthNumber).build()); + degreeAttributesBuilder.setAvailableWavelengths(availableDegreeWLs); node1Builder.setDegreeAttributes(degreeAttributesBuilder.build()); break; case SRG: @@ -253,12 +247,10 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength srgAttributesBuilder = new SrgAttributesBuilder(srgAttributes); } List availableSrgWLs = srgAttributesBuilder.getAvailableWavelengths(); - if (availableSrgWLs == null) { - availableSrgWLs = new ArrayList<>(); - srgAttributesBuilder.setAvailableWavelengths(availableSrgWLs); - } + .AvailableWavelengths> availableSrgWLs = new ArrayList<>(srgAttributesBuilder + .getAvailableWavelengths()); availableSrgWLs.add(new AvailableWavelengthsBuilder().setIndex(wavelengthNumber).build()); + srgAttributesBuilder.setAvailableWavelengths(availableSrgWLs); node1Builder.setSrgAttributes(srgAttributesBuilder.build()); break; @@ -494,43 +486,41 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case DEGREETXTTP: case DEGREETXRXTTP: TxTtpAttributes txTtpAttributes = null; + List usedDegreeTxTtpWls; if (tp1 != null) { txTtpAttributes = tp1.getTxTtpAttributes(); } TxTtpAttributesBuilder txTtpAttributesBuilder; if (txTtpAttributes == null) { txTtpAttributesBuilder = new TxTtpAttributesBuilder(); + usedDegreeTxTtpWls = new ArrayList<>(); } else { txTtpAttributesBuilder = new TxTtpAttributesBuilder(txTtpAttributes); - } - List usedDegreeTxTtpWls = txTtpAttributesBuilder.getUsedWavelengths(); - if (usedDegreeTxTtpWls == null) { - usedDegreeTxTtpWls = new ArrayList<>(); - txTtpAttributesBuilder.setUsedWavelengths(usedDegreeTxTtpWls); + usedDegreeTxTtpWls = new ArrayList<>(txTtpAttributesBuilder.getUsedWavelengths()); } usedDegreeTxTtpWls.add(new UsedWavelengthsBuilder().setIndex(wavelengthIndex) .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + txTtpAttributesBuilder.setUsedWavelengths(usedDegreeTxTtpWls); tp1Builder.setTxTtpAttributes(txTtpAttributesBuilder.build()); break; case DEGREERXTTP: RxTtpAttributes rxTtpAttributes = null; + List usedDegreeRxTtpWls; if (tp1 != null) { rxTtpAttributes = tp1.getRxTtpAttributes(); } RxTtpAttributesBuilder rxTtpAttributesBuilder; if (rxTtpAttributes == null) { rxTtpAttributesBuilder = new RxTtpAttributesBuilder(); + usedDegreeRxTtpWls = new ArrayList<>(); } else { rxTtpAttributesBuilder = new RxTtpAttributesBuilder(rxTtpAttributes); - } - List usedDegreeRxTtpWls = rxTtpAttributesBuilder.getUsedWavelengths(); - if (usedDegreeRxTtpWls == null) { - usedDegreeRxTtpWls = new ArrayList<>(); - rxTtpAttributesBuilder.setUsedWavelengths(usedDegreeRxTtpWls); + usedDegreeRxTtpWls = new ArrayList<>(rxTtpAttributesBuilder.getUsedWavelengths()); } usedDegreeRxTtpWls.add(new UsedWavelengthsBuilder().setIndex(wavelengthIndex) .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + rxTtpAttributesBuilder.setUsedWavelengths(usedDegreeRxTtpWls); tp1Builder.setRxTtpAttributes(rxTtpAttributesBuilder.build()); break; @@ -538,22 +528,21 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case DEGREERXCTP: case DEGREETXRXCTP: CtpAttributes ctpAttributes = null; + List usedDegreeCtpWls; if (tp1 != null) { ctpAttributes = tp1.getCtpAttributes(); } CtpAttributesBuilder ctpAttributesBuilder; if (ctpAttributes == null) { ctpAttributesBuilder = new CtpAttributesBuilder(); + usedDegreeCtpWls = new ArrayList<>(); } else { ctpAttributesBuilder = new CtpAttributesBuilder(ctpAttributes); - } - List usedDegreeCtpWls = ctpAttributesBuilder.getUsedWavelengths(); - if (usedDegreeCtpWls == null) { - usedDegreeCtpWls = new ArrayList<>(); - ctpAttributesBuilder.setUsedWavelengths(usedDegreeCtpWls); + usedDegreeCtpWls = new ArrayList<>(ctpAttributesBuilder.getUsedWavelengths()); } usedDegreeCtpWls.add(new UsedWavelengthsBuilder().setIndex(wavelengthIndex) .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + ctpAttributesBuilder.setUsedWavelengths(usedDegreeCtpWls); tp1Builder.setCtpAttributes(ctpAttributesBuilder.build()); break; @@ -561,26 +550,24 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case SRGRXCP: case SRGTXRXCP: CpAttributes cpAttributes = null; + List usedDegreeCpWls; if (tp1 != null) { cpAttributes = tp1.getCpAttributes(); } CpAttributesBuilder cpAttributesBuilder; if (cpAttributes == null) { cpAttributesBuilder = new CpAttributesBuilder(); + usedDegreeCpWls = new ArrayList<>(); } else { cpAttributesBuilder = new CpAttributesBuilder(cpAttributes); - } - List usedDegreeCpWls = cpAttributesBuilder - .getUsedWavelengths(); - if (usedDegreeCpWls == null) { - usedDegreeCpWls = new ArrayList<>(); - cpAttributesBuilder.setUsedWavelengths(usedDegreeCpWls); + usedDegreeCpWls = new ArrayList<>(cpAttributesBuilder.getUsedWavelengths()); } usedDegreeCpWls.add(new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 - .networks.network.node.termination.point.cp.attributes.UsedWavelengthsBuilder() - .setIndex(wavelengthIndex) - .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + .networks.network.node.termination.point.cp.attributes.UsedWavelengthsBuilder() + .setIndex(wavelengthIndex) + .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + cpAttributesBuilder.setUsedWavelengths(usedDegreeCpWls); tp1Builder.setCpAttributes(cpAttributesBuilder.build()); break; @@ -588,22 +575,21 @@ public class NetworkModelWavelengthServiceImpl implements NetworkModelWavelength case SRGRXPP: case SRGTXPP: PpAttributes ppAttributes = null; + List usedDegreePpWls; if (tp1 != null) { ppAttributes = tp1.getPpAttributes(); } PpAttributesBuilder ppAttributesBuilder; if (ppAttributes == null) { ppAttributesBuilder = new PpAttributesBuilder(); + usedDegreePpWls = new ArrayList<>(); } else { ppAttributesBuilder = new PpAttributesBuilder(ppAttributes); - } - List usedDegreePpWls = ppAttributesBuilder.getUsedWavelength(); - if (usedDegreePpWls == null) { - usedDegreePpWls = new ArrayList<>(); - ppAttributesBuilder.setUsedWavelength(usedDegreePpWls); + usedDegreePpWls = new ArrayList<>(ppAttributesBuilder.getUsedWavelength()); } usedDegreePpWls.add(new UsedWavelengthBuilder().setIndex(wavelengthIndex) .setFrequency(centralTHz).setWidth(FrequencyGHz.getDefaultInstance("40")).build()); + ppAttributesBuilder.setUsedWavelength(usedDegreePpWls); tp1Builder.setPpAttributes(ppAttributesBuilder.build()); break; diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java index bee4d90eb..cfcb2abc3 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java @@ -172,7 +172,6 @@ public class RendererServiceOperationsImpl implements RendererServiceOperations return ModelMappingUtils.createServiceImplResponse(ResponseCodes.RESPONSE_OK, OPERATION_SUCCESSFUL); } }); - } @SuppressWarnings("checkstyle:IllegalCatch") -- 2.36.6