package org.opendaylight.transportpce.networkmodel.util;
-import com.google.common.collect.ImmutableList;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import com.google.common.collect.ImmutableMap;
import org.opendaylight.transportpce.common.NetworkUtils;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200113.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.http.org.opendaylight.transportpce.portmapping.rev210425.network.nodes.NodeInfo;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev200529.Node1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.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.SupportingNode;
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;
import org.slf4j.LoggerFactory;
// utility class
}
- /**
- * This public method creates the OpenRoadmNetwork Layer and posts it to the
- * controller.
- *
- * @param controllerdb controller databroker
- */
- public static void createOpenRoadmNetworkLayer(DataBroker controllerdb) {
- try {
- Network openRoadmNetwork = createOpenRoadmNetwork();
- InstanceIdentifierBuilder<Network> 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.commit().get(1, TimeUnit.SECONDS);
- LOG.info("OpenRoadm-Network created successfully.");
- } catch (ExecutionException | TimeoutException | InterruptedException e) {
- LOG.warn("Failed to create OpenRoadm-Network", e);
- }
- }
-
/**
* Create single node entry for OpenRoadmNetwork.
*
*/
public static Node createNode(String nodeId, NodeInfo nodeInfo) {
- 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();
+ Node1Builder node1Bldr = new Node1Builder();
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder node2Bldr =
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1Builder();
/*
* Recognize the node type: 1:ROADM, 2:XPONDER
*/
switch (nodeInfo.getNodeType().getIntValue()) {
case 1:
- node2bldr.setNodeType(OpenroadmNodeType.ROADM);
+ node2Bldr.setNodeType(OpenroadmNodeType.ROADM);
break;
case 2:
- node2bldr.setNodeType(OpenroadmNodeType.XPONDER);
+ node2Bldr.setNodeType(OpenroadmNodeType.XPONDER);
break;
default:
LOG.error("No correponsding type for the value: {}", nodeInfo.getNodeType().getName());
// Sets IP, Model and Vendor information fetched from the deviceInfo
if (nodeInfo.getNodeIpAddress() != null) {
- node1bldr.setIp(nodeInfo.getNodeIpAddress());
+ node1Bldr.setIp(nodeInfo.getNodeIpAddress());
}
if (nodeInfo.getNodeModel() != null) {
- node1bldr.setModel(nodeInfo.getNodeModel());
+ node1Bldr.setModel(nodeInfo.getNodeModel());
}
if (nodeInfo.getNodeVendor() != null) {
- node1bldr.setVendor(nodeInfo.getNodeVendor());
+ 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(nodeInfo.getNodeClli())));
- supportbldr.setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID));
- 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();
- }
+ SupportingNode supportingNode = new SupportingNodeBuilder()
+ .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
+ .setNodeRef(new NodeId(nodeInfo.getNodeClli()))
+ .withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID),
+ new NodeId(nodeInfo.getNodeClli())))
+ .build();
- /**
- * Create empty OpenROADM network.
- */
- private static Network createOpenRoadmNetwork() {
- NetworkBuilder openrdmnwBuilder = new NetworkBuilder();
- NetworkId nwId = new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID);
- openrdmnwBuilder.setNetworkId(nwId);
- openrdmnwBuilder.withKey(new NetworkKey(nwId));
- // sets network type to OpenRoadmNetwork
- NetworkTypes1Builder openRoadmNetworkTypesBldr = new NetworkTypes1Builder();
- openRoadmNetworkTypesBldr.setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build());
- NetworkTypesBuilder openrdmnwTypeBuilder = new NetworkTypesBuilder();
- openrdmnwTypeBuilder.addAugmentation(NetworkTypes1.class, openRoadmNetworkTypesBldr.build());
- openrdmnwBuilder.setNetworkTypes(openrdmnwTypeBuilder.build());
- return openrdmnwBuilder.build();
+ return new NodeBuilder()
+ .setNodeId(new NodeId(nodeId))
+ .withKey(new NodeKey(new NodeId(nodeId)))
+ .setSupportingNode(ImmutableMap.of(supportingNode.key(),supportingNode))
+ .addAugmentation(node1Bldr.build())
+ .addAugmentation(node2Bldr.build())
+ .build();
}
}