blob: 4579190933c6c790647e71641de71510e0a8955f [file] [log] [blame]
tome4729872014-09-23 00:37:37 -07001package org.onlab.onos.cluster;
2
3import java.util.Set;
4
5/**
6 * Manages inventory of controller cluster nodes; not intended for direct use.
7 */
8public interface ClusterStore {
9
10 /**
tomb41d1ac2014-09-24 01:51:24 -070011 * Returns the local controller node.
tome4729872014-09-23 00:37:37 -070012 *
13 * @return local controller instance
14 */
15 ControllerNode getLocalNode();
16
17 /**
18 * Returns the set of current cluster members.
19 *
20 * @return set of cluster members
21 */
22 Set<ControllerNode> getNodes();
23
24 /**
tomb41d1ac2014-09-24 01:51:24 -070025 * Returns the specified controller node.
tome4729872014-09-23 00:37:37 -070026 *
27 * @param nodeId controller instance identifier
28 * @return controller instance
29 */
30 ControllerNode getNode(NodeId nodeId);
31
32 /**
tomb41d1ac2014-09-24 01:51:24 -070033 * Returns the availability state of the specified controller node.
tome4729872014-09-23 00:37:37 -070034 *
35 * @param nodeId controller instance identifier
36 * @return availability state
37 */
38 ControllerNode.State getState(NodeId nodeId);
39
tomb41d1ac2014-09-24 01:51:24 -070040 /**
41 * Removes the specified node from the inventory of cluster nodes.
42 *
43 * @param nodeId controller instance identifier
44 */
45 void removeNode(NodeId nodeId);
46
tome4729872014-09-23 00:37:37 -070047}