Switch to using yangtools version of mockito-configuration
[controller.git] / opendaylight / md-sal / compatibility / inventory-topology-compatibility / src / main / java / org / opendaylight / controller / md / compatibility / topologymanager / CompatibleTopologyManager.xtend
1 package org.opendaylight.controller.md.compatibility.topologymanager
2
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
7 import java.util.Set
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.rev130712.network.topology.topology.node.TerminationPoint
12 import com.google.common.collect.FluentIterable
13
14 class CompatibleTopologyManager extends ConfigurableLinkManager implements ITopologyManager {
15
16     @Property
17     var TypeSafeDataReader dataReader;
18
19     @Property
20     var extension AdSalTopologyMapping topologyMapping;
21
22     override getEdges() {
23         val topology = dataReader.readOperationalData(topologyPath);
24         return topology.link.toEdgePropertiesMap();
25     }
26
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)
35         }
36         return ret;
37     }
38
39     /**
40      *   Returns true if point is connected to link
41     */
42     def isInternal(TerminationPoint point) {
43         val topology = dataReader.readConfigurationData(topologyPath);
44         val tpId = point.key.tpId;
45         return FluentIterable.from(topology.link).anyMatch(
46             [
47                 source.sourceTp == tpId || destination.destTp == tpId
48             ])
49     }
50
51     override getNodeConnectorWithHost() {
52     }
53
54     override getHostAttachedToNodeConnector(NodeConnector p) {
55         val tpPath = p.toTerminationPoint();
56         throw new UnsupportedOperationException("TODO: auto-generated method stub")
57     }
58
59     override getHostsAttachedToNodeConnector(NodeConnector p) {
60         val topology = dataReader.readOperationalData(topologyPath);
61
62         throw new UnsupportedOperationException("Hosts not mapped yet")
63     }
64
65     override getNodesWithNodeConnectorHost() {
66         throw new UnsupportedOperationException("TODO: auto-generated method stub")
67
68     }
69
70     override isInternal(NodeConnector p) {
71         val tpPath = p.toTerminationPoint();
72         val connector = dataReader.readConfigurationData(tpPath);
73         return connector.isInternal();
74     }
75
76     override updateHostLink(NodeConnector p, Host h, UpdateType t,
77         Set<org.opendaylight.controller.sal.core.Property> props) {
78         // Update app defined topology
79     }
80
81     override saveConfig() {
82         // FIXME: commit configuration
83     }
84
85 }