blob: c78253030cd5bbae6f3e38f761eec8d30b7966e4 [file] [log] [blame]
tome4729872014-09-23 00:37:37 -07001package org.onlab.onos.net.trivial.impl;
2
3import com.google.common.collect.ImmutableSet;
4import org.apache.felix.scr.annotations.Activate;
5import org.apache.felix.scr.annotations.Component;
6import org.apache.felix.scr.annotations.Deactivate;
7import org.apache.felix.scr.annotations.Service;
8import org.onlab.onos.cluster.ClusterStore;
9import org.onlab.onos.cluster.ControllerNode;
10import org.onlab.onos.cluster.DefaultControllerNode;
11import org.onlab.onos.cluster.NodeId;
12import org.onlab.packet.IpPrefix;
13import org.slf4j.Logger;
14
15import java.util.Set;
16
17import static org.slf4j.LoggerFactory.getLogger;
18
19/**
20 * Manages inventory of infrastructure DEVICES using trivial in-memory
21 * structures implementation.
22 */
23@Component(immediate = true)
24@Service
25public class SimpleClusterStore implements ClusterStore {
26
27 public static final IpPrefix LOCALHOST = IpPrefix.valueOf("127.0.0.1");
28
29 private final Logger log = getLogger(getClass());
30
31 private ControllerNode instance;
32
33 @Activate
34 public void activate() {
35 instance = new DefaultControllerNode(new NodeId("local"), LOCALHOST);
36 log.info("Started");
37 }
38
39 @Deactivate
40 public void deactivate() {
41 log.info("Stopped");
42 }
43
44
45 @Override
46 public ControllerNode getLocalNode() {
47 return instance;
48 }
49
50 @Override
51 public Set<ControllerNode> getNodes() {
52 return ImmutableSet.of(instance);
53 }
54
55 @Override
56 public ControllerNode getNode(NodeId nodeId) {
57 return instance.id().equals(nodeId) ? instance : null;
58 }
59
60 @Override
61 public ControllerNode.State getState(NodeId nodeId) {
62 return ControllerNode.State.ACTIVE;
63 }
64
tomb41d1ac2014-09-24 01:51:24 -070065 @Override
66 public void removeNode(NodeId nodeId) {
67 }
68
tome4729872014-09-23 00:37:37 -070069}