X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=networkmodel%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2Futil%2FOpenRoadmTopology.java;h=25994f7116af65dd41600cea1dbb0e3555a232b2;hb=2a4ffb4cfa232a15ff89c29815de7f70e54c1741;hp=37142a1f6726aad32fb7a97266e02669bb045378;hpb=e8b516c52451ad5055529b3e11065546a58394b3;p=transportpce.git 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 37142a1f6..25994f711 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 @@ -8,6 +8,8 @@ package org.opendaylight.transportpce.networkmodel.util; +import static org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes.Tpdr; + import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; @@ -22,24 +24,22 @@ import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.common.fixedflex.GridUtils; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.networkmodel.dto.TopologyShard; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.Mapping; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.NodeTypes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.XpdrNodeTypes; import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; -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.topology.rev211210.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.DegreeAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.SrgAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.SrgAttributesBuilder; +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.OpenroadmNodeType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmTpType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId; @@ -72,330 +72,313 @@ public final class OpenRoadmTopology { private static final Logger LOG = LoggerFactory.getLogger(OpenRoadmTopology.class); + private static Map PORTQUAL_ORD_TYPE_MAP = Map.of( + "xpdr-network", OpenroadmTpType.XPONDERNETWORK, + "switch-network", OpenroadmTpType.XPONDERNETWORK, + "xpdr-client", OpenroadmTpType.XPONDERCLIENT + ); + private static Map> PORTDIR_ORD_TYPE_MAP = Map.of( + "bidirectional", List.of(OpenroadmTpType.DEGREETXRXTTP, OpenroadmTpType.SRGTXRXPP), + "tx", List.of(OpenroadmTpType.DEGREETXTTP, OpenroadmTpType.SRGTXPP), + "rx", List.of(OpenroadmTpType.DEGREERXTTP, OpenroadmTpType.SRGRXPP) + ); + private OpenRoadmTopology() { } public static TopologyShard createTopologyShard(Nodes mappingNode) { - int numOfDegrees; - int numOfSrgs; - List nodes = new ArrayList<>(); - List links = new ArrayList<>(); + return createTopologyShard(mappingNode, true); + } - // Check if node is ROADM - if (NodeTypes.Rdm.getIntValue() == mappingNode.getNodeInfo().getNodeType().getIntValue()) { - LOG.info("creating rdm node in openroadmtopology for node {}", mappingNode.getNodeId()); - // transform flat mapping list to per degree and per srg mapping lists - Map> mapDeg = new HashMap<>(); - Map> mapSrg = new HashMap<>(); - List mappingList = new ArrayList<>(mappingNode.nonnullMapping().values()); - mappingList.sort(Comparator.comparing(Mapping::getLogicalConnectionPoint)); + public static TopologyShard createTopologyShard(Nodes mappingNode, boolean firstMount) { + switch (mappingNode.getNodeInfo().getNodeType()) { + case Rdm : + return createRdmTopologyShard(mappingNode, firstMount); + case Xpdr : + return createXpdrTopologyShard(mappingNode); + default : + LOG.error("Device node Type not managed yet"); + return null; + } + } - List nodeShardList = new ArrayList<>(); - for (Mapping mapping : mappingList) { - String str = mapping.getLogicalConnectionPoint().split("-")[0]; - if (!nodeShardList.contains(str)) { - nodeShardList.add(str); - } - } - for (String str : nodeShardList) { - List interList = mappingList.stream().filter(x -> x.getLogicalConnectionPoint().contains(str)) - .collect(Collectors.toList()); - if (str.contains("DEG")) { - mapDeg.put(str, interList); - } else if (str.contains("SRG")) { - mapSrg.put(str, interList); - } else { - LOG.error("unknown element"); - } - } - // create degree nodes - for (Map.Entry> entry : mapDeg.entrySet()) { - NodeBuilder ietfNode = createDegree(entry.getKey(), entry.getValue(), mappingNode.getNodeId(), - mappingNode.getNodeInfo().getNodeClli()); - nodes.add(ietfNode.build()); + public static TopologyShard createRdmTopologyShard(Nodes mappingNode, boolean firstMount) { + List nodes = new ArrayList<>(); + LOG.info("creating rdm node in openroadmtopology for node {}", + mappingNode.getNodeId()); + // transform flat mapping list to per degree and per srg mapping lists + Map> mapDeg = new HashMap<>(); + Map> mapSrg = new HashMap<>(); + List mappingList = new ArrayList<>(mappingNode.nonnullMapping().values()); + mappingList.sort(Comparator.comparing(Mapping::getLogicalConnectionPoint)); + List nodeShardList = new ArrayList<>(); + for (Mapping mapping : mappingList) { + String str = mapping.getLogicalConnectionPoint().split("-")[0]; + if (!nodeShardList.contains(str)) { + nodeShardList.add(str); } - // create srg nodes - for (Map.Entry> entry : mapSrg.entrySet()) { - NodeBuilder ietfNode = createSrg(entry.getKey(), entry.getValue(), mappingNode.getNodeId(), - mappingNode.getNodeInfo().getNodeClli()); - nodes.add(ietfNode.build()); + } + for (String str : nodeShardList) { + List interList = + mappingList.stream() + .filter(x -> x.getLogicalConnectionPoint().split("-")[0].equals(str)) + .collect(Collectors.toList()); + if (str.contains("DEG")) { + mapDeg.put(str, interList); + } else if (str.contains("SRG")) { + mapSrg.put(str, interList); + } else { + LOG.error("unknow element"); } + } + // create degree nodes + for (Map.Entry> entry : mapDeg.entrySet()) { + nodes.add( + createDegree(entry.getKey(), entry.getValue(), mappingNode.getNodeId(), + mappingNode.getNodeInfo().getNodeClli(), firstMount) + .build()); + } + // create srg nodes + for (Map.Entry> entry : mapSrg.entrySet()) { + nodes.add( + createSrg(entry.getKey(), entry.getValue(), mappingNode.getNodeId(), + mappingNode.getNodeInfo().getNodeClli(), firstMount) + .build()); + } + LOG.info("adding links numOfDegrees={} numOfSrgs={}", mapDeg.size(), mapSrg.size()); + List links = createNewLinks(nodes); + LOG.info("created nodes/links: {}/{}", nodes.size(), links.size()); + return new TopologyShard(nodes, links); + } - numOfDegrees = mapDeg.size(); - numOfSrgs = mapSrg.size(); - - LOG.info("adding links numOfDegrees={} numOfSrgs={}", numOfDegrees, numOfSrgs); - links.addAll(createNewLinks(nodes)); - LOG.info("created nodes/links: {}/{}", nodes.size(), links.size()); - return new TopologyShard(nodes, links); - } else if (NodeTypes.Xpdr.getIntValue() == mappingNode.getNodeInfo().getNodeType().getIntValue()) { - // Check if node is Xpdr is a Transponder - List networkMappings = mappingNode.nonnullMapping().values() - .stream().filter(k -> k.getLogicalConnectionPoint() - .contains("NETWORK")).collect(Collectors.toList()); - List tpdrList = new ArrayList<>(); - for (Mapping mapping : networkMappings) { - List extractedMappings = null; - Integer xpdrNb = Integer.parseInt(mapping.getLogicalConnectionPoint().split("XPDR")[1].split("-")[0]); - if (!tpdrList.contains(xpdrNb)) { - tpdrList.add(xpdrNb); - extractedMappings = mappingNode.nonnullMapping().values().stream().filter(lcp -> lcp - .getLogicalConnectionPoint().contains("XPDR" + xpdrNb)).collect(Collectors.toList()); - NodeBuilder ietfNode; - if (mapping.getXponderType() == null - || XpdrNodeTypes.Tpdr.getIntValue() == mapping.getXponderType().getIntValue()) { - LOG.info("creating xpdr node {} of type Tpdr in openroadm-topology", - mappingNode.getNodeId() + "-XPDR" + xpdrNb); - ietfNode = createXpdr(mappingNode.getNodeId(), mappingNode.getNodeInfo().getNodeClli(), xpdrNb, - extractedMappings, false); - nodes.add(ietfNode.build()); - } else if (XpdrNodeTypes.Mpdr.getIntValue() == mapping.getXponderType().getIntValue() - || XpdrNodeTypes.Switch.getIntValue() == mapping.getXponderType().getIntValue()) { - LOG.info("creating xpdr node {} of type {} in openroadm-topology", - mappingNode.getNodeId() + "-XPDR" + xpdrNb, mapping.getXponderType().getName()); - ietfNode = createXpdr(mappingNode.getNodeId(), mappingNode.getNodeInfo().getNodeClli(), xpdrNb, - extractedMappings, true); - nodes.add(ietfNode.build()); - } + public static TopologyShard createXpdrTopologyShard(Nodes mappingNode) { + List nodes = new ArrayList<>(); + List networkMappings = + mappingNode.nonnullMapping().values() + .stream().filter(k -> k.getLogicalConnectionPoint().contains("NETWORK")) + .collect(Collectors.toList()); + List tpdrList = new ArrayList<>(); + for (Mapping mapping : networkMappings) { + Integer xpdrNb = Integer.parseInt(mapping.getLogicalConnectionPoint().split("XPDR")[1].split("-")[0]); + if (!tpdrList.contains(xpdrNb)) { + tpdrList.add(xpdrNb); + List extractedMappings = mappingNode.nonnullMapping().values() + .stream().filter(lcp -> lcp.getLogicalConnectionPoint().contains("XPDR" + xpdrNb)) + .collect(Collectors.toList()); + Boolean isOtn; + String xpdrType; + switch (mapping.getXponderType() == null ? Tpdr : mapping.getXponderType()) { + case Tpdr : + isOtn = false; + xpdrType = "Tpdr"; + break; + case Mpdr : + case Switch : + isOtn = true; + xpdrType = mapping.getXponderType().getName(); + break; + default : + LOG.warn("cannot create xpdr node {} in openroadm-topology: type {} not supported", + mappingNode.getNodeId() + "-XPDR" + xpdrNb, mapping.getXponderType().getName()); + continue; } - } - if (nodes.isEmpty()) { - return null; - } else { - return new TopologyShard(nodes, links); + LOG.info("creating xpdr node {} of type {} in openroadm-topology", + mappingNode.getNodeId() + "-XPDR" + xpdrNb, xpdrType); + nodes.add(createXpdr( + mappingNode.getNodeId(), + mappingNode.getNodeInfo().getNodeClli(), + xpdrNb, + extractedMappings, + isOtn) + .build()); } } - LOG.error("Device node Type not managed yet"); - return null; + return nodes.isEmpty() ? null : new TopologyShard(nodes, new ArrayList()); } private static NodeBuilder createXpdr(String nodeId, String clli, Integer xpdrNb, List mappings, - boolean isOtn) { - // Create openroadm-network-topo augmentation to set node type to Xponder - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 ocnNode1 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() - .setNodeType(OpenroadmNodeType.XPONDER) - .setAdministrativeState(AdminStates.InService) - .setOperationalState(State.InService) - .build(); + boolean isOtn) { // Create ietf node setting supporting-node data - NodeBuilder ietfNodeBldr = createTopoLayerNode(nodeId, clli); - // set node-id String nodeIdtopo = new StringBuilder().append(nodeId).append("-XPDR").append(xpdrNb).toString(); - ietfNodeBldr.setNodeId(new NodeId(nodeIdtopo)) - .withKey((new NodeKey(new NodeId(nodeIdtopo)))) - .addAugmentation(ocnNode1); - + NodeBuilder ietfNodeBldr = createTopoLayerNode(nodeId, clli) + .setNodeId(new NodeId(nodeIdtopo)) + .withKey((new NodeKey(new NodeId(nodeIdtopo)))) + .addAugmentation( + // Create openroadm-network-topo augmentation to set node type to Xponder + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder() + .setNodeType(OpenroadmNodeType.XPONDER) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) + .build()); // Create tp-map Map tpMap = new HashMap<>(); - TerminationPointBuilder ietfTpBldr; for (Mapping m : mappings) { - if (!isOtn) { - ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); - // Add openroadm-network-topology tp augmentations - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder - ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http - .org.openroadm.common.network.rev200529.TerminationPoint1Builder() + if (!PORTQUAL_ORD_TYPE_MAP.containsKey(m.getPortQual())) { + continue; + } + if (isOtn && m.getPortQual().equals("xpdr-client")) { + continue; + } + TerminationPointBuilder ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()) + .addAugmentation( + // Add openroadm-network-topology tp augmentations + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210 + .TerminationPoint1Builder() + .setTpType(PORTQUAL_ORD_TYPE_MAP.get(m.getPortQual())) .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState())) - .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState())); - if (m.getPortQual().equals("xpdr-network")) { - ocnTp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK); - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.TerminationPoint1 tpceTp1 = - new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.TerminationPoint1Builder() - .setAssociatedConnectionMapPort(m.getConnectionMapLcp()).build(); - ietfTpBldr - .addAugmentation(ocnTp1Bldr.build()) - .addAugmentation(tpceTp1); - TerminationPoint ietfTp = ietfTpBldr.build(); - tpMap.put(ietfTp.key(),ietfTp); - } else if (m.getPortQual().equals("xpdr-client")) { - ocnTp1Bldr.setTpType(OpenroadmTpType.XPONDERCLIENT); - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.TerminationPoint1 tpceTp1 = - new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.TerminationPoint1Builder() - .setAssociatedConnectionMapPort(m.getConnectionMapLcp()).build(); - ietfTpBldr - .addAugmentation(ocnTp1Bldr.build()) - .addAugmentation(tpceTp1); - TerminationPoint ietfTp = ietfTpBldr.build(); - tpMap.put(ietfTp.key(),ietfTp); - } - } else { - if (m.getPortQual().equals("xpdr-network") || m.getPortQual().equals("switch-network")) { - ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder - ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http - .org.openroadm.common.network.rev200529.TerminationPoint1Builder() - .setTpType(OpenroadmTpType.XPONDERNETWORK) - .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState())) - .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState())); - ietfTpBldr - .addAugmentation(ocnTp1Bldr.build()); - TerminationPoint ietfTp = ietfTpBldr.build(); - tpMap.put(ietfTp.key(),ietfTp); - } + .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState())) + .build()); + if (!isOtn) { + ietfTpBldr.addAugmentation( + new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev220123 + .TerminationPoint1Builder() + .setAssociatedConnectionMapPort(m.getConnectionMapLcp()) + .build()); } + TerminationPoint ietfTp = ietfTpBldr.build(); + tpMap.put(ietfTp.key(),ietfTp); } // Create ietf node augmentation to support ietf tp-list - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder - ietfNode1 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 - .Node1Builder().setTerminationPoint(tpMap); - ietfNodeBldr.addAugmentation(ietfNode1.build()); - return ietfNodeBldr; + return ietfNodeBldr.addAugmentation( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder() + .setTerminationPoint(tpMap) + .build()); } - private static NodeBuilder createDegree(String degNb, List degListMap, String nodeId, String clli) { + private static NodeBuilder createDegree(String degNb, List degListMap, String nodeId, String clli, + boolean firstMount) { // Create tp-list Map tpMap = new HashMap<>(); - TerminationPointBuilder ietfTpBldr; for (Mapping m : degListMap) { - ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); // Add openroadm-common-network tp type augmentations - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder - ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 - .TerminationPoint1Builder() - .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState())) - .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState())); - // Added states to degree port. TODO: add to mapping relation between abstracted and physical node states - switch (m.getPortDirection()) { - case "bidirectional": - ocnTp1Bldr.setTpType(OpenroadmTpType.DEGREETXRXTTP); - break; - case "tx": - ocnTp1Bldr.setTpType(OpenroadmTpType.DEGREETXTTP); - break; - case "rx": - ocnTp1Bldr.setTpType(OpenroadmTpType.DEGREERXTTP); - break; - default: - LOG.error("impossible to set tp-type to {}", m.getLogicalConnectionPoint()); + if (!PORTDIR_ORD_TYPE_MAP.containsKey(m.getPortDirection())) { + LOG.error("impossible to set tp-type to {}", m.getLogicalConnectionPoint()); } - ietfTpBldr.addAugmentation(ocnTp1Bldr.build()); - TerminationPoint ietfTp = ietfTpBldr.build(); + TerminationPoint ietfTp = createTpBldr(m.getLogicalConnectionPoint()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210 + .TerminationPoint1Builder() + .setTpType(PORTDIR_ORD_TYPE_MAP.get(m.getPortDirection()).get(0)) + .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState())) + .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState())) + .build()) + .build(); tpMap.put(ietfTp.key(),ietfTp); } // Add CTP to tp-list + added states. TODO: same comment as before with the relation between states - ietfTpBldr = createTpBldr(degNb + "-CTP-TXRX"); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 ocnTp1 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() - .setTpType(OpenroadmTpType.DEGREETXRXCTP) - .setAdministrativeState(AdminStates.InService) - .setOperationalState(State.InService) - .build(); - ietfTpBldr.addAugmentation(ocnTp1); - TerminationPoint ietfTp = ietfTpBldr.build(); + TerminationPoint ietfTp = createTpBldr(degNb + "-CTP-TXRX") + .addAugmentation(new org.opendaylight.yang.gen.v1.http + .org.openroadm.common.network.rev211210.TerminationPoint1Builder() + .setTpType(OpenroadmTpType.DEGREETXRXCTP) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) + .build()) + .build(); tpMap.put(ietfTp.key(),ietfTp); // set degree-attributes - DegreeAttributes degAtt = new DegreeAttributesBuilder() - .setDegreeNumber(Uint16.valueOf(degNb.split("DEG")[1])) - .setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()) - .build(); - // Create ietf node augmentation to support ietf tp-list - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder - ietfNode1 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 - .Node1Builder().setTerminationPoint(tpMap); + DegreeAttributesBuilder degAttBldr = new DegreeAttributesBuilder() + .setDegreeNumber(Uint16.valueOf(degNb.split("DEG")[1])); + if (firstMount) { + degAttBldr.setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()); + } + DegreeAttributes degAtt = degAttBldr.build(); // set node-id String nodeIdtopo = new StringBuilder().append(nodeId).append("-").append(degNb).toString(); - Node1 ontNode1 = new Node1Builder().setDegreeAttributes(degAtt).build(); - // Create openroadm-common-network augmentation to set node type to DEGREE - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 ocnNode1 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() - .setNodeType(OpenroadmNodeType.DEGREE) - .setAdministrativeState(AdminStates.InService) - .setOperationalState(State.InService) - .build(); // Create ietf node setting supporting-node data return createTopoLayerNode(nodeId, clli) - .setNodeId(new NodeId(nodeIdtopo)) - .withKey((new NodeKey(new NodeId(nodeIdtopo)))) - .addAugmentation(ontNode1) - .addAugmentation(ocnNode1) - .addAugmentation(ietfNode1.build()); + .setNodeId(new NodeId(nodeIdtopo)) + .withKey((new NodeKey(new NodeId(nodeIdtopo)))) + .addAugmentation(new Node1Builder().setDegreeAttributes(degAtt).build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210 + .Node1Builder() + .setNodeType(OpenroadmNodeType.DEGREE) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 + .Node1Builder() + .setTerminationPoint(tpMap) + .build()); } - private static NodeBuilder createSrg(String srgNb, List srgListMap, String nodeId, String clli) { + private static NodeBuilder createSrg(String srgNb, List srgListMap, String nodeId, String clli, + boolean firstMount) { // Create tp-list Map tpMap = new HashMap<>(); - TerminationPointBuilder ietfTpBldr; for (Mapping m : srgListMap) { - ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); - // Add openroadm-common-network tp type augmentations - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 - .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http - .org.openroadm.common.network.rev200529.TerminationPoint1Builder() - .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState())) - .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState())); // Added states to srg port. TODO: add to mapping relation between abstracted and physical node states - switch (m.getPortDirection()) { - case "bidirectional": - ocnTp1Bldr.setTpType(OpenroadmTpType.SRGTXRXPP); - break; - case "tx": - ocnTp1Bldr.setTpType(OpenroadmTpType.SRGTXPP); - break; - case "rx": - ocnTp1Bldr.setTpType(OpenroadmTpType.SRGRXPP); - break; - default: - LOG.error("impossible to set tp-type to {}", m.getLogicalConnectionPoint()); + if (!PORTDIR_ORD_TYPE_MAP.containsKey(m.getPortDirection())) { + LOG.error("impossible to set tp-type to {}", m.getLogicalConnectionPoint()); } - ietfTpBldr.addAugmentation(ocnTp1Bldr.build()); - TerminationPoint ietfTp = ietfTpBldr.build(); + TerminationPoint ietfTp = createTpBldr(m.getLogicalConnectionPoint()) + .addAugmentation( + // Add openroadm-common-network tp type augmentations + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210 + .TerminationPoint1Builder() + .setTpType(PORTDIR_ORD_TYPE_MAP.get(m.getPortDirection()).get(1)) + .setAdministrativeState(TopologyUtils.setNetworkAdminState(m.getPortAdminState())) + .setOperationalState(TopologyUtils.setNetworkOperState(m.getPortOperState())) + .build()) + .build(); tpMap.put(ietfTp.key(),ietfTp); } // Add CP to tp-list + added states. TODO: same comment as before with the relation between states - ietfTpBldr = createTpBldr(srgNb + "-CP-TXRX"); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 - .TerminationPoint1 ocnTp1 = new org.opendaylight.yang.gen.v1 - .http.org.openroadm.common.network.rev200529.TerminationPoint1Builder() - .setTpType(OpenroadmTpType.SRGTXRXCP) - .setAdministrativeState(AdminStates.InService) - .setOperationalState(State.InService) - .build(); - ietfTpBldr.addAugmentation(ocnTp1); - TerminationPoint ietfTp = ietfTpBldr.build(); - tpMap.put(ietfTp.key(),ietfTp); - // Create openroadm-common-network augmentation to set node type to SRG - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 ocnNode1 = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder() - .setNodeType(OpenroadmNodeType.SRG) + TerminationPoint ietfTp = createTpBldr(srgNb + "-CP-TXRX") + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210 + .TerminationPoint1Builder() + .setTpType(OpenroadmTpType.SRGTXRXCP) .setAdministrativeState(AdminStates.InService) .setOperationalState(State.InService) - .build(); + .build()) + .build(); + tpMap.put(ietfTp.key(),ietfTp); // set srg-attributes - SrgAttributes srgAttr = new SrgAttributesBuilder() - .setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()).build(); - Node1 ontNode1 = new Node1Builder().setSrgAttributes(srgAttr).build(); + SrgAttributesBuilder srgAttrBldr = new SrgAttributesBuilder(); + if (firstMount) { + srgAttrBldr.setAvailFreqMaps(GridUtils.initFreqMaps4FixedGrid2Available()); + } + SrgAttributes srgAttr = srgAttrBldr.build(); // Create ietf node augmentation to support ietf tp-list - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder - ietfNode1 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 - .Node1Builder().setTerminationPoint(tpMap); // Create ietf node setting supporting-node data String nodeIdtopo = new StringBuilder().append(nodeId).append("-").append(srgNb).toString(); return createTopoLayerNode(nodeId, clli) .setNodeId(new NodeId(nodeIdtopo)) .withKey((new NodeKey(new NodeId(nodeIdtopo)))) - .addAugmentation(ontNode1) - .addAugmentation(ocnNode1) - .addAugmentation(ietfNode1.build()); + .addAugmentation(new Node1Builder().setSrgAttributes(srgAttr).build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210 + .Node1Builder() + .setNodeType(OpenroadmNodeType.SRG) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) + .build()) + .addAugmentation( + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 + .Node1Builder() + .setTerminationPoint(tpMap) + .build()); } private static NodeBuilder createTopoLayerNode(String nodeId, String clli) { // Sets the value of Network-ref and Node-ref as a part of the supporting node // attribute - SupportingNodeBuilder support1bldr = new SupportingNodeBuilder() - .withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID), new NodeId(nodeId))) - .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)) - .setNodeRef(new NodeId(nodeId)); - SupportingNodeBuilder support2bldr = new SupportingNodeBuilder() - .withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID), new NodeId(clli))) - .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)) - .setNodeRef(new NodeId(clli)); + SupportingNode support1 = new SupportingNodeBuilder() + .withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID), new NodeId(nodeId))) + .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)) + .setNodeRef(new NodeId(nodeId)) + .build(); + SupportingNode support2 = new SupportingNodeBuilder() + .withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID), new NodeId(clli))) + .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)) + .setNodeRef(new NodeId(clli)) + .build(); Map supportlist = new HashMap<>(); - SupportingNode support1 = support1bldr.build(); - supportlist.put(support1.key(),support1); - SupportingNode support2 = support2bldr.build(); - supportlist.put(support2.key(),support2); + supportlist.put(support1.key(), support1); + supportlist.put(support2.key(), support2); return new NodeBuilder().setSupportingNode(supportlist); } @@ -407,17 +390,20 @@ public final class OpenRoadmTopology { } private static LinkBuilder createLink(String srcNode, String destNode, String srcTp, String destTp) { - //create source link - SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp); - //create destination link - DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode)) - .setDestTp(destTp); LinkId linkId = LinkIdUtil.buildLinkId(srcNode, srcTp, destNode, destTp); return new LinkBuilder() - .setSource(ietfSrcLinkBldr.build()) - .setDestination(ietfDestLinkBldr.build()) - .setLinkId(linkId) - .withKey(new LinkKey(linkId)); + .setSource( + new SourceBuilder() + .setSourceNode(new NodeId(srcNode)) + .setSourceTp(new TpId(srcTp)) + .build()) + .setDestination( + new DestinationBuilder() + .setDestNode(new NodeId(destNode)) + .setDestTp(new TpId(destTp)) + .build()) + .setLinkId(linkId) + .withKey(new LinkKey(linkId)); } private static List createNewLinks(List nodes) { @@ -432,53 +418,57 @@ public final class OpenRoadmTopology { destNode = nodes.get(j).getNodeId().getValue(); // A to Z direction srcTp = nodes.get(i) - .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang - .ietf.network.topology.rev180226.Node1.class).nonnullTerminationPoint().values().stream() - .filter(tp -> tp.getTpId().getValue().contains("CP") || tp.getTpId().getValue().contains("CTP")) - .findFirst().get().getTpId().getValue(); + .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang + .ietf.network.topology.rev180226.Node1.class) + .nonnullTerminationPoint().values().stream() + .filter(tp -> tp.getTpId().getValue().contains("CP") || tp.getTpId().getValue().contains("CTP")) + .findFirst().get().getTpId().getValue(); destTp = nodes.get(j) - .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang - .ietf.network.topology.rev180226.Node1.class) - .nonnullTerminationPoint().values().stream() - .filter(tp -> tp.getTpId().getValue().contains("CP") || tp.getTpId().getValue().contains("CTP")) - .findFirst().get().getTpId().getValue(); + .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang + .ietf.network.topology.rev180226.Node1.class) + .nonnullTerminationPoint().values().stream() + .filter(tp -> tp.getTpId().getValue().contains("CP") || tp.getTpId().getValue().contains("CTP")) + .findFirst().get().getTpId().getValue(); Link1Builder ocnAzLinkBldr = new Link1Builder(); + Link1Builder ocnZaLinkBldr = new Link1Builder(); int srcNodeType = nodes.get(i).augmentation(org.opendaylight.yang.gen.v1.http - .org.openroadm.common.network.rev200529.Node1.class).getNodeType().getIntValue(); + .org.openroadm.common.network.rev211210.Node1.class).getNodeType().getIntValue(); int destNodeType = nodes.get(j).augmentation(org.opendaylight.yang.gen.v1.http - .org.openroadm.common.network.rev200529.Node1.class).getNodeType().getIntValue(); + .org.openroadm.common.network.rev211210.Node1.class).getNodeType().getIntValue(); + if (srcNodeType == 11 && destNodeType == 11) { ocnAzLinkBldr.setLinkType(OpenroadmLinkType.EXPRESSLINK); + ocnZaLinkBldr.setLinkType(OpenroadmLinkType.EXPRESSLINK); } else if (srcNodeType == 11 && destNodeType == 12) { ocnAzLinkBldr.setLinkType(OpenroadmLinkType.DROPLINK); + ocnZaLinkBldr.setLinkType(OpenroadmLinkType.ADDLINK); } else if (srcNodeType == 12 && destNodeType == 11) { ocnAzLinkBldr.setLinkType(OpenroadmLinkType.ADDLINK); - } else { - continue; - } - // Z to A direction - Link1Builder ocnZaLinkBldr = new Link1Builder(); - if (srcNodeType == 11 && destNodeType == 11) { - ocnZaLinkBldr.setLinkType(OpenroadmLinkType.EXPRESSLINK); - } else if (destNodeType == 11 && srcNodeType == 12) { ocnZaLinkBldr.setLinkType(OpenroadmLinkType.DROPLINK); - } else if (destNodeType == 12 && srcNodeType == 11) { - ocnZaLinkBldr.setLinkType(OpenroadmLinkType.ADDLINK); } else { continue; } + // Add state to link. Based on the operational state of the TPs at the edge of the link. // Similar to getting srcTp and destTp - State srcTpState = nodes.get(i).augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang - .ietf.network.topology.rev180226.Node1.class).getTerminationPoint().values().stream() - .filter(tp -> tp.getTpId().getValue().contains("CP") || tp.getTpId().getValue().contains("CTP")) - .findFirst().get().augmentation(org.opendaylight.yang.gen.v1.http - .org.openroadm.common.network.rev200529.TerminationPoint1.class).getOperationalState(); - State destTpState = nodes.get(j).augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang - .ietf.network.topology.rev180226.Node1.class).getTerminationPoint().values().stream() - .filter(tp -> tp.getTpId().getValue().contains("CP") || tp.getTpId().getValue().contains("CTP")) - .findFirst().get().augmentation(org.opendaylight.yang.gen.v1.http - .org.openroadm.common.network.rev200529.TerminationPoint1.class).getOperationalState(); + State srcTpState = nodes.get(i) + .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang + .ietf.network.topology.rev180226.Node1.class) + .getTerminationPoint().values().stream() + .filter(tp -> tp.getTpId().getValue().contains("CP") || tp.getTpId().getValue().contains("CTP")) + .findFirst().get() + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210 + .TerminationPoint1.class) + .getOperationalState(); + State destTpState = nodes.get(j) + .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang + .ietf.network.topology.rev180226.Node1.class) + .getTerminationPoint().values().stream() + .filter(tp -> tp.getTpId().getValue().contains("CP") || tp.getTpId().getValue().contains("CTP")) + .findFirst().get() + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210 + .TerminationPoint1.class) + .getOperationalState(); if (State.InService.equals(srcTpState) && State.InService.equals(destTpState)) { ocnAzLinkBldr.setAdministrativeState(AdminStates.InService) .setOperationalState(State.InService); @@ -522,28 +512,31 @@ public final class OpenRoadmTopology { public static boolean deleteLinkLinkId(LinkId linkId , NetworkTransactionService networkTransactionService) { LOG.info("deleting link for LinkId: {}", linkId.getValue()); try { - InstanceIdentifierBuilder linkIID = InstanceIdentifier.builder(Networks.class).child(Network.class, - new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))).augmentation(Network1.class) + InstanceIdentifierBuilder linkIID = InstanceIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) + .augmentation(Network1.class) .child(Link.class, new LinkKey(linkId)); java.util.Optional link = networkTransactionService.read(LogicalDatastoreType.CONFIGURATION,linkIID.build()).get(); - if (link.isPresent()) { - LinkBuilder linkBuilder = new LinkBuilder(link.get()); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder link1Builder = - new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder( - linkBuilder.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529 - .Link1.class)); - linkBuilder.removeAugmentation(Link1.class) - .addAugmentation(link1Builder.build()); - networkTransactionService.merge(LogicalDatastoreType.CONFIGURATION, linkIID.build(), - linkBuilder.build()); - networkTransactionService.commit().get(1, TimeUnit.SECONDS); - return true; - } else { - LOG.error("No link found for given LinkId: {}", - linkId); + if (link.isEmpty()) { + LOG.error("No link found for given LinkId: {}", linkId); return false; } + LinkBuilder linkBuilder = new LinkBuilder(link.get()); + networkTransactionService.merge( + LogicalDatastoreType.CONFIGURATION, + linkIID.build(), + linkBuilder + .removeAugmentation(Link1.class) + .addAugmentation( + new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210 + .Link1Builder(linkBuilder + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210 + .Link1.class)) + .build()) + .build()); + networkTransactionService.commit().get(1, TimeUnit.SECONDS); + return true; } catch (InterruptedException | ExecutionException | TimeoutException e) { LOG.error("Error deleting link {}", linkId.getValue(), e); @@ -557,19 +550,20 @@ public final class OpenRoadmTopology { * @param tpId String * @return InstanceIdentifierBuilder */ - public static InstanceIdentifierBuilder createCommonNetworkTerminationPointIIDBuilder(String nodeId, String tpId) { - return InstanceIdentifier - .builder(Networks.class).child(Network.class, new NetworkKey( - new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) - .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network - .Node.class, new NodeKey(new NodeId(nodeId))) - .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 - .Node1.class) - .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks - .network.node.TerminationPoint.class, new TerminationPointKey(new TpId(tpId))) - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529 - .TerminationPoint1.class); + public static InstanceIdentifierBuilder createCommonNetworkTerminationPointIIDBuilder(String nodeId, String tpId) { + return InstanceIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) + .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226 + .networks.network.Node.class, + new NodeKey(new NodeId(nodeId))) + .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 + .Node1.class) + .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 + .networks.network.node.TerminationPoint.class, + new TerminationPointKey(new TpId(tpId))) + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210 + .TerminationPoint1.class); } /** @@ -579,16 +573,17 @@ public final class OpenRoadmTopology { * @return InstanceIdentifierBuilder */ public static InstanceIdentifierBuilder createNetworkTerminationPointIIDBuilder(String nodeId, - String tpId) { - return InstanceIdentifier - .builder(Networks.class).child(Network.class, new NetworkKey( - new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) - .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network - .Node.class, new NodeKey(new NodeId(nodeId))) + String tpId) { + return InstanceIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) + .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226 + .networks.network.Node.class, + new NodeKey(new NodeId(nodeId))) .augmentation(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 - .Node1.class) - .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks - .network.node.TerminationPoint.class, new TerminationPointKey(new TpId(tpId))) + .Node1.class) + .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226 + .networks.network.node.TerminationPoint.class, + new TerminationPointKey(new TpId(tpId))) .augmentation(TerminationPoint1.class); } @@ -598,11 +593,12 @@ public final class OpenRoadmTopology { * @return InstanceIdentifier */ public static InstanceIdentifier createNetworkNodeIID(String nodeId) { - return InstanceIdentifier - .builder(Networks.class).child(Network.class, new NetworkKey( - new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) - .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network - .Node.class, new NodeKey(new NodeId(nodeId))).augmentation(Node1.class).build(); + return InstanceIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) + .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226 + .networks.network.Node.class, + new NodeKey(new NodeId(nodeId))) + .augmentation(Node1.class).build(); } /** @@ -610,14 +606,14 @@ public final class OpenRoadmTopology { * @param nodeId String * @return InstanceIdentifier */ - public static InstanceIdentifier createCommonNetworkNodeIID(String nodeId) { - return InstanceIdentifier - .builder(Networks.class).child(Network.class, new NetworkKey( - new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) - .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network - .Node.class, new NodeKey(new NodeId(nodeId))) - .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1.class) + public static InstanceIdentifier createCommonNetworkNodeIID(String nodeId) { + return InstanceIdentifier.builder(Networks.class) + .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID))) + .child(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226 + .networks.network.Node.class, + new NodeKey(new NodeId(nodeId))) + .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1.class) .build(); } }