1 package org.opendaylight.controller.md.compatibility.topologymanager
3 import org.opendaylight.controller.topologymanager.ITopologyManager
4 import org.opendaylight.controller.sal.core.NodeConnector
5 import org.opendaylight.controller.sal.core.Host
6 import org.opendaylight.controller.sal.core.UpdateType
8 import org.opendaylight.controller.md.sal.binding.util.TypeSafeDataReader
9 import java.util.HashMap
10 import org.opendaylight.controller.sal.core.Edge
11 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint
12 import com.google.common.collect.FluentIterable
14 class CompatibleTopologyManager extends ConfigurableLinkManager implements ITopologyManager {
17 var TypeSafeDataReader dataReader;
20 var extension AdSalTopologyMapping topologyMapping;
23 val topology = dataReader.readOperationalData(topologyPath);
24 return topology.link.toEdgePropertiesMap();
27 override getNodeEdges() {
28 val topology = dataReader.readOperationalData(topologyPath);
29 val ret = new HashMap<org.opendaylight.controller.sal.core.Node, Set<Edge>>;
30 for (node : topology.node) {
31 val adNode = node.toAdNode();
32 val adEdges = FluentIterable.from(topology.link).filter[
33 source.sourceNode == node.nodeId || destination.destNode == node.nodeId].toEdges();
34 ret.put(adNode, adEdges)
40 * Returns true if point is connected to link
42 def isInternal(TerminationPoint point) {
43 val topology = dataReader.readConfigurationData(topologyPath);
44 val tpId = point.key.tpId;
45 return FluentIterable.from(topology.link).anyMatch(
47 source.sourceTp == tpId || destination.destTp == tpId
51 override getNodeConnectorWithHost() {
54 override getHostAttachedToNodeConnector(NodeConnector p) {
55 val tpPath = p.toTerminationPoint();
56 throw new UnsupportedOperationException("TODO: auto-generated method stub")
59 override getHostsAttachedToNodeConnector(NodeConnector p) {
60 val topology = dataReader.readOperationalData(topologyPath);
62 throw new UnsupportedOperationException("Hosts not mapped yet")
65 override getNodesWithNodeConnectorHost() {
66 throw new UnsupportedOperationException("TODO: auto-generated method stub")
70 override isInternal(NodeConnector p) {
71 val tpPath = p.toTerminationPoint();
72 val connector = dataReader.readConfigurationData(tpPath);
73 return connector.isInternal();
76 override updateHostLink(NodeConnector p, Host h, UpdateType t,
77 Set<org.opendaylight.controller.sal.core.Property> props) {
78 // Update app defined topology
81 override saveConfig() {
82 // FIXME: commit configuration