annotate src/alice/topology/manager/StartTopologyManager.java @ 27:f54dcbebde3a

topology manager work!
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Tue, 17 Jan 2012 03:52:39 +0900
parents src/topology/manager/StartTopologyManager.java@ebd91e607b63
children 98ab26e09a98
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27
f54dcbebde3a topology manager work!
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
1 package alice.topology.manager;
22
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 import java.io.File;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 import java.io.FileNotFoundException;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 import java.io.FileReader;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 import java.util.ArrayList;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 import java.util.HashMap;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 import java.util.LinkedList;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 import org.apache.log4j.Logger;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 import com.alexmerz.graphviz.ParseException;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 import com.alexmerz.graphviz.Parser;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 import com.alexmerz.graphviz.objects.Edge;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 import com.alexmerz.graphviz.objects.Graph;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 import com.alexmerz.graphviz.objects.Node;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 import alice.codesegment.CodeSegment;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 public class StartTopologyManager extends CodeSegment {
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 TopologyManagerConfig conf;
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 Logger logger = Logger.getLogger(StartTopologyManager.class);
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 public StartTopologyManager(TopologyManagerConfig conf) {
27
f54dcbebde3a topology manager work!
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
26 this.conf = conf;
22
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 }
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 @Override
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 public void run() {
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 LinkedList<String> nodeNames = new LinkedList<String>();
24
ebd91e607b63 implements TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
32 HashMap<String, LinkedList<NodeInfo>> topology = new HashMap<String, LinkedList<NodeInfo>>();
22
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 try {
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 FileReader reader = new FileReader(new File(conf.confFilePath));
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 Parser parser = new Parser();
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 parser.parse(reader);
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 ArrayList<Graph> graphs = parser.getGraphs();
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 for (Graph graph : graphs) {
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 ArrayList<Node> nodes = graph.getNodes(false);
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 for (Node node : nodes) {
24
ebd91e607b63 implements TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
41 String nodeName = node.getId().getId();
ebd91e607b63 implements TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
42 nodeNames.add(nodeName);
ebd91e607b63 implements TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
43 topology.put(nodeName, new LinkedList<NodeInfo>());
22
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 }
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 ArrayList<Edge> edges = graph.getEdges();
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 for (Edge edge : edges) {
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 String connection = edge.getAttribute("label");
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 String source = edge.getSource().getNode().getId().getId();
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 String target = edge.getSource().getNode().getId().getId();
24
ebd91e607b63 implements TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
50 LinkedList<NodeInfo> sources = topology.get(target);
ebd91e607b63 implements TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 22
diff changeset
51 sources.add(new NodeInfo(source, connection));
22
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 }
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 }
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 } catch (FileNotFoundException e) {
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 logger.error("File not found: " + conf.confFilePath);
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 e.printStackTrace();
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 } catch (ParseException e) {
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 logger.error("File format error: " + conf.confFilePath);
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 e.printStackTrace();
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 }
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 IncomingHosts cs = new IncomingHosts(topology, nodeNames);
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 cs.host.setKey("local", "host");
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 }
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
2ca2d961a8d2 implements outline of TopologyManager
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 }