annotate src/main/java/christie/topology/manager/IncomingHosts.java @ 272:b592fe1d4a4e default tip

create example Attendance
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Thu, 01 Jul 2021 20:41:07 +0900
parents dd3c0ba6a0a6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
41
akahori
parents:
diff changeset
1 package christie.topology.manager;
akahori
parents:
diff changeset
2
akahori
parents:
diff changeset
3
akahori
parents:
diff changeset
4 import christie.annotation.Peek;
akahori
parents:
diff changeset
5 import christie.annotation.Take;
akahori
parents:
diff changeset
6 import christie.codegear.CodeGear;
akahori
parents:
diff changeset
7 import christie.codegear.CodeGearManager;
akahori
parents:
diff changeset
8 import christie.topology.HostMessage;
176
6eb548c188e5 update add Message
akahori
parents: 170
diff changeset
9 import christie.topology.Message;
161
5c5a5da0d13d add TopoDG
akahori
parents: 160
diff changeset
10 import christie.topology.TopologyDataGear;
41
akahori
parents:
diff changeset
11
akahori
parents:
diff changeset
12 import java.util.HashMap;
akahori
parents:
diff changeset
13 import java.util.LinkedList;
akahori
parents:
diff changeset
14
akahori
parents:
diff changeset
15 public class IncomingHosts extends CodeGear {
akahori
parents:
diff changeset
16
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 94
diff changeset
17 @Take
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
18 HashMap<String, LinkedList<HostMessage>> resultParse;
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 94
diff changeset
19 @Take
60
cfd79a71f9cd refactor topology manager
akahori
parents: 59
diff changeset
20 LinkedList<String> nodeNames;
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 94
diff changeset
21 @Take
60
cfd79a71f9cd refactor topology manager
akahori
parents: 59
diff changeset
22 HashMap<String, String> absCookieTable;
41
akahori
parents:
diff changeset
23
akahori
parents:
diff changeset
24 @Take // new coming host info
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
25 HostMessage newHost;
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
26 @Take
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
27 String MD5;
41
akahori
parents:
diff changeset
28
170
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
29 @Take
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
30 HashMap<String, LinkedList<HostMessage>> topology;
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
31
160
3b9be156e280 update topologymanager
akahori
parents: 158
diff changeset
32 @Peek
161
5c5a5da0d13d add TopoDG
akahori
parents: 160
diff changeset
33 TopologyDataGear topoDG;
158
e295cb59e514 update refactor topology manager
akahori
parents: 129
diff changeset
34
41
akahori
parents:
diff changeset
35 public IncomingHosts() {
akahori
parents:
diff changeset
36
akahori
parents:
diff changeset
37 }
akahori
parents:
diff changeset
38
akahori
parents:
diff changeset
39 @Override
57
f4b388422045 fix public to protected run
akahori
parents: 55
diff changeset
40 protected void run(CodeGearManager cgm) {
41
akahori
parents:
diff changeset
41 // not have or match cookie
akahori
parents:
diff changeset
42 String nodeName = nodeNames.poll();
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 94
diff changeset
43 getLocalDGM().put("nodeNames", nodeNames);
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
44
41
akahori
parents:
diff changeset
45 // Manager connect to Node
158
e295cb59e514 update refactor topology manager
akahori
parents: 129
diff changeset
46 cgm.createRemoteDGM(nodeName,
e295cb59e514 update refactor topology manager
akahori
parents: 129
diff changeset
47 newHost.getHostName(),
e295cb59e514 update refactor topology manager
akahori
parents: 129
diff changeset
48 newHost.getPort());
41
akahori
parents:
diff changeset
49
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
50 absCookieTable.put(MD5, nodeName);
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 94
diff changeset
51 getLocalDGM().put("absCookieTable", absCookieTable);
41
akahori
parents:
diff changeset
52
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
53 getDGM(nodeName).put("cookie", MD5);
41
akahori
parents:
diff changeset
54
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
55 LinkedList<HostMessage> nodeInfoList = resultParse.get(nodeName);
170
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
56 put(nodeName, "connectNodeNum", nodeInfoList.size());
176
6eb548c188e5 update add Message
akahori
parents: 170
diff changeset
57 if(nodeInfoList.size() == 0) put(nodeName,"_CONNECTIONMESSAGE", new Message());
170
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
58
94
87a203c99177 update HostMessage refactor
akahori
parents: 93
diff changeset
59 for (HostMessage nodeInfo : nodeInfoList) {
158
e295cb59e514 update refactor topology manager
akahori
parents: 129
diff changeset
60
170
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
61
158
e295cb59e514 update refactor topology manager
akahori
parents: 129
diff changeset
62 nodeInfo.setHostAndPort(newHost);
41
akahori
parents:
diff changeset
63
170
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
64 //getLocalDGM().put("nodeInfo", nodeInfo);
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
65
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
66 //getDGM(nodeName).put("remoteNodeInfo", nodeInfo);
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
67 //cgm.setup(new RecordTopology());
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
68
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
69 String nodeInfoNodeName = nodeInfo.getNodeName();
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
70 LinkedList<HostMessage> connections;
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
71
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
72 if (!topology.containsKey(nodeInfoNodeName)) {
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
73 connections = new LinkedList<HostMessage>();
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
74 } else {
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
75 connections = topology.get(nodeInfoNodeName);
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
76 }
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
77 connections.add(nodeInfo);
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
78 topology.put(nodeInfoNodeName, connections);
41
akahori
parents:
diff changeset
79 }
167
240058b2ce3e fix incominghosts
akahori
parents: 161
diff changeset
80
170
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
81 getLocalDGM().put("topology", topology);
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
82
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
83
168
c7300be0fff6 fix incomingHosts end message
akahori
parents: 167
diff changeset
84 if (nodeNames.isEmpty()) {
167
240058b2ce3e fix incominghosts
akahori
parents: 161
diff changeset
85 // configuration finish
240058b2ce3e fix incominghosts
akahori
parents: 161
diff changeset
86 for (String key : resultParse.keySet()) {
170
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
87 topoDG.setNodeName(key);
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
88 getDGM(key).put("topoDG", topoDG);
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
89 if(topology.containsKey(key)){
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
90 LinkedList<HostMessage> connections = topology.get(key);
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
91 for(HostMessage connection: connections) {
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
92 put(key, "remoteNodeInfo", connection);
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
93 }
f9f83bb213e8 fix topology manager
akahori
parents: 168
diff changeset
94 }
198
dd3c0ba6a0a6 fix topology manager
akahori
parents: 176
diff changeset
95 //put(key, "remoteNodeInfo", new HostMessage()); // end mark
167
240058b2ce3e fix incominghosts
akahori
parents: 161
diff changeset
96 }
176
6eb548c188e5 update add Message
akahori
parents: 170
diff changeset
97 }else{
6eb548c188e5 update add Message
akahori
parents: 170
diff changeset
98 cgm.setup(new IncomingHosts());
168
c7300be0fff6 fix incomingHosts end message
akahori
parents: 167
diff changeset
99 }
129
2e2d761ea806 fix List Peek to Take
akahori
parents: 94
diff changeset
100 getLocalDGM().put("resultParse", resultParse);
2e2d761ea806 fix List Peek to Take
akahori
parents: 94
diff changeset
101
41
akahori
parents:
diff changeset
102 }
akahori
parents:
diff changeset
103 }