annotate src/main/java/alice/topology/manager/IncomingHosts.java @ 547:e91a574b69de dispose

remove index
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 18 Aug 2015 16:15:17 +0900
parents 15eeb439830c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
401
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
1 package alice.topology.manager;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
2
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
3 import java.util.HashMap;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
4 import java.util.LinkedList;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
5
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
6 import org.msgpack.type.ValueFactory;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
7
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
8 import alice.codesegment.CodeSegment;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
9 import alice.datasegment.CommandType;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
10 import alice.datasegment.Receiver;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
11 import alice.topology.HostMessage;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
12
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
13 public class IncomingHosts extends CodeSegment {
410
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
14
437
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
15 private Receiver topology = ids.create(CommandType.TAKE); // Topology from parse file
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
16 private Receiver nodeNames = ids.create(CommandType.TAKE); // nodeName list
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
17 private Receiver host = ids.create(CommandType.TAKE); // new coming host info
434
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
18 private Receiver absCookieTable = ids.create(CommandType.TAKE); // cookie, AbsName HashMap
437
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
19 private Receiver cookie = ids.create(CommandType.TAKE); // MD5
410
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
20
437
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
21 public IncomingHosts() {
547
e91a574b69de remove index
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 546
diff changeset
22 this.topology.setKey("resultParse", this);
e91a574b69de remove index
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 546
diff changeset
23 this.nodeNames.setKey("nodeNames", this);
e91a574b69de remove index
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 546
diff changeset
24 this.host.setKey("newHost", this);
e91a574b69de remove index
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 546
diff changeset
25 this.absCookieTable.setKey("absCookieTable", this);
e91a574b69de remove index
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 546
diff changeset
26 this.cookie.setKey("MD5", this);
410
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
27 }
401
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
28
410
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
29 @Override
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
30 public void run() {
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
31 HostMessage host = this.host.asClass(HostMessage.class);
431
0239c1633012 add CodeSegment for creating MD5
sugi
parents: 430
diff changeset
32 @SuppressWarnings("unchecked")
434
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
33 HashMap<String, String> absCookieTable = this.absCookieTable.asClass(HashMap.class);
437
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
34 @SuppressWarnings("unchecked")
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
35 HashMap<String, LinkedList<NodeInfo>> topology = this.topology.asClass(HashMap.class);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
36 @SuppressWarnings("unchecked")
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
37 LinkedList<String> nodeNames = this.nodeNames.asClass(LinkedList.class);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
38
466
268b1280dc18 remove debug message
sugi
parents: 438
diff changeset
39 // not have or match cookie
437
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
40 String nodeName = nodeNames.poll();
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
41 // Manager connect to Node
543
f3f7e256ee03 add AliceDaemon on paramater
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 539
diff changeset
42 aliceDaemon.dataSegment.connect(nodeName, "", host.name, host.port);
437
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
43 ods.put(nodeName, "host", nodeName);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
44
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
45 String cookie = this.cookie.asString();
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
46 absCookieTable.put(cookie, nodeName);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
47 ods.put(this.absCookieTable.key, absCookieTable);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
48
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
49 ods.put(nodeName, "cookie", cookie);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
50
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
51 LinkedList<NodeInfo> nodes = topology.get(nodeName);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
52 for (NodeInfo nodeInfo : nodes) {
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
53 HostMessage newHost = new HostMessage(host.name, host.port,
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
54 nodeInfo.connectionName, nodeInfo.reverseName);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
55 newHost.absName = nodeName;
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
56 newHost.remoteAbsName = nodeInfo.sourceNodeName;
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
57
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
58 ods.put("nodeInfo", newHost);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
59 ods.put(nodeInfo.sourceNodeName, newHost);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
60 new RecodeTopology();
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
61 }
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
62
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
63 if (nodeNames.isEmpty()) {
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
64 // configuration finish
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
65 for (String key : topology.keySet()) {
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
66 ods.put("local", key, ValueFactory.createNilValue());
428
93995b7a9a05 change HostMessage field from parentAbsName to remoteAbsName
sugi
parents: 424
diff changeset
67 }
424
faae3e976cc1 change cookie LinkedLIst Type from String.class to HostMessage.class
sugi
parents: 423
diff changeset
68 }
466
268b1280dc18 remove debug message
sugi
parents: 438
diff changeset
69
437
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
70 ods.put(this.nodeNames.key, nodeNames);
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
71 ods.put(this.topology.key, topology);
466
268b1280dc18 remove debug message
sugi
parents: 438
diff changeset
72
437
b9fd22d9f6c5 refactoring IncomingHosts.java
sugi
parents: 435
diff changeset
73 new IncomingHosts();
410
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
74 }
401
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
75 }