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 }