3 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
5 * This program and the accompanying materials are made available under the
6 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7 * and is available at http://www.eclipse.org/legal/epl-v10.html
10 package org.opendaylight.controller.topologymanager;
14 import java.util.concurrent.ConcurrentMap;
16 import org.opendaylight.controller.sal.core.Edge;
17 import org.opendaylight.controller.sal.core.Host;
18 import org.opendaylight.controller.sal.core.Node;
19 import org.opendaylight.controller.sal.core.NodeConnector;
20 import org.opendaylight.controller.sal.core.Property;
21 import org.opendaylight.controller.sal.core.UpdateType;
22 import org.opendaylight.controller.sal.utils.Status;
25 * Interface class that provides methods to interact with
26 * network topology database
28 public interface ITopologyManager {
30 * Query to determine if the specified NodeConnector is connected
31 * to another Node or is a leaf for the network
32 * @param p The node connector
33 * @return true if the NodeConnector is connected to another
34 * switch false otherwise
36 public boolean isInternal(NodeConnector p);
39 * Retrieves a map of all known link connections between nodes
40 * including their properties
41 * @return the map as specified
43 public Map<Edge, Set<Property>> getEdges();
46 * Returns an unmodifiable map indexed by the Node and reporting
47 * all the edges getting out/in from/to the Node
48 * @return the map as specified
50 public Map<Node, Set<Edge>> getNodeEdges();
53 * Add or Update an Host port in the topology manager DB
55 * @param p NodeConnector to which an host is connected
56 * @param h the Host connected to the NodeConnector
57 * @param t type of update if Add/Delete/Update
59 public void updateHostLink(NodeConnector p, Host h, UpdateType t,
63 * Return a set of NodeConnector that have hosts attached to them
65 * @return A set with all the NodeConnectors known to have an host
68 public Set<NodeConnector> getNodeConnectorWithHost();
71 * Return the Host attached to a NodeConnector with Host
73 * @return The Host attached to a NodeConnector
75 public Host getHostAttachedToNodeConnector(NodeConnector p);
78 * Returns a copy map which associates every node with all the
79 * NodeConnectors of the node that have an Host attached to it
81 * @return A map of all the Nodes with NodeConnectors
83 public Map<Node, Set<NodeConnector>> getNodesWithNodeConnectorHost();
86 * Adds user configured link
88 * @param link User configured link
89 * @return "Success" or error reason
91 public Status addUserLink(TopologyUserLinkConfig link);
94 * Deletes user configured link
96 * @param linkName The name of the user configured link
97 * @return "Success" or error reason
99 public Status deleteUserLink(String linkName);
102 * Saves user configured links into config file
104 * @return "Success" or error reason
106 public Status saveConfig();
109 * Gets all the user configured links
111 * @return The map of the user configured links
113 public ConcurrentMap<String, TopologyUserLinkConfig> getUserLinks();