X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=networkmodel%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2Futil%2FOpenRoadmNetwork.java;h=917926e5129d12f03c73baeba1b44361c120c315;hb=66ccddbe00692f230350a19e1a222f09d6abd9a7;hp=2cf82886aa83748f65f27bde994497efaed3acaa;hpb=2c74d3b1109043024a1e251766ed6fcc39ffedf1;p=transportpce.git diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetwork.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetwork.java index 2cf82886a..917926e51 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetwork.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmNetwork.java @@ -12,29 +12,30 @@ import com.google.common.collect.ImmutableList; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; + +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; -import org.opendaylight.transportpce.common.device.DeviceTransactionManager; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev170929.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev170929.Node1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev170929.NetworkTypes1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev170929.NetworkTypes1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev170929.network.network.types.OpenroadmTopologyBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev170929.OpenroadmNodeType; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.Network; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkId; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NetworkKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.NodeId; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.NetworkTypesBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.Node; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.NodeKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.node.SupportingNodeBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev150608.network.node.SupportingNodeKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev191115.network.nodes.NodeInfo; +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; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev181130.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev181130.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; +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; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkKey; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NetworkTypesBuilder; +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.NodeBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder; import org.slf4j.Logger; @@ -58,11 +59,11 @@ public final class OpenRoadmNetwork { public static void createOpenRoadmNetworkLayer(DataBroker controllerdb) { try { Network openRoadmNetwork = createOpenRoadmNetwork(); - InstanceIdentifierBuilder nwIID = InstanceIdentifier.builder(Network.class, + InstanceIdentifierBuilder nwIID = InstanceIdentifier.builder(Networks.class).child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))); WriteTransaction wrtx = controllerdb.newWriteOnlyTransaction(); wrtx.put(LogicalDatastoreType.CONFIGURATION, nwIID.build(), openRoadmNetwork); - wrtx.submit().get(1, TimeUnit.SECONDS); + wrtx.commit().get(1, TimeUnit.SECONDS); LOG.info("OpenRoadm-Network created successfully."); } catch (ExecutionException | TimeoutException | InterruptedException e) { LOG.warn("Failed to create OpenRoadm-Network", e); @@ -73,78 +74,59 @@ public final class OpenRoadmNetwork { * Create single node entry for OpenRoadmNetwork. * * @param nodeId node ID - * @param deviceTransactionManager device transaction manager + * @param nodeInfo some important and general data from device * - * @return node builder status + * @return node */ - public static Node createNode(String nodeId, DeviceTransactionManager deviceTransactionManager, - String openRoadmVersion) { - - InfoSubtree infoSubtree = new InfoSubtree(openRoadmVersion); - String clli; - String vendor; - String model; - IpAddress ipAddress; - int nodeType; - - if (infoSubtree.getDeviceInfo(nodeId,deviceTransactionManager)) { - - clli = infoSubtree.getClli(); - - /** - * TODO : Uncomment when real when testing on real device - * vendor = infoSubtree.getVendor(); - * model = infoSubtree.getModel(); - **/ - vendor = infoSubtree.getVendor(); - clli = infoSubtree.getClli(); - model = infoSubtree.getModel(); - ipAddress = infoSubtree.getIpAddress(); - nodeType = infoSubtree.getNodeType(); - - } else { - return null; - } + public static Node createNode(String nodeId, NodeInfo nodeInfo) { - // Uses the Node Builder to set the nodeId and Key NodeBuilder nodeBldr = new NodeBuilder(); NodeId nwNodeId = new NodeId(nodeId); nodeBldr.setNodeId(nwNodeId); nodeBldr.withKey(new NodeKey(nwNodeId)); Node1Builder node1bldr = new Node1Builder(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder node2bldr = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder(); /* * Recognize the node type: 1:ROADM, 2:XPONDER */ - switch (nodeType) { + switch (nodeInfo.getNodeType().getIntValue()) { case 1: - node1bldr.setNodeType(OpenroadmNodeType.ROADM); + node2bldr.setNodeType(OpenroadmNodeType.ROADM); break; case 2: - node1bldr.setNodeType(OpenroadmNodeType.XPONDER); + node2bldr.setNodeType(OpenroadmNodeType.XPONDER); break; default: - LOG.error("No correponsding type for the value: {}", nodeType); + LOG.error("No correponsding type for the value: {}", nodeInfo.getNodeType().getName()); break; } - // Sets IP, Model and Vendor information fetched from the deviceInfo - node1bldr.setIp(ipAddress); - node1bldr.setModel(model); - node1bldr.setVendor(vendor); + if (nodeInfo.getNodeIpAddress() != null) { + node1bldr.setIp(nodeInfo.getNodeIpAddress()); + } + if (nodeInfo.getNodeModel() != null) { + node1bldr.setModel(nodeInfo.getNodeModel()); + } + if (nodeInfo.getNodeVendor() != null) { + node1bldr.setVendor(nodeInfo.getNodeVendor()); + } // 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.CLLI_NETWORK_ID), new NodeId(clli))); + supportbldr.withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID), + new NodeId(nodeInfo.getNodeClli()))); supportbldr.setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)); - supportbldr.setNodeRef(new NodeId(clli)); + supportbldr.setNodeRef(new NodeId(nodeInfo.getNodeClli())); nodeBldr.setSupportingNode(ImmutableList.of(supportbldr.build())); // Augment to the main node builder nodeBldr.addAugmentation(Node1.class, node1bldr.build()); + nodeBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1.class, + node2bldr.build()); return nodeBldr.build(); } @@ -158,7 +140,7 @@ public final class OpenRoadmNetwork { openrdmnwBuilder.withKey(new NetworkKey(nwId)); // sets network type to OpenRoadmNetwork NetworkTypes1Builder openRoadmNetworkTypesBldr = new NetworkTypes1Builder(); - openRoadmNetworkTypesBldr.setOpenroadmTopology(new OpenroadmTopologyBuilder().build()); + openRoadmNetworkTypesBldr.setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build()); NetworkTypesBuilder openrdmnwTypeBuilder = new NetworkTypesBuilder(); openrdmnwTypeBuilder.addAugmentation(NetworkTypes1.class, openRoadmNetworkTypesBldr.build()); openrdmnwBuilder.setNetworkTypes(openrdmnwTypeBuilder.build());