X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=networkmodel%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2Futil%2FOpenRoadmTopology22.java;h=7fb4a91cd7bafcb3b77510d3721f599b7587691d;hb=66ccddbe00692f230350a19e1a222f09d6abd9a7;hp=7347c6ed58cafbc9f5574f7bf14484cd0dc5f0ad;hpb=45de2604acea011072a5478eaead6ffb96e1e6ea;p=transportpce.git diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology22.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology22.java index 7347c6ed5..7fb4a91cd 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology22.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology22.java @@ -21,11 +21,12 @@ import java.util.stream.Collectors; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; -import org.opendaylight.transportpce.common.device.DeviceTransactionManager; 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.rev190702.network.Nodes; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev190702.network.nodes.Mapping; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev191115.network.Nodes; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev191115.network.nodes.Mapping; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.networks.network.network.types.OpenroadmCommonNetworkBuilder; @@ -34,8 +35,6 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.No import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths; import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1; @@ -82,12 +81,9 @@ public class OpenRoadmTopology22 { private static final Logger LOG = LoggerFactory.getLogger(OpenRoadmTopology22.class); private NetworkTransactionService networkTransactionService; - private final DeviceTransactionManager deviceTransactionManager; - public OpenRoadmTopology22(NetworkTransactionService networkTransactionService, - DeviceTransactionManager deviceTransactionManager) { + public OpenRoadmTopology22(NetworkTransactionService networkTransactionService) { this.networkTransactionService = networkTransactionService; - this.deviceTransactionManager = deviceTransactionManager; } /** @@ -112,21 +108,21 @@ public class OpenRoadmTopology22 { * Create empty OpenROADM topology. */ private Network createOpenRoadmTopology() { - NetworkBuilder nwBuilder = new NetworkBuilder(); NetworkId nwId = new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID); - nwBuilder.setNetworkId(nwId); - nwBuilder.withKey(new NetworkKey(nwId)); - NetworkTypes1Builder topoNetworkTypesBldr = new NetworkTypes1Builder(); - topoNetworkTypesBldr.setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build()); - NetworkTypesBuilder nwTypeBuilder = new NetworkTypesBuilder(); - nwTypeBuilder.addAugmentation(NetworkTypes1.class, topoNetworkTypesBldr.build()); - nwBuilder.setNetworkTypes(nwTypeBuilder.build()); + NetworkTypes1Builder topoNetworkTypesBldr = new NetworkTypes1Builder() + .setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build()); + NetworkTypesBuilder nwTypeBuilder = new NetworkTypesBuilder() + .addAugmentation(NetworkTypes1.class, topoNetworkTypesBldr.build()); // Array to store nodes in the topolayer of a roadm/Xponder - Network1Builder nwBldr1 = new Network1Builder(); - // adding expressLinks - nwBldr1.setLink(Collections.emptyList()); - nwBuilder.addAugmentation(Network1.class, nwBldr1.build()); - nwBuilder.setNode(Collections.emptyList()); + Network1Builder nwBldr1 = new Network1Builder() + .setLink(Collections.emptyList()); + NetworkBuilder nwBuilder = new NetworkBuilder() + .setNetworkId(nwId) + .withKey(new NetworkKey(nwId)) + .setNetworkTypes(nwTypeBuilder.build()) + // adding expressLinks + .addAugmentation(Network1.class, nwBldr1.build()) + .setNode(Collections.emptyList()); return nwBuilder.build(); } @@ -140,12 +136,12 @@ public class OpenRoadmTopology22 { 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(); + Map> mapDeg = new HashMap<>(); + Map> mapSrg = new HashMap<>(); List mappingList = mappingNode.getMapping(); mappingList.sort(Comparator.comparing(Mapping::getLogicalConnectionPoint)); - List nodeShardList = new ArrayList(); + List nodeShardList = new ArrayList<>(); for (Mapping mapping : mappingList) { String str = mapping.getLogicalConnectionPoint().split("-")[0]; if (!nodeShardList.contains(str)) { @@ -153,7 +149,7 @@ public class OpenRoadmTopology22 { } } for (String str : nodeShardList) { - List interList = new ArrayList(); + List interList = new ArrayList<>(); interList = mappingList.stream().filter(x -> x.getLogicalConnectionPoint().contains(str)) .collect(Collectors.toList()); if (str.contains("DEG")) { @@ -194,16 +190,18 @@ public class OpenRoadmTopology22 { } private NodeBuilder createXpdr(Nodes mappingNode) { - // Create ietf node setting supporting-node data - NodeBuilder ietfNodeBldr = createTopoLayerNode(mappingNode.getNodeId()); // set node-id String nodeIdtopo = new StringBuilder().append(mappingNode.getNodeId()).append("-XPDR1").toString(); - ietfNodeBldr.setNodeId(new NodeId(nodeIdtopo)); - ietfNodeBldr.withKey((new NodeKey(new NodeId(nodeIdtopo)))); // Create openroadm-network-topo augmentation to set node type to Xponder - Node1Builder ontNode1Bldr = new Node1Builder(); - ontNode1Bldr.setNodeType(OpenroadmNodeType.XPONDER); - ietfNodeBldr.addAugmentation(Node1.class, ontNode1Bldr.build()); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .Node1Builder ocnNode1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .Node1Builder().setNodeType(OpenroadmNodeType.XPONDER); + // Create ietf node setting supporting-node data + NodeBuilder ietfNodeBldr = createTopoLayerNode(mappingNode.getNodeId()) + .setNodeId(new NodeId(nodeIdtopo)) + .withKey((new NodeKey(new NodeId(nodeIdtopo)))) + .addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .Node1.class, ocnNode1Bldr.build()); // Create tp-list List tpList = new ArrayList<>(); @@ -212,40 +210,45 @@ public class OpenRoadmTopology22 { ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); // Add openroadm-network-topology tp augmentations TerminationPoint1Builder ontTp1Bldr = new TerminationPoint1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common + .network.rev181130.TerminationPoint1Builder(); if (m.getPortQual().equals("xpdr-network")) { - ontTp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK); - XpdrNetworkAttributesBuilder xpdrNwAttrBldr = new XpdrNetworkAttributesBuilder(); - xpdrNwAttrBldr.setTailEquipmentId(m.getAssociatedLcp()); + XpdrNetworkAttributesBuilder xpdrNwAttrBldr = new XpdrNetworkAttributesBuilder() + .setTailEquipmentId(m.getAssociatedLcp()); ontTp1Bldr.setXpdrNetworkAttributes(xpdrNwAttrBldr.build()); - ietfTpBldr.addAugmentation(TerminationPoint1.class, ontTp1Bldr.build()); - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625 - .TerminationPoint1Builder tpceTp1Bldr = new org.opendaylight.yang.gen.v1.http.transportpce - .topology.rev190625.TerminationPoint1Builder(); - tpceTp1Bldr.setAssociatedConnectionMapPort(m.getAssociatedLcp()); - ietfTpBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625 - .TerminationPoint1.class, tpceTp1Bldr.build()); + ocnTp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK); + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625.TerminationPoint1Builder tpceTp1Bldr = + new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625.TerminationPoint1Builder() + .setAssociatedConnectionMapPort(m.getAssociatedLcp()); + ietfTpBldr.addAugmentation(TerminationPoint1.class, ontTp1Bldr.build()) + .addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1.class, ocnTp1Bldr.build()) + .addAugmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625 + .TerminationPoint1.class, tpceTp1Bldr.build()); tpList.add(ietfTpBldr.build()); } else if (m.getPortQual().equals("xpdr-client")) { - ontTp1Bldr.setTpType(OpenroadmTpType.XPONDERCLIENT); - XpdrClientAttributesBuilder xpdrNwAttrBldr = new XpdrClientAttributesBuilder(); - xpdrNwAttrBldr.setTailEquipmentId(m.getAssociatedLcp()); + XpdrClientAttributesBuilder xpdrNwAttrBldr = new XpdrClientAttributesBuilder() + .setTailEquipmentId(m.getAssociatedLcp()); ontTp1Bldr.setXpdrClientAttributes(xpdrNwAttrBldr.build()); - ietfTpBldr.addAugmentation(TerminationPoint1.class, ontTp1Bldr.build()); - org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625 - .TerminationPoint1Builder tpceTp1Bldr = new org.opendaylight.yang.gen.v1.http.transportpce - .topology.rev190625.TerminationPoint1Builder(); - tpceTp1Bldr.setAssociatedConnectionMapPort(m.getAssociatedLcp()); - ietfTpBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625 - .TerminationPoint1.class, tpceTp1Bldr.build()); + ocnTp1Bldr.setTpType(OpenroadmTpType.XPONDERCLIENT); + org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625.TerminationPoint1Builder tpceTp1Bldr = + new org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625.TerminationPoint1Builder() + .setAssociatedConnectionMapPort(m.getAssociatedLcp()); + ietfTpBldr.addAugmentation(TerminationPoint1.class, ontTp1Bldr.build()) + .addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1.class, ocnTp1Bldr.build()) + .addAugmentation(org.opendaylight.yang.gen.v1.http.transportpce.topology.rev190625 + .TerminationPoint1.class, tpceTp1Bldr.build()); tpList.add(ietfTpBldr.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(); - ietfNode1.setTerminationPoint(tpList); + .Node1Builder ietfNode1 = + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder() + .setTerminationPoint(tpList); ietfNodeBldr.addAugmentation( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class, ietfNode1.build()); @@ -253,156 +256,171 @@ public class OpenRoadmTopology22 { } private NodeBuilder createDegree(String degNb, List degListMap, String nodeId) { - // Create ietf node setting supporting-node data - NodeBuilder ietfNodeBldr = createTopoLayerNode(nodeId); - // set node-id - String nodeIdtopo = new StringBuilder().append(nodeId).append("-").append(degNb).toString(); - ietfNodeBldr.setNodeId(new NodeId(nodeIdtopo)); - ietfNodeBldr.withKey((new NodeKey(new NodeId(nodeIdtopo)))); - // Create openroadm-network-topo augmentation to set node type to DEGREE - Node1Builder ontNode1Bldr = new Node1Builder(); - ontNode1Bldr.setNodeType(OpenroadmNodeType.DEGREE); - // set degree-attributes - DegreeAttributesBuilder degAttBldr = new DegreeAttributesBuilder(); - degAttBldr.setDegreeNumber(new Integer(degNb.split("DEG")[1])); - degAttBldr.setAvailableWavelengths(create96AvalWaveDegree()); - ontNode1Bldr.setDegreeAttributes(degAttBldr.build()); - ietfNodeBldr.addAugmentation(Node1.class, ontNode1Bldr.build()); - // Create tp-list List tpList = new ArrayList<>(); TerminationPointBuilder ietfTpBldr; for (Mapping m : degListMap) { ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); // Add openroadm-network-topology tp augmentations - TerminationPoint1Builder ontTp1Bldr = new TerminationPoint1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common + .network.rev181130.TerminationPoint1Builder(); switch (m.getPortDirection()) { case "bidirectional": - ontTp1Bldr.setTpType(OpenroadmTpType.DEGREETXRXTTP); + ocnTp1Bldr.setTpType(OpenroadmTpType.DEGREETXRXTTP); break; case "tx": - ontTp1Bldr.setTpType(OpenroadmTpType.DEGREETXTTP); + ocnTp1Bldr.setTpType(OpenroadmTpType.DEGREETXTTP); break; case "rx": - ontTp1Bldr.setTpType(OpenroadmTpType.DEGREERXTTP); + ocnTp1Bldr.setTpType(OpenroadmTpType.DEGREERXTTP); break; default: LOG.error("impossible to set tp-type to {}", m.getLogicalConnectionPoint()); } - ietfTpBldr.addAugmentation(TerminationPoint1.class, ontTp1Bldr.build()); + ietfTpBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1.class, ocnTp1Bldr.build()); tpList.add(ietfTpBldr.build()); } // Add CTP to tp-list - ietfTpBldr = createTpBldr(degNb + "-CTP-TXRX"); - TerminationPoint1Builder ontTp1Bldr = new TerminationPoint1Builder(); - ontTp1Bldr.setTpType(OpenroadmTpType.DEGREETXRXCTP); - ietfTpBldr.addAugmentation(TerminationPoint1.class, ontTp1Bldr.build()); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder ocnTp1Bldr = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder() + .setTpType(OpenroadmTpType.DEGREETXRXCTP); + ietfTpBldr = createTpBldr(degNb + "-CTP-TXRX").addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm + .common.network.rev181130.TerminationPoint1.class, ocnTp1Bldr.build()); tpList.add(ietfTpBldr.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(); - ietfNode1.setTerminationPoint(tpList); - ietfNodeBldr.addAugmentation( - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class, - ietfNode1.build()); - return ietfNodeBldr; - } + .Node1Builder ietfNode1 = + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder() + .setTerminationPoint(tpList); - private NodeBuilder createSrg(String srgNb, List srgListMap, String nodeId) { - // Create ietf node setting supporting-node data - NodeBuilder ietfNodeBldr = createTopoLayerNode(nodeId); // set node-id - String nodeIdtopo = new StringBuilder().append(nodeId).append("-").append(srgNb).toString(); - ietfNodeBldr.setNodeId(new NodeId(nodeIdtopo)); - ietfNodeBldr.withKey((new NodeKey(new NodeId(nodeIdtopo)))); + String nodeIdtopo = new StringBuilder().append(nodeId).append("-").append(degNb).toString(); + // set degree-attributes + DegreeAttributesBuilder degAttBldr = new DegreeAttributesBuilder() + .setDegreeNumber(new Integer(degNb.split("DEG")[1])) + .setAvailableWavelengths(create96AvalWaveDegree()); // Create openroadm-network-topo augmentation to set node type to DEGREE - Node1Builder ontNode1Bldr = new Node1Builder(); - ontNode1Bldr.setNodeType(OpenroadmNodeType.SRG); - // set srg-attributes - SrgAttributesBuilder srgAttrBldr = new SrgAttributesBuilder(); - srgAttrBldr.setAvailableWavelengths(create96AvalWaveSrg()); - ontNode1Bldr.setSrgAttributes(srgAttrBldr.build()); - ietfNodeBldr.addAugmentation(Node1.class, ontNode1Bldr.build()); + Node1Builder ontNode1Bldr = new Node1Builder() + .setDegreeAttributes(degAttBldr.build()); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder ocnNode1Bldr = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder() + .setNodeType(OpenroadmNodeType.DEGREE); + // Create ietf node setting supporting-node data + NodeBuilder ietfNodeBldr = createTopoLayerNode(nodeId) + .setNodeId(new NodeId(nodeIdtopo)) + .withKey((new NodeKey(new NodeId(nodeIdtopo)))) + .addAugmentation(Node1.class, ontNode1Bldr.build()) + .addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .Node1.class, ocnNode1Bldr.build()) + .addAugmentation( + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class, + ietfNode1.build()); + return ietfNodeBldr; + } + + private NodeBuilder createSrg(String srgNb, List srgListMap, String nodeId) { // Create tp-list List tpList = new ArrayList<>(); TerminationPointBuilder ietfTpBldr; for (Mapping m : srgListMap) { ietfTpBldr = createTpBldr(m.getLogicalConnectionPoint()); // Add openroadm-network-topology tp augmentations - TerminationPoint1Builder ontTp1Bldr = new TerminationPoint1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1Builder ocnTp1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common + .network.rev181130.TerminationPoint1Builder(); switch (m.getPortDirection()) { case "bidirectional": - ontTp1Bldr.setTpType(OpenroadmTpType.SRGTXRXPP); + ocnTp1Bldr.setTpType(OpenroadmTpType.SRGTXRXPP); break; case "tx": - ontTp1Bldr.setTpType(OpenroadmTpType.SRGTXPP); + ocnTp1Bldr.setTpType(OpenroadmTpType.SRGTXPP); break; case "rx": - ontTp1Bldr.setTpType(OpenroadmTpType.SRGRXPP); + ocnTp1Bldr.setTpType(OpenroadmTpType.SRGRXPP); break; default: LOG.error("impossible to set tp-type to {}", m.getLogicalConnectionPoint()); } - ietfTpBldr.addAugmentation(TerminationPoint1.class, ontTp1Bldr.build()); + ietfTpBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .TerminationPoint1.class, ocnTp1Bldr.build()); tpList.add(ietfTpBldr.build()); } // Add CP to tp-list - ietfTpBldr = createTpBldr(srgNb + "-CP-TXRX"); - TerminationPoint1Builder ontTp1Bldr = new TerminationPoint1Builder(); - ontTp1Bldr.setTpType(OpenroadmTpType.SRGTXRXCP); - ietfTpBldr.addAugmentation(TerminationPoint1.class, ontTp1Bldr.build()); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder ocnTp1Bldr = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder() + .setTpType(OpenroadmTpType.SRGTXRXCP); + ietfTpBldr = createTpBldr(srgNb + "-CP-TXRX").addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm + .common.network.rev181130.TerminationPoint1.class, ocnTp1Bldr.build()); tpList.add(ietfTpBldr.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(); - ietfNode1.setTerminationPoint(tpList); - ietfNodeBldr.addAugmentation( - org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class, - ietfNode1.build()); + .Node1Builder ietfNode1 = + new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder() + .setTerminationPoint(tpList); + + // set node-id + String nodeIdtopo = new StringBuilder().append(nodeId).append("-").append(srgNb).toString(); + // set srg-attributes + SrgAttributesBuilder srgAttrBldr = new SrgAttributesBuilder().setAvailableWavelengths(create96AvalWaveSrg()); + // Create openroadm-network-topo augmentation to set node type to DEGREE + Node1Builder ontNode1Bldr = new Node1Builder() + .setSrgAttributes(srgAttrBldr.build()); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder ocnNode1Bldr = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder() + .setNodeType(OpenroadmNodeType.SRG); + + // Create ietf node setting supporting-node data + NodeBuilder ietfNodeBldr = createTopoLayerNode(nodeId) + .setNodeId(new NodeId(nodeIdtopo)) + .withKey((new NodeKey(new NodeId(nodeIdtopo)))) + .addAugmentation(Node1.class, ontNode1Bldr.build()) + .addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1.class, + ocnNode1Bldr.build()) + .addAugmentation( + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1.class, + ietfNode1.build()); return ietfNodeBldr; } private NodeBuilder createTopoLayerNode(String nodeId) { // Sets the value of Network-ref and Node-ref as a part of the supporting node // attribute - SupportingNodeBuilder supportbldr = new SupportingNodeBuilder(); - supportbldr.withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID), new NodeId(nodeId))); - supportbldr.setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)); - supportbldr.setNodeRef(new NodeId(nodeId)); + SupportingNodeBuilder supportbldr = 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)); ArrayList supportlist = new ArrayList<>(); supportlist.add(supportbldr.build()); - NodeBuilder nodebldr = new NodeBuilder(); - nodebldr.setSupportingNode(supportlist); + NodeBuilder nodebldr = new NodeBuilder().setSupportingNode(supportlist); return nodebldr; } // This method returns a generic termination point builder for a given tpid private TerminationPointBuilder createTpBldr(String tpId) { - TerminationPointBuilder tpBldr = new TerminationPointBuilder(); TpId tp = new TpId(tpId); TerminationPointKey tpKey = new TerminationPointKey(tp); - tpBldr.withKey(tpKey); - tpBldr.setTpId(tp); + TerminationPointBuilder tpBldr = new TerminationPointBuilder().withKey(tpKey).setTpId(tp); return tpBldr; } private LinkBuilder createLink(String srcNode, String destNode, String srcTp, String destTp) { - LinkBuilder ietfLinkBldr = new LinkBuilder(); //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); - ietfLinkBldr.setSource(ietfSrcLinkBldr.build()) - .setDestination(ietfDestLinkBldr.build()) - .setLinkId(LinkIdUtil.buildLinkId(srcNode, srcTp, destNode, destTp)) - .withKey(new LinkKey(ietfLinkBldr.getLinkId())); + DestinationBuilder ietfDestLinkBldr = new DestinationBuilder() + .setDestNode(new NodeId(destNode)) + .setDestTp(destTp); + LinkBuilder ietfLinkBldr = new LinkBuilder() + .setSource(ietfSrcLinkBldr.build()) + .setDestination(ietfDestLinkBldr.build()) + .setLinkId(LinkIdUtil.buildLinkId(srcNode, srcTp, destNode, destTp)); + ietfLinkBldr.withKey(new LinkKey(ietfLinkBldr.getLinkId())); return ietfLinkBldr; } @@ -425,44 +443,44 @@ public class OpenRoadmTopology22 { .network.topology.rev180226.Node1.class).getTerminationPoint().stream() .filter(tp -> tp.getTpId().getValue().contains("CP") || tp.getTpId().getValue().contains("CTP")) .findFirst().get().getTpId().getValue(); - LinkBuilder ietfAzLinkBldr = createLink(srcNode, destNode, srcTp, destTp); - Link1Builder ontAzLinkBldr = new Link1Builder(); - int srcNodeType = nodes.get(i).augmentation(Node1.class).getNodeType().getIntValue(); - int destNodeType = nodes.get(j).augmentation(Node1.class).getNodeType().getIntValue(); + Link1Builder ocnAzLinkBldr = new Link1Builder(); + int srcNodeType = nodes.get(i).augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common + .network.rev181130.Node1.class).getNodeType().getIntValue(); + int destNodeType = nodes.get(j).augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common + .network.rev181130.Node1.class).getNodeType().getIntValue(); + //The previous 2 lines generate warnings. + //Casting (nodes.get(i or j).augmentation(Node1.class)) to + //(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1) + //breaks the portmapping if (srcNodeType == 11 && destNodeType == 11) { - ontAzLinkBldr.setLinkType(OpenroadmLinkType.EXPRESSLINK); + ocnAzLinkBldr.setLinkType(OpenroadmLinkType.EXPRESSLINK); } else if (srcNodeType == 11 && destNodeType == 12) { - ontAzLinkBldr.setLinkType(OpenroadmLinkType.DROPLINK); + ocnAzLinkBldr.setLinkType(OpenroadmLinkType.DROPLINK); } else if (srcNodeType == 12 && destNodeType == 11) { - ontAzLinkBldr.setLinkType(OpenroadmLinkType.ADDLINK); + ocnAzLinkBldr.setLinkType(OpenroadmLinkType.ADDLINK); } else { continue; } // Z to A direction - LinkBuilder ietfZaLinkBldr = createLink(destNode, srcNode, destTp, srcTp); - Link1Builder ontZaLinkBldr = new Link1Builder(); + Link1Builder ocnZaLinkBldr = new Link1Builder(); if (srcNodeType == 11 && destNodeType == 11) { - ontZaLinkBldr.setLinkType(OpenroadmLinkType.EXPRESSLINK); + ocnZaLinkBldr.setLinkType(OpenroadmLinkType.EXPRESSLINK); } else if (destNodeType == 11 && srcNodeType == 12) { - ontZaLinkBldr.setLinkType(OpenroadmLinkType.DROPLINK); + ocnZaLinkBldr.setLinkType(OpenroadmLinkType.DROPLINK); } else if (destNodeType == 12 && srcNodeType == 11) { - ontZaLinkBldr.setLinkType(OpenroadmLinkType.ADDLINK); + ocnZaLinkBldr.setLinkType(OpenroadmLinkType.ADDLINK); } else { continue; } // set opposite link augmentations - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder ocnAzLinkBldr = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder() - .setOppositeLink(ietfZaLinkBldr.getLinkId()); - ietfAzLinkBldr.addAugmentation(Link1.class, ontAzLinkBldr.build()); - ietfAzLinkBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 - .Link1.class, ocnAzLinkBldr.build()); - ietfZaLinkBldr.addAugmentation(Link1.class, ontZaLinkBldr.build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder ocnZaLinkBldr = - new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder() - .setOppositeLink(ietfAzLinkBldr.getLinkId()); - ietfZaLinkBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 - .Link1.class, ocnZaLinkBldr.build()); + LinkBuilder ietfAzLinkBldr = createLink(srcNode, destNode, srcTp, destTp); + LinkBuilder ietfZaLinkBldr = createLink(destNode, srcNode, destTp, srcTp); + ocnAzLinkBldr.setOppositeLink(ietfZaLinkBldr.getLinkId()); + ietfAzLinkBldr.addAugmentation(Link1.class, ocnAzLinkBldr.build()) + .addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130 + .Link1.class, ocnAzLinkBldr.build()); + ocnZaLinkBldr.setOppositeLink(ietfAzLinkBldr.getLinkId()); + ietfZaLinkBldr.addAugmentation(Link1.class, ocnZaLinkBldr.build()); links.add(ietfAzLinkBldr.build()); links.add(ietfZaLinkBldr.build()); } @@ -495,11 +513,12 @@ public class OpenRoadmTopology22 { networkTransactionService.read(LogicalDatastoreType.CONFIGURATION,linkIID.build()).get(); if (link.isPresent()) { LinkBuilder linkBuilder = new LinkBuilder(link.get()); - Link1Builder link1Builder = new Link1Builder(linkBuilder.augmentation(org.opendaylight - .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1.class)); - link1Builder.setAdministrativeState(State.OutOfService); - linkBuilder.removeAugmentation(Link1.class); - linkBuilder.addAugmentation(Link1.class,link1Builder.build()); + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130 + .Link1Builder link1Builder = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology + .rev181130.Link1Builder(linkBuilder.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm + .network.topology.rev181130.Link1.class)).setAdministrativeState(State.OutOfService); + linkBuilder.removeAugmentation(Link1.class).addAugmentation(org.opendaylight.yang.gen.v1.http.org + .openroadm.network.topology.rev181130.Link1.class,link1Builder.build()); networkTransactionService.merge(LogicalDatastoreType.CONFIGURATION, linkIID.build(), linkBuilder.build()); networkTransactionService.commit().get(1, TimeUnit.SECONDS); @@ -520,9 +539,9 @@ public class OpenRoadmTopology22 { List waveList = new ArrayList<>(); for (int i = 1; i < 97; i++) { - AvailableWavelengthsBuilder avalBldr = new AvailableWavelengthsBuilder(); - avalBldr.setIndex((long) i); - avalBldr.withKey(new AvailableWavelengthsKey((long) i)); + AvailableWavelengthsBuilder avalBldr = new AvailableWavelengthsBuilder() + .setIndex((long) i) + .withKey(new AvailableWavelengthsKey((long) i)); waveList.add(avalBldr.build()); } @@ -538,14 +557,13 @@ public class OpenRoadmTopology22 { for (int i = 1; i < 97; i++) { org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes - .AvailableWavelengthsBuilder avalBldr = - new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node - .attributes.AvailableWavelengthsBuilder(); - avalBldr.setIndex((long) i); - avalBldr.withKey( - new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node - .attributes.AvailableWavelengthsKey( - (long) i)); + .AvailableWavelengthsBuilder avalBldr = + new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes + .AvailableWavelengthsBuilder() + .setIndex((long) i) + .withKey( + new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes + .AvailableWavelengthsKey((long) i)); waveList.add(avalBldr.build()); }