From: Christophe Betoule Date: Thu, 11 Feb 2021 11:24:03 +0000 (+0100) Subject: Adapt PCE to compute a 400GE path X-Git-Tag: 3.0.0~17^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=e82fbaf8294be8b3bc2df5ef1649a401fa636912;hp=8fa7e1e25b411f111f198152af6e6244727e71a9;p=transportpce.git Adapt PCE to compute a 400GE path - on a simple openroadm-topology with only tpdr-400GE - in PceCalculation, remove boolean returned by validateNode() and validateOtnNode() since not used anywhere - inject PortMapping instance in several PCE classes to retrieve if-capabilities from portmapping in order to prune invalid nodes from openroadm-topology - add a new isTpWithGoodCapabilities() method in PceOpticalNode class to check the node capabilities with regards to the type of service to compute - adapt blue-print to inject portmapping instance - adapt PCE UT mocking PortMapping instance in all adequate constructors JIRA: TRNSPRTPCE-372 Signed-off-by: Christophe Betoule Co-authored-by: Gilles Thouenon Change-Id: I02e8de3689d1df0b55a8018dd4f629429f6deb2b --- diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/PcePathDescription.java b/pce/src/main/java/org/opendaylight/transportpce/pce/PcePathDescription.java index 6d11ddf21..9e5fc4bcd 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/PcePathDescription.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/PcePathDescription.java @@ -92,6 +92,7 @@ public class PcePathDescription { .getOrDefault(Uint32.valueOf(rc.getRate()), ModulationFormat.DpQpsk).getName()) .setAToZ(atozMap); switch (rc.getServiceType()) { + case StringConstants.SERVICE_TYPE_400GE: case StringConstants.SERVICE_TYPE_100GE: case StringConstants.SERVICE_TYPE_OTU4: atoZDirectionBldr.setAToZMaxFrequency(new FrequencyTHz(rc.getMaxFreq())); @@ -113,6 +114,7 @@ public class PcePathDescription { } break; default: + LOG.warn("unknown service type : unable to set Min/Max frequencies"); break; } return atoZDirectionBldr; @@ -129,6 +131,7 @@ public class PcePathDescription { .getOrDefault(Uint32.valueOf(rc.getRate()), ModulationFormat.DpQpsk).getName()) .setZToA(ztoaMap); switch (rc.getServiceType()) { + case StringConstants.SERVICE_TYPE_400GE: case StringConstants.SERVICE_TYPE_100GE: case StringConstants.SERVICE_TYPE_OTU4: ztoADirectionBldr.setZToAMaxFrequency(new FrequencyTHz(rc.getMaxFreq())); @@ -150,6 +153,7 @@ public class PcePathDescription { } break; default: + LOG.warn("unknown service type : unable to set Min/Max frequencies"); break; } return ztoADirectionBldr; diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/PceSendingPceRPCs.java b/pce/src/main/java/org/opendaylight/transportpce/pce/PceSendingPceRPCs.java index d0610c8cf..c0da36d19 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/PceSendingPceRPCs.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/PceSendingPceRPCs.java @@ -9,6 +9,7 @@ package org.opendaylight.transportpce.pce; import org.opendaylight.transportpce.common.ResponseCodes; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.pce.constraints.PceConstraints; import org.opendaylight.transportpce.pce.constraints.PceConstraintsCalc; @@ -59,6 +60,7 @@ public class PceSendingPceRPCs { private String message; private String responseCode; private final GnpyConsumer gnpyConsumer; + private PortMapping portMapping; public PceSendingPceRPCs(GnpyConsumer gnpyConsumer) { setPathDescription(null); @@ -68,13 +70,14 @@ public class PceSendingPceRPCs { } public PceSendingPceRPCs(PathComputationRequestInput input, - NetworkTransactionService networkTransaction, GnpyConsumer gnpyConsumer) { + NetworkTransactionService networkTransaction, GnpyConsumer gnpyConsumer, PortMapping portMapping) { this.gnpyConsumer = gnpyConsumer; setPathDescription(null); // TODO compliance check to check that input is not empty this.input = input; this.networkTransaction = networkTransaction; + this.portMapping = portMapping; } public void cancelResourceReserve() { @@ -93,7 +96,7 @@ public class PceSendingPceRPCs { public void pathComputationWithConstraints(PceConstraints hardConstraints, PceConstraints softConstraints) { PceCalculation nwAnalizer = - new PceCalculation(input, networkTransaction, hardConstraints, softConstraints, rc); + new PceCalculation(input, networkTransaction, hardConstraints, softConstraints, rc, portMapping); nwAnalizer.retrievePceNetwork(); rc = nwAnalizer.getReturnStructure(); String serviceType = nwAnalizer.getServiceType(); diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PceGraph.java b/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PceGraph.java index 0c90ce290..2b199309e 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PceGraph.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PceGraph.java @@ -97,7 +97,7 @@ public class PceGraph { pceResult.getResponseCode(), ResponseCodes.RESPONSE_OK); if (!pceResult.getResponseCode().equals(ResponseCodes.RESPONSE_OK)) { - LOG.info("In calcPath: post algo validations DROPPED the path {}", path); + LOG.warn("In calcPath: post algo validations DROPPED the path {}", path); continue; } @@ -111,6 +111,7 @@ public class PceGraph { switch (serviceType) { case StringConstants.SERVICE_TYPE_100GE: + case StringConstants.SERVICE_TYPE_400GE: case StringConstants.SERVICE_TYPE_OTU4: LOG.info( "In calcPath Path FOUND path for wl [{}], min Freq assignment {}, max Freq assignment {}," diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java b/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java index 7560e4c48..171af2f7c 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java @@ -54,14 +54,18 @@ public class PostAlgoPathValidator { return pceResult; } int tribSlotNb = 1; + int spectralWidthSlotNumber = GridConstant.SPECTRAL_WIDTH_SLOT_NUMBER_MAP + .getOrDefault(serviceType, GridConstant.NB_SLOTS_100G); + SpectrumAssignment spectrumAssignment = null; //variable to deal with 1GE (Nb=1) and 10GE (Nb=10) cases switch (serviceType) { - + case StringConstants.SERVICE_TYPE_400GE: + spectralWidthSlotNumber = GridConstant.SPECTRAL_WIDTH_SLOT_NUMBER_MAP + .getOrDefault(serviceType, GridConstant.NB_SLOTS_400G); + //fallthrough case StringConstants.SERVICE_TYPE_100GE: case StringConstants.SERVICE_TYPE_OTU4: - int spectralWidthSlotNumber = GridConstant.SPECTRAL_WIDTH_SLOT_NUMBER_MAP - .getOrDefault(serviceType, GridConstant.NB_SLOTS_100G); - SpectrumAssignment spectrumAssignment = getSpectrumAssignment(path, + spectrumAssignment = getSpectrumAssignment(path, allPceNodes, spectralWidthSlotNumber); pceResult.setServiceType(serviceType); if (spectrumAssignment.getBeginIndex() == 0 && spectrumAssignment.getStopIndex() == 0) { @@ -108,9 +112,7 @@ public class PostAlgoPathValidator { pceResult.setRC(ResponseCodes.RESPONSE_OK); pceResult.setLocalCause(PceResult.LocalCause.NONE); - break; - case StringConstants.SERVICE_TYPE_10GE: tribSlotNb = 8; //fallthrough @@ -129,19 +131,16 @@ public class PostAlgoPathValidator { tribPort, tribSlot, tribSlotNb); } break; - case StringConstants.SERVICE_TYPE_ODU4: pceResult.setRC(ResponseCodes.RESPONSE_OK); LOG.info("In PostAlgoPathValidator: ODU4 path found {}", path); break; - default: pceResult.setRC(ResponseCodes.RESPONSE_FAILED); LOG.warn("In PostAlgoPathValidator checkPath: unsupported serviceType {} found {}", serviceType, path); break; } - return pceResult; } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java index 508191f3a..6fb58fcdd 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java @@ -25,6 +25,7 @@ import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.common.mapping.MappingUtils; import org.opendaylight.transportpce.common.mapping.MappingUtilsImpl; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.pce.constraints.PceConstraints; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput; @@ -81,6 +82,7 @@ public class PceCalculation { private Map allPceLinks = new HashMap<>(); private Set linksToExclude = new HashSet<>(); private PceResult returnStructure; + private PortMapping portMapping; private enum ConstraintTypes { NONE, HARD_EXCLUDE, HARD_INCLUDE, HARD_DIVERSITY, SOFT_EXCLUDE, SOFT_INCLUDE, SOFT_DIVERSITY; @@ -89,13 +91,15 @@ public class PceCalculation { private MappingUtils mappingUtils; public PceCalculation(PathComputationRequestInput input, NetworkTransactionService networkTransactionService, - PceConstraints pceHardConstraints, PceConstraints pceSoftConstraints, PceResult rc) { + PceConstraints pceHardConstraints, PceConstraints pceSoftConstraints, PceResult rc, + PortMapping portMapping) { this.input = input; this.networkTransactionService = networkTransactionService; this.returnStructure = rc; this.pceHardConstraints = pceHardConstraints; this.mappingUtils = new MappingUtilsImpl(networkTransactionService.getDataBroker()); + this.portMapping = portMapping; parseInput(); } @@ -155,7 +159,9 @@ public class PceCalculation { //Maybe HashMap and similar options should also be considered here. } else if ("Ethernet".equals(serviceFormatA)) { //only rate 100L is currently supported except in Ethernet - if (serviceRate == 10L) { + if (serviceRate == 400L) { + serviceType = StringConstants.SERVICE_TYPE_400GE; + } else if (serviceRate == 10L) { serviceType = StringConstants.SERVICE_TYPE_10GE; } else if (serviceRate == 1L) { serviceType = StringConstants.SERVICE_TYPE_1GE; @@ -184,14 +190,13 @@ public class PceCalculation { private boolean readMdSal() { InstanceIdentifier nwInstanceIdentifier = null; Network nw = null; - if (("OC".equals(serviceFormatA)) || ("OTU".equals(serviceFormatA)) || (("Ethernet".equals(serviceFormatA)) - && (serviceRate == 100L))) { - + if (("OC".equals(serviceFormatA)) || ("OTU".equals(serviceFormatA)) + || ("Ethernet".equals(serviceFormatA) && ((serviceRate == 100L) || (serviceRate == 400L)))) { LOG.info("readMdSal: network {}", NetworkUtils.OVERLAY_NETWORK_ID); nwInstanceIdentifier = InstanceIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))).build(); - } else if ("ODU".equals(serviceFormatA) || ("Ethernet".equals(serviceFormatA) && serviceRate == 10L) - || ("Ethernet".equals(serviceFormatA) && serviceRate == 1L)) { + } else if ("ODU".equals(serviceFormatA) + || ("Ethernet".equals(serviceFormatA) && ((serviceRate == 10L) || (serviceRate == 1L)))) { LOG.info("readMdSal: network {}", NetworkUtils.OTN_NETWORK_ID); nwInstanceIdentifier = InstanceIdentifier.builder(Networks.class) .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OTN_NETWORK_ID))).build(); @@ -251,8 +256,9 @@ public class PceCalculation { LOG.debug("analyzeNw: allNodes size {}, allLinks size {}", allNodes.size(), allLinks.size()); - if ((StringConstants.SERVICE_TYPE_100GE.equals(serviceType)) - || (StringConstants.SERVICE_TYPE_OTU4.equals(serviceType))) { + if (StringConstants.SERVICE_TYPE_100GE.equals(serviceType) + || StringConstants.SERVICE_TYPE_OTU4.equals(serviceType) + || StringConstants.SERVICE_TYPE_400GE.equals(serviceType)) { // 100GE service and OTU4 service are handled at the openroadm-topology layer for (Node node : allNodes) { validateNode(node); @@ -374,9 +380,10 @@ public class PceCalculation { return false; } - if ((StringConstants.SERVICE_TYPE_100GE.equals(serviceType)) - || (StringConstants.SERVICE_TYPE_OTU4.equals(serviceType))) { - // 100GE or OTU4 services are handled at WDM Layer + if (StringConstants.SERVICE_TYPE_100GE.equals(serviceType) + || StringConstants.SERVICE_TYPE_OTU4.equals(serviceType) + || StringConstants.SERVICE_TYPE_400GE.equals(serviceType)) { + // 100GE or 400GE or OTU4 services are handled at WDM Layer PceLink pcelink = new PceLink(link, source, dest); if (!pcelink.isValid()) { dropOppositeLink(link); @@ -486,18 +493,18 @@ public class PceCalculation { } - private boolean validateNode(Node node) { + private void validateNode(Node node) { LOG.debug("validateNode: node {} ", node); // PceNode will be used in Graph algorithm Node1 node1 = node.augmentation(Node1.class); if (node1 == null) { LOG.error("getNodeType: no Node1 (type) Augmentation for node: [{}]. Node is ignored", node.getNodeId()); - return false; + return; } if (State.OutOfService.equals(node1.getOperationalState())) { LOG.error("getNodeType: node is ignored due to operational state - {}", node1.getOperationalState() .getName()); - return false; + return; } OpenroadmNodeType nodeType = node1.getNodeType(); String deviceNodeId = MapUtils.getSupNetworkNode(node); @@ -506,18 +513,19 @@ public class PceCalculation { if (deviceNodeId == null || deviceNodeId.isBlank()) { deviceNodeId = node.getNodeId().getValue(); } + LOG.info("Device node id {} for {}", deviceNodeId, node); - PceOpticalNode pceNode = new PceOpticalNode(node, nodeType, mappingUtils.getOpenRoadmVersion(deviceNodeId), - getSlotWidthGranularity(deviceNodeId, node.getNodeId())); + PceOpticalNode pceNode = new PceOpticalNode(deviceNodeId, this.serviceType, portMapping, node, nodeType, + mappingUtils.getOpenRoadmVersion(deviceNodeId), getSlotWidthGranularity(deviceNodeId, node.getNodeId())); pceNode.validateAZxponder(anodeId, znodeId, input.getServiceAEnd().getServiceFormat()); pceNode.initFrequenciesBitSet(); if (!pceNode.isValid()) { LOG.warn(" validateNode: Node is ignored"); - return false; + return; } if (validateNodeConstraints(pceNode).equals(ConstraintTypes.HARD_EXCLUDE)) { - return false; + return; } if (endPceNode(nodeType, pceNode.getNodeId(), pceNode) && this.aendPceNode == null && isAZendPceNode(this.serviceFormatA, pceNode, anodeId, "A")) { @@ -530,7 +538,7 @@ public class PceCalculation { allPceNodes.put(pceNode.getNodeId(), pceNode); LOG.debug("validateNode: node is saved {}", pceNode.getNodeId().getValue()); - return true; + return; } private boolean isAZendPceNode(String serviceFormat, PceOpticalNode pceNode, String azNodeId, String azEndPoint) { @@ -557,7 +565,7 @@ public class PceCalculation { } } - private boolean validateOtnNode(Node node) { + private void validateOtnNode(Node node) { LOG.info("validateOtnNode: {} ", node.getNodeId().getValue()); // PceOtnNode will be used in Graph algorithm if (node.augmentation(Node1.class) != null) { @@ -568,10 +576,10 @@ public class PceCalculation { if (!pceOtnNode.isValid()) { LOG.warn(" validateOtnNode: Node {} is ignored", node.getNodeId().getValue()); - return false; + return; } if (validateNodeConstraints(pceOtnNode).equals(ConstraintTypes.HARD_EXCLUDE)) { - return false; + return; } if (pceOtnNode.getNodeId().getValue().equals(anodeId) && this.aendPceNode == null) { this.aendPceNode = pceOtnNode; @@ -581,10 +589,10 @@ public class PceCalculation { } allPceNodes.put(pceOtnNode.getNodeId(), pceOtnNode); LOG.info("validateOtnNode: node {} is saved", node.getNodeId().getValue()); - return true; + return; } else { LOG.error("ValidateOtnNode: no node-type augmentation. Node {} is ignored", node.getNodeId().getValue()); - return false; + return; } } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java index 210a2c653..86688d2b3 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java @@ -18,7 +18,9 @@ import java.util.Map; import java.util.Optional; import java.util.TreeMap; import org.opendaylight.transportpce.common.fixedflex.GridConstant; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.pce.SortPortsByName; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.Mapping; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State; import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates; @@ -26,6 +28,8 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev20052 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCH; +import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOTUCnODUCn; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; @@ -40,9 +44,12 @@ public class PceOpticalNode implements PceNode { private Node node; private NodeId nodeId; + private String deviceNodeId; private OpenroadmNodeType nodeType; private AdminStates adminStates; private State state; + private String serviceType; + private PortMapping portMapping; private Map availableSrgPp = new TreeMap<>(); private Map availableSrgCp = new TreeMap<>(); @@ -54,12 +61,19 @@ public class PceOpticalNode implements PceNode { private String version; private BigDecimal slotWidthGranularity; - public PceOpticalNode(Node node, OpenroadmNodeType nodeType, String version, BigDecimal slotWidthGranularity) { - if (node != null + public PceOpticalNode(String deviceNodeId, String serviceType, PortMapping portMapping, Node node, + OpenroadmNodeType nodeType, String version, BigDecimal slotWidthGranularity) { + if (deviceNodeId != null + && serviceType != null + && portMapping != null + && node != null && node.getNodeId() != null && nodeType != null && version != null && slotWidthGranularity != null) { + this.deviceNodeId = deviceNodeId; + this.serviceType = serviceType; + this.portMapping = portMapping; this.node = node; this.nodeId = node.getNodeId(); this.nodeType = nodeType; @@ -150,6 +164,33 @@ public class PceOpticalNode implements PceNode { availableByteArray); } + private boolean isTpWithGoodCapabilities( + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node + .TerminationPoint tp) { + Mapping mapping = this.portMapping.getMapping(deviceNodeId, tp.getTpId().getValue()); + if (mapping == null || mapping.getSupportedInterfaceCapability() == null) { + return true; + } + switch (this.serviceType) { + case "400GE": + if (mapping.getSupportedInterfaceCapability().contains(IfOTUCnODUCn.class)) { + return true; + } else { + return false; + } + case "100GE": + if (mapping.getSupportedInterfaceCapability().contains( + org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181019.IfOCH.class) + || mapping.getSupportedInterfaceCapability().contains(IfOCH.class)) { + return true; + } else { + return false; + } + default: + return true; + } + } + public void initFrequenciesBitSet() { if (!isValid()) { return; @@ -223,18 +264,22 @@ public class PceOpticalNode implements PceNode { for (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network .node.TerminationPoint tp : allTps) { TerminationPoint1 cntp1 = tp.augmentation(TerminationPoint1.class); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1 nttp1 = tp - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529 - .TerminationPoint1.class); if (cntp1.getTpType() != OpenroadmTpType.XPONDERNETWORK) { LOG.warn("initXndrTps: {} is not an Xponder network port", cntp1.getTpType().getName()); continue; } + if (!isTpWithGoodCapabilities(tp)) { + LOG.warn("initXndrTps: {} network port has not correct if-capabilities", tp.getTpId().getValue()); + continue; + } if (!State.InService.equals(cntp1.getOperationalState())) { LOG.warn("initXndrTps: XPONDER tp = {} is OOS/degraded", tp.getTpId().getValue()); this.valid = false; continue; } + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1 nttp1 = tp + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529 + .TerminationPoint1.class); if (nttp1 != null && nttp1.getXpdrNetworkAttributes().getWavelength() != null) { this.usedXpndrNWTps.add(tp.getTpId().getValue()); LOG.info("initXndrTps: XPONDER tp = {} is used", tp.getTpId().getValue()); diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImpl.java b/pce/src/main/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImpl.java index 24ec30ff4..d3536def9 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImpl.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImpl.java @@ -17,6 +17,7 @@ import java.util.concurrent.Callable; import java.util.concurrent.Executors; import java.util.stream.Collectors; import org.opendaylight.mdsal.binding.api.NotificationPublishService; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.pce.PceComplianceCheck; import org.opendaylight.transportpce.pce.PceComplianceCheckResult; @@ -62,14 +63,16 @@ public class PathComputationServiceImpl implements PathComputationService { private final ListeningExecutorService executor; private ServicePathRpcResult notification = null; private final GnpyConsumer gnpyConsumer; + private PortMapping portMapping; public PathComputationServiceImpl(NetworkTransactionService networkTransactionService, NotificationPublishService notificationPublishService, - GnpyConsumer gnpyConsumer) { + GnpyConsumer gnpyConsumer, PortMapping portMapping) { this.notificationPublishService = notificationPublishService; this.networkTransactionService = networkTransactionService; this.executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(5)); this.gnpyConsumer = gnpyConsumer; + this.portMapping = portMapping; } public void init() { @@ -158,7 +161,7 @@ public class PathComputationServiceImpl implements PathComputationService { String message = ""; String responseCode = ""; PceSendingPceRPCs sendingPCE = new PceSendingPceRPCs(input, networkTransactionService, - gnpyConsumer); + gnpyConsumer, portMapping); sendingPCE.pathComputation(); message = sendingPCE.getMessage(); responseCode = sendingPCE.getResponseCode(); diff --git a/pce/src/main/resources/OSGI-INF/blueprint/pce-blueprint.xml b/pce/src/main/resources/OSGI-INF/blueprint/pce-blueprint.xml index 2b7415a72..1716b4aeb 100755 --- a/pce/src/main/resources/OSGI-INF/blueprint/pce-blueprint.xml +++ b/pce/src/main/resources/OSGI-INF/blueprint/pce-blueprint.xml @@ -22,18 +22,11 @@ Author: Martial Coulibaly on behalf of Orange - - - - - - - - + + + + on behalf of Orange + map = Map.of(new LinkId("OpenROADM-3-1-DEG1-to-OpenROADM-3-2-DEG1"), pceLink); pcePathDescription = new PcePathDescription(List.of(pceLink), map, pceResult); - } // TODO fix opposite link diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/PceSendingPceRPCsTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/PceSendingPceRPCsTest.java index 299d9379e..5ce1b63f7 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/PceSendingPceRPCsTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/PceSendingPceRPCsTest.java @@ -16,6 +16,7 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.common.network.NetworkTransactionImpl; import org.opendaylight.transportpce.common.network.RequestProcessor; import org.opendaylight.transportpce.pce.gnpy.JerseyServer; @@ -38,6 +39,8 @@ public class PceSendingPceRPCsTest extends AbstractTest { private JerseyServer jerseyServer = new JerseyServer(); private DataBroker dataBroker; private GnpyConsumer gnpyConsumer; + @Mock + private PortMapping portMapping; @Before @@ -48,7 +51,7 @@ public class PceSendingPceRPCsTest extends AbstractTest { gnpyConsumer = new GnpyConsumerImpl("http://localhost:9998", "mylogin", "mypassword", getDataStoreContextUtil().getBindingDOMCodecServices()); pceSendingPceRPCs = new PceSendingPceRPCs(PceTestData.getPCE_test1_request_54(), - networkTransaction, gnpyConsumer); + networkTransaction, gnpyConsumer, portMapping); } @Test @@ -62,7 +65,7 @@ public class PceSendingPceRPCsTest extends AbstractTest { jerseyServer.setUp(); pceSendingPceRPCs = new PceSendingPceRPCs(PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"), - networkTransaction, gnpyConsumer); + networkTransaction, gnpyConsumer, portMapping); pceSendingPceRPCs.pathComputation(); Assert.assertTrue(gnpyConsumer.isAvailable()); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java index 74f1051ad..be90393f8 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java @@ -107,7 +107,7 @@ public class PceConstraintsTest extends AbstractTest { @Test public void getIncludePceNodesTest() { Assert.assertTrue(pceConstraints.getIncludePceNodes().size() == 0); - pceConstraints.setIncludePceNode(new PceOpticalNode(null, null, null, null)); + pceConstraints.setIncludePceNode(new PceOpticalNode(null, null, null, null, null, null, null)); Assert.assertTrue(pceConstraints.getIncludePceNodes().size() == 1); } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java index 9e8a61dc4..b7e38cbc9 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java @@ -11,8 +11,11 @@ package org.opendaylight.transportpce.pce.graph; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.common.fixedflex.GridConstant; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.pce.networkanalyzer.PceLink; import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode; import org.opendaylight.transportpce.pce.utils.NodeUtils; @@ -26,10 +29,15 @@ public class PceGraphEdgeTest { private Node node = null; private PceLink pceLink = null; private PceGraphEdge pceGraphEdge = null; + private String deviceNodeId = "device node"; + private String serviceType = "100GE"; + @Mock + private PortMapping portMapping; @Before public void setUp() { + MockitoAnnotations.initMocks(this); // Build Link link = NodeUtils.createRoadmToRoadm("OpenROADM-3-2-DEG1", "OpenROADM-3-1-DEG1", @@ -38,9 +46,9 @@ public class PceGraphEdgeTest { // Link link=genereateLinkBuilder(); node = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()).build(); - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); - PceOpticalNode pceOpticalNode2 = new PceOpticalNode(node, + PceOpticalNode pceOpticalNode2 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode2); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java index cedf39046..1b89575f8 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java @@ -13,8 +13,11 @@ import java.util.Optional; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.common.fixedflex.GridConstant; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.pce.constraints.PceConstraints; import org.opendaylight.transportpce.pce.networkanalyzer.PceLink; import org.opendaylight.transportpce.pce.networkanalyzer.PceNode; @@ -45,9 +48,14 @@ public class PceGraphTest { private PceOpticalNode pceOpticalNode = null; private PceOpticalNode pceOpticalNode2 = null; private Map allPceNodes = null; + private String deviceNodeId = "device node"; + private String serviceType = "100GE"; + @Mock + private PortMapping portMapping; @Before public void setUp() { + MockitoAnnotations.initMocks(this); // Build Link link = NodeUtils.createRoadmToRoadm("OpenROADM-3-2-DEG1", "OpenROADM-3-1-DEG1", @@ -57,12 +65,12 @@ public class PceGraphTest { node = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()) .setNodeId(nodeId).withKey(new NodeKey(nodeId)) .build(); - pceOpticalNode = new PceOpticalNode(node, + pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); NodeId nodeId2 = new NodeId("OpenROADM-3-1-DEG1"); Node node2 = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()) .setNodeId(nodeId2).withKey(new NodeKey(nodeId2)).build(); - pceOpticalNode2 = new PceOpticalNode(node2, + pceOpticalNode2 = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node2, OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode2); pceLink.setClient("XPONDER-CLIENT"); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceProviderTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceProviderTest.java index 1a69d3db4..4f2bf07dc 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceProviderTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceProviderTest.java @@ -42,7 +42,7 @@ public class PceProviderTest extends AbstractTest { requestProcessor = Mockito.mock(RequestProcessor.class); networkTransaction = new NetworkTransactionImpl(requestProcessor); pathComputationService = new PathComputationServiceImpl(networkTransaction, notificationPublishService, - null); + null, null); pceProvider = new PceProvider(rpcService, pathComputationService); } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceServiceRPCImplTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceServiceRPCImplTest.java index 3e953ea86..48fdc7794 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceServiceRPCImplTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/impl/PceServiceRPCImplTest.java @@ -13,7 +13,9 @@ import static org.junit.Assert.assertNotNull; import java.util.concurrent.ExecutionException; import org.junit.Before; import org.junit.Test; +import org.mockito.Mock; import org.opendaylight.mdsal.binding.api.NotificationPublishService; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.common.network.NetworkTransactionImpl; import org.opendaylight.transportpce.common.network.RequestProcessor; import org.opendaylight.transportpce.pce.service.PathComputationService; @@ -32,6 +34,8 @@ public class PceServiceRPCImplTest extends AbstractTest { private NotificationPublishService notificationPublishService; private NetworkTransactionImpl networkTransaction; private PceServiceRPCImpl pceServiceRPC; + @Mock + private PortMapping portMapping; @Before public void setUp() throws ExecutionException, InterruptedException { @@ -40,7 +44,7 @@ public class PceServiceRPCImplTest extends AbstractTest { notificationPublishService = new NotificationPublishServiceMock(); networkTransaction = new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())); pathComputationService = new PathComputationServiceImpl(networkTransaction, notificationPublishService, - null); + null, portMapping); pceServiceRPC = new PceServiceRPCImpl(pathComputationService); } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculationTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculationTest.java index 4aeed59ab..46c78cab7 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculationTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculationTest.java @@ -42,7 +42,8 @@ public class PceCalculationTest extends AbstractTest { new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())), pceConstraintsCalc.getPceHardConstraints(), pceConstraintsCalc.getPceSoftConstraints(), - pceResult); + pceResult, + null); } @Test @@ -64,7 +65,7 @@ public class PceCalculationTest extends AbstractTest { new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())), pceConstraintsCalc.getPceHardConstraints(), pceConstraintsCalc.getPceSoftConstraints(), - pceResult); + pceResult, null); pceCalculation.retrievePceNetwork(); Assert.assertEquals(StringConstants.SERVICE_TYPE_100GE, pceCalculation.getServiceType()); Assert.assertNotNull(pceCalculation.getReturnStructure()); @@ -85,7 +86,7 @@ public class PceCalculationTest extends AbstractTest { new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())), pceConstraintsCalc.getPceHardConstraints(), pceConstraintsCalc.getPceSoftConstraints(), - pceResult); + pceResult, null); pceCalculation.retrievePceNetwork(); // Assert.assertEquals(StringConstants.SERVICE_TYPE_100GE, pceCalculation.getServiceType()); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java index d07c01407..243a1bb17 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java @@ -14,9 +14,12 @@ import java.util.Map; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.common.fixedflex.GridConstant; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.test.AbstractTest; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; @@ -58,10 +61,14 @@ public class PceLinkTest extends AbstractTest { private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s"; private PceLink pceLink = null; + private String deviceNodeId = "device node"; + private String serviceType = "100GE"; + @Mock + private PortMapping portMapping; @Before public void setup() { - + MockitoAnnotations.initMocks(this); } @Test @@ -71,7 +78,7 @@ public class PceLinkTest extends AbstractTest { "srcTp", "destTp").build(); NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -84,7 +91,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -97,7 +104,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); @@ -111,7 +118,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -124,7 +131,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); Assert.assertNotNull(MapUtils.getOmsAttributesSpan(link)); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java index 935a5d8a5..da0144307 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java @@ -16,10 +16,13 @@ import java.util.Map; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.common.fixedflex.GridUtils; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.test.AbstractTest; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder; @@ -65,26 +68,31 @@ public class PceOpticalNodeTest extends AbstractTest { private Node node; private BitSet usedBitSet = new BitSet(8); private BitSet availableBitSet = new BitSet(8); + private String deviceNodeId = "device node"; + private String serviceType = "100GE"; + @Mock + private PortMapping portMapping; @Before public void setUp() { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP); node = node1Builder.setNodeId(new NodeId("test")).build(); availableBitSet.set(0,8); + MockitoAnnotations.initMocks(this); } @Test public void isValidTest() { OpenroadmNodeType nodeType = OpenroadmNodeType.ROADM; - pceOpticalNode = new PceOpticalNode(node, nodeType, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, - GridConstant.SLOT_WIDTH_50); + pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, nodeType, + StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); Assert.assertTrue(pceOpticalNode.isValid()); } @Test public void testInitSrgTps() { - pceOpticalNode = new PceOpticalNode(node, + pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); pceOpticalNode.initXndrTps(ServiceFormat.OMS); @@ -101,7 +109,7 @@ public class PceOpticalNodeTest extends AbstractTest { public void testInitXndrTpSrgTypes() { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.XPONDERNETWORK); Node specificNode = node1Builder.build(); - pceOpticalNode = new PceOpticalNode(specificNode, + pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, specificNode, OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initFrequenciesBitSet(); Assert.assertTrue(pceOpticalNode.isValid()); @@ -111,7 +119,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testInitXndrTpDegTypes() { - pceOpticalNode = new PceOpticalNode(node, + pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initFrequenciesBitSet(); Assert.assertTrue(pceOpticalNode.isValid()); @@ -121,7 +129,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testInitXndrTpXpondrTypes() { - pceOpticalNode = new PceOpticalNode(node, + pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, OpenroadmNodeType.XPONDER, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initFrequenciesBitSet(); Assert.assertTrue(pceOpticalNode.isValid()); @@ -131,7 +139,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testinitFrequenciesBitSet() { - pceOpticalNode = new PceOpticalNode(node, + pceOpticalNode = new PceOpticalNode(null, null, null, node, OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initXndrTps(ServiceFormat.OMS); pceOpticalNode.initFrequenciesBitSet(); @@ -142,7 +150,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testGetRdmSrgClient() { - pceOpticalNode = new PceOpticalNode(node, + pceOpticalNode = new PceOpticalNode(null, null, null, node, OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); Assert.assertNull(pceOpticalNode.getRdmSrgClient("7")); @@ -155,7 +163,7 @@ public class PceOpticalNodeTest extends AbstractTest { public void testGetRdmSrgClientEmpty() { NodeBuilder node1Builder = getNodeBuilderEmpty(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP); Node specificNode = node1Builder.setNodeId(new NodeId("test")).build(); - pceOpticalNode = new PceOpticalNode(specificNode, + pceOpticalNode = new PceOpticalNode(null, null, null, specificNode, OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); pceOpticalNode.initFrequenciesBitSet(); @@ -168,7 +176,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testGetRdmSrgClientDeg() { - pceOpticalNode = new PceOpticalNode(node, + pceOpticalNode = new PceOpticalNode(null, null, null, node, OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); Assert.assertNull(pceOpticalNode.getRdmSrgClient("7")); @@ -181,7 +189,7 @@ public class PceOpticalNodeTest extends AbstractTest { public void testGetRdmSrgClientsrgtxcp() { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXCP); Node specificNode = node1Builder.build(); - pceOpticalNode = new PceOpticalNode(specificNode, + pceOpticalNode = new PceOpticalNode(null, null, null, specificNode, OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); Assert.assertFalse(pceOpticalNode.isValid()); @@ -194,7 +202,7 @@ public class PceOpticalNodeTest extends AbstractTest { public void testGetRdmSrgClientDegreerxtpp() { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.DEGREERXTTP); node = node1Builder.build(); - pceOpticalNode = new PceOpticalNode(node, + pceOpticalNode = new PceOpticalNode(null, null, null, node, OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); Assert.assertNull(pceOpticalNode.getRdmSrgClient("2")); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImplTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImplTest.java index 0ab6d1c1e..29d40e329 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImplTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/service/PathComputationServiceImplTest.java @@ -49,7 +49,7 @@ public class PathComputationServiceImplTest extends AbstractTest { gnpyResult = Mockito.mock(GnpyResult.class); pathComputationServiceImpl = new PathComputationServiceImpl( networkTransactionService, - this.getNotificationPublishService(), null); + this.getNotificationPublishService(), null, null); pathComputationServiceImpl.init(); }