X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=pce%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fpce%2Fnetworkanalyzer%2FMapUtils.java;h=1dcf97e24b5308f3785a1687150f2e1e15a889f3;hb=refs%2Fchanges%2F46%2F100646%2F27;hp=bb946712d731d788dde31cd7d762c7fe41047901;hpb=b2eebc50a333738904e3835100f38dd438ddb165;p=transportpce.git diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/MapUtils.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/MapUtils.java index bb946712d..1dcf97e24 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/MapUtils.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/MapUtils.java @@ -9,23 +9,29 @@ package org.opendaylight.transportpce.pce.networkanalyzer; import java.util.ArrayList; import java.util.Arrays; +import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.SortedMap; import java.util.TreeMap; - import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.pce.constraints.PceConstraints; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.Span; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.link.oms.attributes.Span; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmLinkType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.link.concatenation.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.link.concatenation.LinkConcatenationKey; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SupportingLink; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public final class MapUtils { + private static final String MAP_UTILS_NO_LINK_AUGMENTATION_AVAILABLE_MSG = + "MapUtils: No Link augmentation available. {}"; /* Logging. */ private static final Logger LOG = LoggerFactory.getLogger(MapUtils.class); @@ -44,7 +50,7 @@ public final class MapUtils { for (Node node : allNodes) { if (excClliNodes.contains(node.getNodeId().getValue())) { LOG.debug("mapDiversityConstraints setExcludeCLLI for node {}", node.getNodeId().getValue()); - pceHardConstraints.setExcludeCLLI(Arrays.asList(getCLLI(node))); + pceHardConstraints.setExcludeCLLI(List.of(getCLLI(node))); } if (excNodes.contains(node.getNodeId().getValue())) { @@ -77,49 +83,45 @@ public final class MapUtils { public static String getCLLI(Node node) { // TODO STUB retrieve CLLI from node. for now it is supporting node ID of the first supp node - return node.getSupportingNode().get(0).getNodeRef().getValue(); + return node.nonnullSupportingNode().values().iterator().next().getNodeRef().getValue(); } public static List getSRLG(Link link) { + Span omsAttributesSpan = getOmsAttributesSpan(link); + if (omsAttributesSpan == null) { + LOG.debug("No concatenation for this link"); + return new ArrayList<>(); + } List srlgList = new ArrayList<>(); - try { - List linkList = getOmsAttributesSpan(link).getLinkConcatenation(); - for (LinkConcatenation lc : linkList) { + Map linkList = omsAttributesSpan.nonnullLinkConcatenation(); + for (LinkConcatenation lc : linkList.values()) { + if (lc != null && lc.getSRLGId() != null) { srlgList.add(lc.getSRLGId().toJava()); } - } catch (NullPointerException e) { - LOG.debug("No concatenation for this link"); } return srlgList; } public static List getSRLGfromLink(Link link) { - List srlgList = new ArrayList<>(); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1 linkC = - link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1 linkC = link + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1.class); if (linkC == null) { - LOG.error("MapUtils: No Link augmentation available. {}", link.getLinkId().getValue()); - - } else { - try { - List linkConcatenation = linkC.getLinkConcatenation(); - - - for (org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.networks.network.link - .LinkConcatenation lc : linkConcatenation) { - srlgList.add(lc.getSRLGId().toJava()); - } - } catch (NullPointerException e) { - LOG.debug("No concatenation for this link"); + LOG.error(MAP_UTILS_NO_LINK_AUGMENTATION_AVAILABLE_MSG, link.getLinkId().getValue()); + return new ArrayList<>(); + } + List srlgList = new ArrayList<>(); + for (LinkConcatenation lc : linkC.nonnullLinkConcatenation().values()) { + if (lc != null && lc.getSRLGId() != null) { + srlgList.add(lc.getSRLGId().toJava()); + } else { + LOG.debug("No concatenation or SLRG id for this link"); } } return srlgList; } public static String getSupNetworkNode(Node node) { - List supNodes = node.getSupportingNode(); - for (SupportingNode snode : supNodes) { + for (SupportingNode snode : node.nonnullSupportingNode().values()) { if (NetworkUtils.UNDERLAY_NETWORK_ID.equals(snode.getNetworkRef().getValue())) { return snode.getNodeRef().getValue(); } @@ -128,8 +130,7 @@ public final class MapUtils { } public static String getSupClliNode(Node node) { - List supNodes = node.getSupportingNode(); - for (SupportingNode snode : supNodes) { + for (SupportingNode snode : node.nonnullSupportingNode().values()) { if (NetworkUtils.CLLI_NETWORK_ID.equals(snode.getNetworkRef().getValue())) { return snode.getNodeRef().getValue(); } @@ -137,15 +138,9 @@ public final class MapUtils { return null; } - public static TreeMap getAllSupNode(Node node) { + public static SortedMap getAllSupNode(Node node) { TreeMap allSupNodes = new TreeMap<>(); - List supNodes = new ArrayList<>(); - try { - supNodes = node.getSupportingNode(); - } catch (NullPointerException e) { - LOG.debug("No Supporting Node for the node {}", node); - } - for (SupportingNode supnode :supNodes) { + for (SupportingNode supnode : node.nonnullSupportingNode().values()) { allSupNodes.put(supnode.getNetworkRef().getValue(), supnode.getNodeRef().getValue()); } @@ -153,22 +148,24 @@ public final class MapUtils { } public static String getSupLink(Link link) { - String supLink = ""; - try { - supLink = link.getSupportingLink().get(0).getLinkRef().toString(); - } catch (NullPointerException e) { - LOG.debug("No Supporting Link for the link {}", link); + Iterator supportingLinkIterator = link.nonnullSupportingLink().values().iterator(); + if (!supportingLinkIterator.hasNext()) { + return ""; + } + SupportingLink first = supportingLinkIterator.next(); + if (first == null || first.getLinkRef() == null) { + return ""; } - return supLink; + return first.getLinkRef().toString(); } public static Long getAvailableBandwidth(Link link) { - if (link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + if (link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210 .Link1.class) != null - && link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + && link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210 .Link1.class).getAvailableBandwidth() != null) { - return link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + return link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210 .Link1.class).getAvailableBandwidth().toJava(); } else { LOG.warn("MapUtils: no Available Bandwidth available for link {}", link.getLinkId()); @@ -177,11 +174,11 @@ public final class MapUtils { } public static Long getUsedBandwidth(Link link) { - if (link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + if (link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210 .Link1.class) != null - && link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + && link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210 .Link1.class).getUsedBandwidth() != null) { - return link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev181130 + return link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev211210 .Link1.class).getUsedBandwidth().toJava(); } else { LOG.warn("MapUtils: no Available Bandwidth available for link {}", link.getLinkId()); @@ -195,7 +192,7 @@ public final class MapUtils { // ID and type link1 = link.augmentation(Link1.class); if (link1 == null) { - LOG.error("MapUtils: No Link augmentation available. {}", link.getLinkId().getValue()); + LOG.error(MAP_UTILS_NO_LINK_AUGMENTATION_AVAILABLE_MSG, link.getLinkId().getValue()); return null; } @@ -209,28 +206,25 @@ public final class MapUtils { } public static Span getOmsAttributesSpan(Link link) { - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1 link1 = null; - Span tempSpan = null; + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Link1 link1 = null; link1 = - link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1.class); + link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Link1.class); if (link1 == null) { - LOG.error("MapUtils: No Link augmentation available. {}", link.getLinkId().getValue()); - } - try { - tempSpan = link1.getOMSAttributes().getSpan(); + LOG.error(MAP_UTILS_NO_LINK_AUGMENTATION_AVAILABLE_MSG, link.getLinkId().getValue()); + return null; } - catch (NullPointerException e) { + if (link1.getOMSAttributes() == null) { LOG.error("MapUtils: No Link getOMSAttributes available. {}", link.getLinkId().getValue()); + return null; } - - return tempSpan; + return link1.getOMSAttributes().getSpan(); } public static LinkId extractOppositeLink(Link link) { LinkId tmpoppositeLink = null; - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1 linkOpposite - = link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1.class); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1 linkOpposite + = link.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1.class); tmpoppositeLink = linkOpposite.getOppositeLink(); LOG.debug("PceLink: reading oppositeLink. {}", linkOpposite); if (tmpoppositeLink == null) {