blob: 65dc0ab1dd96fc278cb68bf16acbf24a53984b65 [file] [log] [blame]
tomea961ff2014-10-01 12:45:15 -07001package org.onlab.onos.store.trivial.impl;
tome4729872014-09-23 00:37:37 -07002
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;
Pavlin Radoslavov444b5192014-10-28 10:45:19 -070015import org.onlab.packet.IpAddress;
tome4729872014-09-23 00:37:37 -070016import org.slf4j.Logger;
17
18import java.util.Set;
19
20import static org.slf4j.LoggerFactory.getLogger;
21
22/**
tomc749ae02014-09-29 13:53:51 -070023 * Manages inventory of infrastructure devices using trivial in-memory
tome4729872014-09-23 00:37:37 -070024 * 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
Pavlin Radoslavov444b5192014-10-28 10:45:19 -070032 public static final IpAddress LOCALHOST = IpAddress.valueOf("127.0.0.1");
tome4729872014-09-23 00:37:37 -070033
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
Pavlin Radoslavov444b5192014-10-28 10:45:19 -070071 public ControllerNode addNode(NodeId nodeId, IpAddress ip, int tcpPort) {
tomee49c372014-09-26 15:14:50 -070072 return null;
73 }
74
75 @Override
tomb41d1ac2014-09-24 01:51:24 -070076 public void removeNode(NodeId nodeId) {
77 }
78
tome4729872014-09-23 00:37:37 -070079}