Mercurial > hg > Database > Christie
comparison src/main/java/christie/topology/manager/TopologyManager.java @ 45:12c9bf81d429
fix TopologyManager.java
author | akahori |
---|---|
date | Thu, 02 Aug 2018 11:45:46 +0900 |
parents | cf5a75bc3e55 |
children | 8dfd93810041 |
comparison
equal
deleted
inserted
replaced
44:6664efac18ee | 45:12c9bf81d429 |
---|---|
1 package christie.topology.manager; | 1 package christie.topology.manager; |
2 | 2 |
3 import christie.annotation.Peek; | |
4 import christie.codegear.CodeGear; | 3 import christie.codegear.CodeGear; |
5 import christie.codegear.CodeGearManager; | 4 import christie.codegear.CodeGearManager; |
6 | 5 |
7 import java.io.File; | 6 import java.io.File; |
8 import java.io.FileNotFoundException; | 7 import java.io.FileNotFoundException; |
9 import java.io.FileReader; | 8 import java.io.FileReader; |
10 import java.util.ArrayList; | 9 import java.util.ArrayList; |
11 import java.util.HashMap; | 10 import java.util.HashMap; |
12 import java.util.LinkedList; | 11 import java.util.LinkedList; |
13 | 12 |
13 import christie.topology.HostMessage; | |
14 import org.apache.log4j.Logger; | 14 import org.apache.log4j.Logger; |
15 | 15 |
16 import com.alexmerz.graphviz.ParseException; | 16 import com.alexmerz.graphviz.ParseException; |
17 import com.alexmerz.graphviz.Parser; | 17 import com.alexmerz.graphviz.Parser; |
18 import com.alexmerz.graphviz.objects.*; | 18 import com.alexmerz.graphviz.objects.*; |
19 | 19 |
20 public class TopologyManager extends CodeGear { | 20 public class TopologyManager extends CodeGear { |
21 | 21 |
22 @Peek | 22 private TopologyManagerConfig conf; |
23 TopologyManagerConfig config; | 23 private Logger logger = Logger.getLogger(TopologyManager.class); |
24 | 24 |
25 Logger logger = Logger.getLogger(TopologyManager.class); | 25 public TopologyManager(TopologyManagerConfig conf) { |
26 | 26 this.conf = conf; |
27 } | |
27 | 28 |
28 @Override | 29 @Override |
29 protected void run(CodeGearManager cgm) { | 30 protected void run(CodeGearManager cgm) { |
30 cgm.setup(new CheckComingHost()); | 31 cgm.setup(new CheckComingHost()); |
31 | 32 |
33 getLocalDGM().put("absCookieTable", new HashMap<String, String>()); | |
34 getLocalDGM().put("config", conf ); | |
35 | |
32 // if (!conf.dynamic) は, conf.dynamic = trueの動作がわからないので, 省いた. | 36 // if (!conf.dynamic) は, conf.dynamic = trueの動作がわからないので, 省いた. |
33 | 37 |
34 LinkedList<String> nodeNames = new LinkedList<String>(); | 38 |
35 HashMap<String, LinkedList<NodeInfo>> topology = new HashMap<String, LinkedList<NodeInfo>>(); | 39 LinkedList<String> nodeNames = new LinkedList<>(); |
40 HashMap<String, LinkedList<NodeInfo>> topology = new HashMap<>(); | |
36 int nodeNum = 0; | 41 int nodeNum = 0; |
37 | 42 |
38 try { | 43 try { |
39 FileReader reader = new FileReader(new File(config.confFilePath)); | 44 FileReader reader = new FileReader(new File(conf.confFilePath)); |
40 Parser parser = new Parser(); | 45 Parser parser = new Parser(); |
41 parser.parse(reader); | 46 parser.parse(reader); |
42 | 47 |
43 | 48 |
44 ArrayList<Graph> digraphs = parser.getGraphs(); | 49 ArrayList<Graph> digraphs = parser.getGraphs(); |
49 nodeNum = nodes.size(); | 54 nodeNum = nodes.size(); |
50 | 55 |
51 for (Node node : nodes) { | 56 for (Node node : nodes) { |
52 String nodeName = node.getId().getId(); | 57 String nodeName = node.getId().getId(); |
53 nodeNames.add(nodeName); | 58 nodeNames.add(nodeName); |
54 topology.put(nodeName, new LinkedList<NodeInfo>()); | 59 topology.put(nodeName, new LinkedList<>()); |
55 } | 60 } |
56 | 61 |
57 ArrayList<Edge> edges = digraph.getEdges(); | 62 ArrayList<Edge> edges = digraph.getEdges(); |
58 HashMap<String, NodeInfo> hash = new HashMap<String, NodeInfo>(); | 63 HashMap<String, NodeInfo> hash = new HashMap<>(); |
59 | 64 |
60 String connection; | 65 String connection; |
61 String source; | 66 String source; |
62 String target; | 67 String target; |
63 | 68 |
90 | 95 |
91 } | 96 } |
92 } | 97 } |
93 | 98 |
94 } catch (FileNotFoundException e) { | 99 } catch (FileNotFoundException e) { |
95 logger.error("File not found: " + config.confFilePath); | 100 logger.error("File not found: " + conf.confFilePath); |
96 e.printStackTrace(); | 101 e.printStackTrace(); |
97 } catch (ParseException e) { | 102 } catch (ParseException e) { |
98 logger.error("File format error: " + config.confFilePath); | 103 logger.error("File format error: " + conf.confFilePath); |
99 e.printStackTrace(); | 104 e.printStackTrace(); |
100 } | 105 } |
101 | 106 |
102 // for recode topology information | 107 // for recode topology information |
103 // cookie List | 108 // cookie List |
113 // ConfigWaiter cs3 = new ConfigWaiter(nodeNum); | 118 // ConfigWaiter cs3 = new ConfigWaiter(nodeNum); |
114 // cs3.done.setKey("local", "done"); | 119 // cs3.done.setKey("local", "done"); |
115 | 120 |
116 cgm.setup(new ConfigWaiter()); | 121 cgm.setup(new ConfigWaiter()); |
117 getLocalDGM().put("nodeNum", nodeNum); | 122 getLocalDGM().put("nodeNum", nodeNum); |
118 getLocalDGM().put("done", false); | 123 |
124 | |
125 | |
126 | |
127 | |
128 getLocalDGM().put("topology", new HashMap<String, LinkedList<HostMessage>>()); | |
129 getLocalDGM().put("createdList", new LinkedList<String>()); | |
130 cgm.setup(new CreateHash()); | |
131 | |
132 cgm.setup(new TopologyFinish()); | |
119 | 133 |
120 } | 134 } |
121 | 135 |
122 | 136 |
123 } | 137 } |