blob: ecba546849183dd551dea8c8595cc23badea8f24 [file] [log] [blame]
HIGUCHI Yuta08137932013-06-17 14:11:50 -07001package net.onrc.onos.ofcontroller.core.internal;
Jonathan Hartb7e3d2c2013-01-15 18:45:19 -08002
3import java.util.Set;
4
HIGUCHI Yuta2d011582013-06-15 01:47:11 -07005import net.onrc.onos.ofcontroller.core.internal.LinkStorageImpl;
HIGUCHI Yuta6bfb4802013-06-14 17:02:02 -07006
Jonathan Hartb7e3d2c2013-01-15 18:45:19 -08007import com.thinkaurelius.titan.core.TitanGraph;
8import com.tinkerpop.blueprints.TransactionalGraph.Conclusion;
9import com.tinkerpop.blueprints.Vertex;
10
11/**
Jonathan Hartc86a2ea2013-01-15 22:39:42 -080012 * Seam that allows me to set up a testable instance of LinkStorageImpl that
Jonathan Hart627f10c2013-01-16 14:20:03 -080013 * writes to a file database rather than a Cassandra cluster.
14 * It seems the init() API on LinkStorageImpl might change so I won't rely
15 * on it yet.
Jonathan Hartb7e3d2c2013-01-15 18:45:19 -080016 *
17 * @author jono
18 *
19 */
20
Yuta HIGUCHIe2eb7fc2013-10-14 10:00:55 -070021@SuppressWarnings("deprecation")
Jonathan Hartc86a2ea2013-01-15 22:39:42 -080022public class TestableLinkStorageImpl extends LinkStorageImpl {
HIGUCHI Yutadfdd4182013-06-11 17:00:39 -070023 protected TitanGraph graph;
Jonathan Hartb7e3d2c2013-01-15 18:45:19 -080024
Jonathan Hartc86a2ea2013-01-15 22:39:42 -080025 public TestableLinkStorageImpl(TitanGraph graph){
Jonathan Hartb7e3d2c2013-01-15 18:45:19 -080026 this.graph = graph;
27 }
28
29 @Override
30 public void init(String conf){
31 Set<String> s = graph.getIndexedKeys(Vertex.class);
32 if (!s.contains("dpid")) {
33 graph.createKeyIndex("dpid", Vertex.class);
34 graph.stopTransaction(Conclusion.SUCCESS);
35 }
36 if (!s.contains("type")) {
37 graph.createKeyIndex("type", Vertex.class);
38 graph.stopTransaction(Conclusion.SUCCESS);
39 }
40
41 }
42}