blob: d348d2f1573d774da20a28adfb1f5442e7460673 [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;
tom0755a362014-09-24 11:54:43 -07008import org.onlab.onos.cluster.ClusterEvent;
tome4729872014-09-23 00:37:37 -07009import org.onlab.onos.cluster.ClusterStore;
tom0755a362014-09-24 11:54:43 -070010import org.onlab.onos.cluster.ClusterStoreDelegate;
tome4729872014-09-23 00:37:37 -070011import org.onlab.onos.cluster.ControllerNode;
12import org.onlab.onos.cluster.DefaultControllerNode;
13import org.onlab.onos.cluster.NodeId;
tom0755a362014-09-24 11:54:43 -070014import org.onlab.onos.store.AbstractStore;
tome4729872014-09-23 00:37:37 -070015import org.onlab.packet.IpPrefix;
16import org.slf4j.Logger;
17
18import java.util.Set;
19
20import static org.slf4j.LoggerFactory.getLogger;
21
22/**
23 * Manages inventory of infrastructure DEVICES using trivial in-memory
24 * structures implementation.
25 */
26@Component(immediate = true)
27@Service
tom0755a362014-09-24 11:54:43 -070028public class SimpleClusterStore
29 extends AbstractStore<ClusterEvent, ClusterStoreDelegate>
30 implements ClusterStore {
tome4729872014-09-23 00:37:37 -070031
32 public static final IpPrefix LOCALHOST = IpPrefix.valueOf("127.0.0.1");
33
34 private final Logger log = getLogger(getClass());
35
36 private ControllerNode instance;
37
38 @Activate
39 public void activate() {
40 instance = new DefaultControllerNode(new NodeId("local"), LOCALHOST);
41 log.info("Started");
42 }
43
44 @Deactivate
45 public void deactivate() {
46 log.info("Stopped");
47 }
48
49
50 @Override
51 public ControllerNode getLocalNode() {
52 return instance;
53 }
54
55 @Override
56 public Set<ControllerNode> getNodes() {
57 return ImmutableSet.of(instance);
58 }
59
60 @Override
61 public ControllerNode getNode(NodeId nodeId) {
62 return instance.id().equals(nodeId) ? instance : null;
63 }
64
65 @Override
66 public ControllerNode.State getState(NodeId nodeId) {
67 return ControllerNode.State.ACTIVE;
68 }
69
tomb41d1ac2014-09-24 01:51:24 -070070 @Override
71 public void removeNode(NodeId nodeId) {
72 }
73
tome4729872014-09-23 00:37:37 -070074}