2 * Copyright © 2016 AT&T and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.transportpce.networkmodel.util;
11 import com.google.common.collect.ImmutableList;
12 import org.opendaylight.transportpce.common.NetworkUtils;
13 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200128.network.nodes.NodeInfo;
14 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev181130.Node1;
15 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev181130.Node1Builder;
16 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
20 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey;
22 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeKey;
25 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory;
29 public final class OpenRoadmNetwork {
31 private static final Logger LOG = LoggerFactory.getLogger(OpenRoadmNetwork.class);
33 private OpenRoadmNetwork() {
38 * Create single node entry for OpenRoadmNetwork.
40 * @param nodeId node ID
41 * @param nodeInfo some important and general data from device
45 public static Node createNode(String nodeId, NodeInfo nodeInfo) {
47 Node1Builder node1Bldr = new Node1Builder();
48 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder node2Bldr =
49 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder();
52 * Recognize the node type: 1:ROADM, 2:XPONDER
54 switch (nodeInfo.getNodeType().getIntValue()) {
56 node2Bldr.setNodeType(OpenroadmNodeType.ROADM);
59 node2Bldr.setNodeType(OpenroadmNodeType.XPONDER);
62 LOG.error("No correponsding type for the value: {}", nodeInfo.getNodeType().getName());
66 // Sets IP, Model and Vendor information fetched from the deviceInfo
67 if (nodeInfo.getNodeIpAddress() != null) {
68 node1Bldr.setIp(nodeInfo.getNodeIpAddress());
70 if (nodeInfo.getNodeModel() != null) {
71 node1Bldr.setModel(nodeInfo.getNodeModel());
73 if (nodeInfo.getNodeVendor() != null) {
74 node1Bldr.setVendor(nodeInfo.getNodeVendor());
77 // Sets the value of Network-ref and Node-ref as a part of the supporting node
79 SupportingNode supportingNode = new SupportingNodeBuilder()
80 .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
81 .setNodeRef(new NodeId(nodeInfo.getNodeClli()))
82 .withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID),
83 new NodeId(nodeInfo.getNodeClli())))
86 return new NodeBuilder()
87 .setNodeId(new NodeId(nodeId))
88 .withKey(new NodeKey(new NodeId(nodeId)))
89 .setSupportingNode(ImmutableList.of(supportingNode))
90 .addAugmentation(Node1.class, node1Bldr.build())
91 .addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1.class,