X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=pce%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fpce%2Fgnpy%2FGnpyTopoImpl.java;h=39b31a8d84181b2f90209af64b41753feebc7b86;hb=98de423782828b8b44b9cb341a581e1e90a16971;hp=94049b975d73923a85ae957ae592ee68e628b766;hpb=f5a8fe61d265bce36b2fca393d82685a22ac326a;p=transportpce.git diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyTopoImpl.java b/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyTopoImpl.java index 94049b975..39b31a8d8 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyTopoImpl.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyTopoImpl.java @@ -10,6 +10,7 @@ package org.opendaylight.transportpce.pce.gnpy; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -40,6 +41,7 @@ import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.Co import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.ConnectionsBuilder; import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.Elements; import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.ElementsBuilder; +import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.ElementsKey; import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.elements.Metadata; import org.opendaylight.yang.gen.v1.gnpy.gnpy.network.topology.rev181214.topo.elements.MetadataBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; @@ -76,7 +78,7 @@ public class GnpyTopoImpl { private static final Logger LOG = LoggerFactory.getLogger(GnpyTopoImpl.class); private final NetworkTransactionService networkTransactionService; //List of elements - private List elements = new ArrayList<>(); + private Map elements = new HashMap<>(); private List connections = new ArrayList<>(); //Mapping elements //Mapping between the ord-topo and ord-ntw node @@ -160,8 +162,8 @@ public class GnpyTopoImpl { throw new GnpyException("In gnpyTopoImpl: openRoadmNet or openRoadmTopo is not present"); } // Create the list of nodes - List openRoadmNetNodeList = openRoadmNet.get().getNode(); - List openRoadmTopoNodeList = openRoadmTopo.get().getNode(); + Collection openRoadmNetNodeList = openRoadmNet.get().nonnullNode().values(); + Collection openRoadmTopoNodeList = openRoadmTopo.get().nonnullNode().values(); List nodesList = new ArrayList<>(); if (openRoadmTopoNodeList.isEmpty() || openRoadmNetNodeList.isEmpty()) { @@ -170,7 +172,7 @@ public class GnpyTopoImpl { // Create elements for (Node openRoadmTopoNode : openRoadmTopoNodeList) { // Retrieve the supporting node and the type of the node in openRoadm network - List supportingNodeList = openRoadmTopoNode.getSupportingNode(); + Collection supportingNodeList = openRoadmTopoNode.nonnullSupportingNode().values(); for (SupportingNode supportingNode : supportingNodeList) { if (!supportingNode.getNetworkRef().getValue().equals("openroadm-network")) { @@ -207,14 +209,14 @@ public class GnpyTopoImpl { if (!nodesList.contains(nodeRef)) { Elements element = createElementsRoadm(LATITUDE, LONGITUTE, nodeRef, openRoadmNetNode1.getShelf(),TARGET_PCH_OUT_DB, ipAddress.getIpv4Address().getValue()); - this.elements.add(element); + this.elements.put(element.key(),element); nodesList.add(nodeRef); } } else if (commonNetworkNode1.getNodeType().getName().equals("XPONDER")) { if (!nodesList.contains(nodeRef)) { Elements element = createElementsTransceiver(LATITUDE, LONGITUTE, nodeRef, openRoadmNetNode1.getShelf(),ipAddress.getIpv4Address().getValue()); - this.elements.add(element); + this.elements.put(element.key(),element); nodesList.add(nodeRef); trxList.add(nodeRef); } @@ -231,7 +233,7 @@ public class GnpyTopoImpl { throw new GnpyException("In gnpyTopoImpl: openroadmTopo is not present"); } Network1 nw1 = openRoadmTopo.get().augmentation(Network1.class); - List linksList = nw1.getLink(); + Collection linksList = nw1.nonnullLink().values(); // 1:EXPRESS-LINK 2:ADD-LINK 3:DROP-LINK // 4:ROADM-To-ROADM 5:XPONDER-INPUT 6:XPONDER-OUTPUT int[] externalLink = {OpenroadmLinkType.ROADMTOROADM.getIntValue(),OpenroadmLinkType.XPONDERINPUT.getIntValue(), @@ -284,12 +286,12 @@ public class GnpyTopoImpl { private IpAddress extractAmplifiedLink(OMSAttributes omsAttributes, String linkId, IpAddress srcIp) throws GnpyException { - List amplifiedLinkList = omsAttributes.getAmplifiedLink() - .getAmplifiedLink(); + List amplifiedLinkList = new ArrayList<>(omsAttributes.getAmplifiedLink() + .nonnullAmplifiedLink().values()); IpAddress destIp = null; if (!amplifiedLinkList.isEmpty()) { - for (AmplifiedLink amplifiedLink : amplifiedLinkList) { - String secElt = amplifiedLink.getSectionEltNumber().toString(); + for (AmplifiedLink amplifiedLink: amplifiedLinkList) { + String secElt = amplifiedLink .getSectionEltNumber().toString(); //Case of ILA if (amplifiedLink.getSectionElement().getSectionElement() instanceof Ila) { Ila ila = (Ila) amplifiedLink.getSectionElement().getSectionElement(); @@ -330,7 +332,7 @@ public class GnpyTopoImpl { ila.getGain().getValue(), ila.getTilt().getValue(), ila.getOutVoaAtt().getValue(), "std_medium_gain", ipEdfa.getIpv4Address().getValue()); - this.elements.add(element); + this.elements.put(element.key(),element); return ipEdfa; } @@ -338,7 +340,7 @@ public class GnpyTopoImpl { IpAddress ipFiber = new IpAddress(fiberId); if (!mapLinkFiber.containsKey(linkId)) { - mapLinkFiber.put(linkId, new ArrayList()); + mapLinkFiber.put(linkId, new ArrayList<>()); } mapLinkFiber.get(linkId).add(subLinkId); mapFiberIp.put(subLinkId, ipFiber); @@ -349,8 +351,7 @@ public class GnpyTopoImpl { String typeVariety = "SSMF"; double length = 0; // Compute the length of the link - List linkConcatenationList = span.getLinkConcatenation(); - for (LinkConcatenation linkConcatenation : linkConcatenationList) { + for (LinkConcatenation linkConcatenation : span.nonnullLinkConcatenation().values()) { double srlgLength = linkConcatenation.getSRLGLength().toJava(); //convert to kilometer length += srlgLength / CONVERT_KM_M; @@ -362,7 +363,7 @@ public class GnpyTopoImpl { double lossCoef = span.getSpanlossCurrent().getValue().doubleValue() / length; Elements element = createElementsFiber(LATITUDE, LONGITUTE, REGION, CITY, ipFiber.getIpv4Address().getValue(), length, attIn, lossCoef, connIn, connOut, typeVariety); - this.elements.add(element); + this.elements.put(element.key(),element); return ipFiber; } @@ -492,11 +493,11 @@ public class GnpyTopoImpl { return new Ipv4Address(nidString); } - public List getElements() { + public Map getElements() { return elements; } - public void setElements(List elements) { + public void setElements(Map elements) { this.elements = elements; }