annotate src/main/java/alice/topology/manager/IncomingHosts.java @ 435:41bb86275910 dispose

send MD5 "mode -t"
author sugi
date Tue, 12 Aug 2014 07:37:17 +0900
parents 4c62f76894c8
children b9fd22d9f6c5
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.DataSegment;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
11 import alice.datasegment.Receiver;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
12 import alice.topology.HostMessage;
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
13
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
14 public class IncomingHosts extends CodeSegment {
410
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
15
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
16 HashMap<String, LinkedList<NodeInfo>> topology;
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
17 LinkedList<String> nodeNames;
433
e565d481c52e separate checking process from IncomingHosts
sugi
parents: 431
diff changeset
18 private Receiver host = ids.create(CommandType.TAKE); //HostMessage
434
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
19 private Receiver absCookieTable = ids.create(CommandType.TAKE); // cookie, AbsName HashMap
431
0239c1633012 add CodeSegment for creating MD5
sugi
parents: 430
diff changeset
20 private Receiver cookie = ids.create(CommandType.TAKE); // MD5
410
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
21
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
22 public IncomingHosts(HashMap<String, LinkedList<NodeInfo>> topology,
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
23 LinkedList<String> nodeNames) {
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
24 this.topology = topology;
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
25 this.nodeNames = nodeNames;
422
2c6f86320691 add topology state recoder
sugi
parents: 410
diff changeset
26 this.host.setKey("host");
434
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
27 this.absCookieTable.setKey("absCookieTable");
431
0239c1633012 add CodeSegment for creating MD5
sugi
parents: 430
diff changeset
28 this.cookie.setKey("MD5");
410
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
29 }
401
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
30
410
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
31 @Override
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
32 public void run() {
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
33 HostMessage host = this.host.asClass(HostMessage.class);
431
0239c1633012 add CodeSegment for creating MD5
sugi
parents: 430
diff changeset
34 @SuppressWarnings("unchecked")
434
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
35 HashMap<String, String> absCookieTable = this.absCookieTable.asClass(HashMap.class);
429
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
36 boolean match = false;
423
af343b2a7a8b add coommons-lang jar for creating cookie
sugi
parents: 422
diff changeset
37 // check cookie
424
faae3e976cc1 change cookie LinkedLIst Type from String.class to HostMessage.class
sugi
parents: 423
diff changeset
38 if (host.cookie != null) {
434
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
39 if (absCookieTable.containsKey(host.cookie)){
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
40 match = true;
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
41 System.out.println("cookie is match");
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
42 host.absName = absCookieTable.get(host.cookie);
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
43 ods.put("reconnectHost", host);
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
44
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
45 ods.put(this.absCookieTable.key, absCookieTable);
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
46 new SearchHostName();
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
47
428
93995b7a9a05 change HostMessage field from parentAbsName to remoteAbsName
sugi
parents: 424
diff changeset
48 }
424
faae3e976cc1 change cookie LinkedLIst Type from String.class to HostMessage.class
sugi
parents: 423
diff changeset
49 }
423
af343b2a7a8b add coommons-lang jar for creating cookie
sugi
parents: 422
diff changeset
50
429
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
51 if (!match) {
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
52 System.out.println("new node come");
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
53 // not have or match cookie
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
54 String nodeName = nodeNames.poll();
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
55 // Manager connect to Node
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
56 DataSegment.connect(nodeName, "", host.name, host.port);
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
57 ods.put(nodeName, "host", nodeName);
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
58
431
0239c1633012 add CodeSegment for creating MD5
sugi
parents: 430
diff changeset
59 String cookie = this.cookie.asString();
434
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
60 absCookieTable.put(cookie, nodeName);
4c62f76894c8 refactoring
sugi
parents: 433
diff changeset
61 ods.put(this.absCookieTable.key, absCookieTable);
431
0239c1633012 add CodeSegment for creating MD5
sugi
parents: 430
diff changeset
62
429
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
63 ods.put(nodeName, "cookie", cookie);
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
64
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
65 LinkedList<NodeInfo> nodes = topology.get(nodeName);
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
66 for (NodeInfo nodeInfo : nodes) {
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
67 HostMessage newHost = new HostMessage(host.name, host.port,
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
68 nodeInfo.connectionName, nodeInfo.reverseName);
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
69 newHost.absName = nodeName;
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
70 newHost.remoteAbsName = nodeInfo.sourceNodeName;
435
41bb86275910 send MD5 "mode -t"
sugi
parents: 434
diff changeset
71
429
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
72 ods.put("nodeInfo", newHost);
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
73 ods.put(nodeInfo.sourceNodeName, newHost);
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
74 new RecodeTopology();
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
75 }
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
76
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
77 if (nodeNames.isEmpty()) {
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
78 // configuration finish
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
79 for (String key : topology.keySet()) {
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
80 ods.put("local", key, ValueFactory.createNilValue());
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
81 }
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
82 }
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
83 }
431
0239c1633012 add CodeSegment for creating MD5
sugi
parents: 430
diff changeset
84 ods.put("orderHash", "order");
429
1b32ea1263f3 work but have bug
sugi
parents: 428
diff changeset
85 new IncomingHosts(topology, nodeNames);
410
74e13553e3e3 change call do setKey in constractor
tatsuki
parents: 401
diff changeset
86 }
401
91e1b063a89f haven't to remove manager package
sugi
parents:
diff changeset
87 }