Mercurial > hg > Database > Alice
annotate src/main/java/alice/topology/manager/StartTopologyManager.java @ 437:b9fd22d9f6c5 dispose
refactoring IncomingHosts.java
author | sugi |
---|---|
date | Mon, 18 Aug 2014 15:54:53 +0900 |
parents | 41bb86275910 |
children | c973f7ee7c91 |
rev | line source |
---|---|
401 | 1 package alice.topology.manager; |
2 | |
3 import java.io.File; | |
4 import java.io.FileNotFoundException; | |
5 import java.io.FileReader; | |
6 import java.util.ArrayList; | |
7 import java.util.HashMap; | |
8 import java.util.LinkedList; | |
9 | |
10 import org.apache.log4j.Logger; | |
11 | |
12 import alice.codesegment.CodeSegment; | |
403
539b7f5772c7
manager in extendTopology mode have parent Information at each node
sugi
parents:
402
diff
changeset
|
13 import alice.topology.HostMessage; |
401 | 14 |
15 import com.alexmerz.graphviz.ParseException; | |
16 import com.alexmerz.graphviz.Parser; | |
17 import com.alexmerz.graphviz.objects.Edge; | |
18 import com.alexmerz.graphviz.objects.Graph; | |
19 import com.alexmerz.graphviz.objects.Node; | |
20 | |
21 public class StartTopologyManager extends CodeSegment { | |
22 | |
419 | 23 TopologyManagerConfig conf; |
24 Logger logger = Logger.getLogger(StartTopologyManager.class); | |
401 | 25 |
419 | 26 public StartTopologyManager(TopologyManagerConfig conf) { |
27 this.conf = conf; | |
28 } | |
401 | 29 |
419 | 30 @Override |
31 public void run() { | |
32 if (!conf.extendTopology) { | |
33 LinkedList<String> nodeNames = new LinkedList<String>(); | |
34 HashMap<String, LinkedList<NodeInfo>> topology = new HashMap<String, LinkedList<NodeInfo>>(); | |
35 int nodeNum = 0; | |
36 try { | |
37 FileReader reader = new FileReader(new File(conf.confFilePath)); | |
38 Parser parser = new Parser(); | |
39 parser.parse(reader); | |
40 ArrayList<Graph> graphs = parser.getGraphs(); | |
41 for (Graph graph : graphs) { | |
42 ArrayList<Node> nodes = graph.getNodes(false); | |
43 nodeNum = nodes.size(); | |
44 for (Node node : nodes) { | |
45 String nodeName = node.getId().getId(); | |
46 nodeNames.add(nodeName); | |
47 topology.put(nodeName, new LinkedList<NodeInfo>()); | |
48 } | |
49 ArrayList<Edge> edges = graph.getEdges(); | |
50 HashMap<String, NodeInfo> hash = new HashMap<String, NodeInfo>(); | |
51 for (Edge edge : edges) { | |
52 String connection = edge.getAttribute("label"); | |
53 String source = edge.getSource().getNode().getId().getId(); | |
54 String target = edge.getTarget().getNode().getId().getId(); | |
55 LinkedList<NodeInfo> sources = topology.get(target); | |
56 NodeInfo nodeInfo = new NodeInfo(source, connection); | |
57 sources.add(nodeInfo); | |
58 hash.put(source + "," + target, nodeInfo); | |
59 } | |
60 for (Edge edge : edges) { | |
61 String connection = edge.getAttribute("label"); | |
62 String source = edge.getSource().getNode().getId().getId(); | |
63 String target = edge.getTarget().getNode().getId().getId(); | |
64 NodeInfo nodeInfo = hash.get(target + "," + source); | |
65 if (nodeInfo != null) { | |
66 nodeInfo.reverseName = connection; | |
67 } | |
68 } | |
69 } | |
402 | 70 |
419 | 71 } catch (FileNotFoundException e) { |
72 logger.error("File not found: " + conf.confFilePath); | |
73 e.printStackTrace(); | |
74 } catch (ParseException e) { | |
75 logger.error("File format error: " + conf.confFilePath); | |
76 e.printStackTrace(); | |
77 } | |
422 | 78 |
79 // for recode topology information | |
423 | 80 // cookie List |
437 | 81 ods.put("running", false); |
82 ods.put("resultParse", topology); | |
83 ods.put("nodeNames", nodeNames); | |
431 | 84 ods.put("orderHash", "order"); |
437 | 85 new IncomingHosts(); |
402 | 86 |
419 | 87 ConfigWaiter cs3 = new ConfigWaiter(nodeNum); |
88 cs3.done.setKey("local", "done"); | |
437 | 89 |
419 | 90 } else { |
435 | 91 ods.put("running", true); |
433 | 92 new CheckComingHost(); |
93 | |
419 | 94 HashMap<String,HostMessage> parentInfo = new HashMap<String,HostMessage>(); |
95 int cominghostCount = 0; | |
96 ods.put("nodeConnectionInfo", parentInfo); | |
97 ods.put("hostCount", cominghostCount); | |
98 new ComingServiceHosts(); | |
99 } | |
433 | 100 |
435 | 101 ods.put("topology", new HashMap<String, LinkedList<HostMessage>>()); |
434 | 102 ods.put("absCookieTable", new HashMap<String, String>()); |
435 | 103 ods.put("createdList", new LinkedList<String>()); |
433 | 104 new CreateHash(); |
419 | 105 } |
401 | 106 |
107 } |