blob: faefdd876eb6d4d457ad08857c4c0b8afcf608bb [file] [log] [blame]
/*
* Copyright 2016-present Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.teyang.utils.topology;
import com.google.common.collect.Lists;
import org.onosproject.tetopology.management.api.DefaultNetwork;
import org.onosproject.tetopology.management.api.DefaultNetworks;
import org.onosproject.tetopology.management.api.KeyId;
import org.onosproject.tetopology.management.api.Network;
import org.onosproject.tetopology.management.api.Networks;
import org.onosproject.tetopology.management.api.TeTopologyId;
import org.onosproject.tetopology.management.api.link.DefaultNetworkLink;
import org.onosproject.tetopology.management.api.link.LinkProtectionType;
import org.onosproject.tetopology.management.api.link.NetworkLink;
import org.onosproject.tetopology.management.api.link.TeLink;
import org.onosproject.tetopology.management.api.link.TeLinkAccessType;
import org.onosproject.tetopology.management.api.node.ConnectivityMatrix;
import org.onosproject.tetopology.management.api.node.DefaultNetworkNode;
import org.onosproject.tetopology.management.api.node.DefaultTerminationPoint;
import org.onosproject.tetopology.management.api.node.NetworkNode;
import org.onosproject.tetopology.management.api.node.TeNetworkTopologyId;
import org.onosproject.tetopology.management.api.node.TeNode;
import org.onosproject.tetopology.management.api.node.TeStatus;
import org.onosproject.tetopology.management.api.node.TerminationPoint;
import org.onosproject.tetopology.management.api.node.TerminationPointKey;
import java.math.BigInteger;
import java.util.List;
/**
* Builds a sample Topology, which consists of two Nodes, one link,
* and each node has two termination points.
*/
public final class DefaultBuilder {
private static final String HUAWEI_NETWORK_NEW = "HUAWEI_NETWORK_NEW";
private static final String HUAWEI_ROADM_1 = "HUAWEI_ROADM_1";
private static final String CLIENT1_NODE1 = "CLIENT1_NODE1";
private static final String LINE1_NODE1 = "LINE1_NODE1";
private static final String NODE1_IP = "10.11.12.33";
private static final String HUAWEI_ROADM_2 = "HUAWEI_ROADM_2";
private static final String CLIENT1_NODE2 = "CLIENT1_NODE2";
private static final String LINE1_NODE2 = "LINE1_NODE2";
private static final String NODE2_IP = "10.11.12.34";
private static final String LINK1FORNETWORK1 = "LINK1FORNETWORK1";
private static final String HUAWEI_TE_TOPOLOGY_NEW = "HUAWEI_TE_TOPOLOGY_NEW";
// no instantiation
private DefaultBuilder() {
}
/**
* Returns a sample TeSubsystem Networks object.
*
* @return the Networks object
*/
public static Networks sampleTeSubsystemNetworksBuilder() {
DefaultNetworks defaultNetworks = new DefaultNetworks();
List<Network> networks = Lists.newArrayList();
networks.add(sampleTeSubsystemNetworkBuilder());
defaultNetworks.setNetworks(networks);
return defaultNetworks;
}
/**
* Returns a sample TeSubsystem Network object.
*
* @return the Network object
*/
public static Network sampleTeSubsystemNetworkBuilder() {
DefaultNetwork huaweiNetworkNew = new DefaultNetwork(KeyId.keyId(HUAWEI_NETWORK_NEW));
huaweiNetworkNew.setServerProvided(true);
List<NetworkNode> nodes = Lists.newArrayList();
DefaultNetworkNode node1 = new DefaultNetworkNode(KeyId.keyId(HUAWEI_ROADM_1));
DefaultTerminationPoint tp11 = new DefaultTerminationPoint(KeyId.keyId(CLIENT1_NODE1));
DefaultTerminationPoint tp12 = new DefaultTerminationPoint(KeyId.keyId(LINE1_NODE1));
List<TerminationPoint> tps1 = Lists.newArrayList();
tps1.add(tp11);
tps1.add(tp12);
node1.setTerminationPoints(tps1);
TeNode teNode1 = new TeNode(NODE1_IP);
teNode1.setAdminStatus(TeStatus.UP);
teNode1.setAbstract(false);
ConnectivityMatrix cMatrix1 =
new ConnectivityMatrix(1,
new TerminationPointKey(huaweiNetworkNew.networkId(),
node1.nodeId(), tp11.id()),
new TerminationPointKey(huaweiNetworkNew.networkId(),
node1.nodeId(), tp12.id()),
true);
List<ConnectivityMatrix> connMatrices = Lists.newArrayList();
connMatrices.add(cMatrix1);
teNode1.setConnectivityMatrices(connMatrices);
node1.setTe(teNode1);
DefaultNetworkNode node2 = new DefaultNetworkNode(KeyId.keyId(HUAWEI_ROADM_2));
DefaultTerminationPoint tp21 = new DefaultTerminationPoint(KeyId.keyId(CLIENT1_NODE2));
DefaultTerminationPoint tp22 = new DefaultTerminationPoint(KeyId.keyId(LINE1_NODE2));
List<TerminationPoint> tps2 = Lists.newArrayList();
tps2.add(tp21);
tps2.add(tp22);
node2.setTerminationPoints(tps2);
TeNode teNode2 = new TeNode(NODE2_IP);
teNode2.setAdminStatus(TeStatus.UP);
teNode2.setAbstract(false);
ConnectivityMatrix cMatrix2 =
new ConnectivityMatrix(1,
new TerminationPointKey(huaweiNetworkNew.networkId(),
node2.nodeId(), tp21.id()),
new TerminationPointKey(huaweiNetworkNew.networkId(),
node2.nodeId(), tp22.id()),
true);
List<ConnectivityMatrix> connMatrices2 = Lists.newArrayList();
connMatrices2.add(cMatrix2);
teNode2.setConnectivityMatrices(connMatrices2);
node2.setTe(teNode2);
nodes.add(node1);
nodes.add(node2);
huaweiNetworkNew.setNodes(nodes);
List<NetworkLink> links = Lists.newArrayList();
DefaultNetworkLink link1 = new DefaultNetworkLink(KeyId.keyId(LINK1FORNETWORK1));
link1.setSource(new TerminationPointKey(huaweiNetworkNew.networkId(),
node1.nodeId(),
tp12.id()));
link1.setDestination(new TerminationPointKey(huaweiNetworkNew.networkId(),
node2.nodeId(),
tp22.id()));
TeLink teLink1 = new TeLink(BigInteger.valueOf(1));
teLink1.setIsAbstract(false);
teLink1.setAdminStatus(TeStatus.UP);
teLink1.setAccessType(TeLinkAccessType.POINT_TO_POINT);
teLink1.setLinkProtectionType(LinkProtectionType.UNPROTECTED);
List<Long> teSrlgs = Lists.newArrayList();
teSrlgs.add(1000L);
teSrlgs.add(2000L);
teLink1.setTeSrlgs(teSrlgs);
link1.setTe(teLink1);
links.add(link1);
huaweiNetworkNew.setLinks(links);
TeNetworkTopologyId teNetwork =
new TeNetworkTopologyId(new TeTopologyId(22222L, 44444L, HUAWEI_TE_TOPOLOGY_NEW));
huaweiNetworkNew.setTeTopologyId(teNetwork.getTopologyId());
return huaweiNetworkNew;
}
}