annotate src/main/java/christie/topology/manager/IncomingHosts.java @ 50:8dfd93810041

fix config and HostMessage
author akahori
date Thu, 23 Aug 2018 09:30:36 +0900
parents 6664efac18ee
children 34181394333f
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;
akahori
parents:
diff changeset
9 import org.apache.log4j.Logger;
akahori
parents:
diff changeset
10
akahori
parents:
diff changeset
11 import java.util.HashMap;
akahori
parents:
diff changeset
12 import java.util.LinkedList;
akahori
parents:
diff changeset
13
akahori
parents:
diff changeset
14 public class IncomingHosts extends CodeGear {
akahori
parents:
diff changeset
15
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
16 @Take // Topology from parse file
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
17 HashMap<String, LinkedList<NodeInfo>> resultParse;
41
akahori
parents:
diff changeset
18
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
19 @Take // nodeName list
41
akahori
parents:
diff changeset
20 LinkedList<String> nodeNames;
akahori
parents:
diff changeset
21
akahori
parents:
diff changeset
22 @Take // new coming host info
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
23 HostMessage newHost;
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
24
50
8dfd93810041 fix config and HostMessage
akahori
parents: 44
diff changeset
25 //@Take
8dfd93810041 fix config and HostMessage
akahori
parents: 44
diff changeset
26 @Peek
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
27 HashMap<String, String> absCookieTable;
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
28
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
29 @Take
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
30 String MD5;
41
akahori
parents:
diff changeset
31
akahori
parents:
diff changeset
32
akahori
parents:
diff changeset
33 private Logger log = Logger.getLogger(IncomingHosts.class);
akahori
parents:
diff changeset
34
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
akahori
parents:
diff changeset
40 public void run(CodeGearManager cgm) {
akahori
parents:
diff changeset
41
akahori
parents:
diff changeset
42 // not have or match cookie
akahori
parents:
diff changeset
43 String nodeName = nodeNames.poll();
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
44
41
akahori
parents:
diff changeset
45 // Manager connect to Node
50
8dfd93810041 fix config and HostMessage
akahori
parents: 44
diff changeset
46 cgm.createRemoteDGM(nodeName, newHost.hostName, newHost.port);
41
akahori
parents:
diff changeset
47 getDGM(nodeName).put( "host", nodeName);
akahori
parents:
diff changeset
48
akahori
parents:
diff changeset
49
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
50 absCookieTable.put(MD5, nodeName);
50
8dfd93810041 fix config and HostMessage
akahori
parents: 44
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 log.info( "toplology manager connected from " + nodeName);
akahori
parents:
diff changeset
55
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
56 LinkedList<NodeInfo> nodeInfoList = resultParse.get(nodeName);
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
57 for (NodeInfo nodeInfo : nodeInfoList) {
50
8dfd93810041 fix config and HostMessage
akahori
parents: 44
diff changeset
58 HostMessage hostMessage = new HostMessage(newHost.hostName, newHost.port,
41
akahori
parents:
diff changeset
59 nodeInfo.connectionName, nodeInfo.reverseName);
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
60 hostMessage.absName = nodeName;
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
61 hostMessage.remoteAbsName = nodeInfo.sourceNodeName;
41
akahori
parents:
diff changeset
62
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
63 getLocalDGM().put("nodeInfo", hostMessage);
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
64 getLocalDGM().put(nodeInfo.sourceNodeName, hostMessage);
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
65 log.info(" write to " + nodeInfo.sourceNodeName + " config message =" + hostMessage.toString() + " remain "
41
akahori
parents:
diff changeset
66 + Integer.toString((nodeNames.size())));
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
67 cgm.setup(new RecordTopology());
41
akahori
parents:
diff changeset
68 }
akahori
parents:
diff changeset
69
akahori
parents:
diff changeset
70 log.info(" remaining configure host = " + Integer.toString(nodeNames.size()));
akahori
parents:
diff changeset
71 if (nodeNames.isEmpty()) {
akahori
parents:
diff changeset
72 // configuration finish
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
73 for (String key : resultParse.keySet()) {
41
akahori
parents:
diff changeset
74 log.info(" write to " + key + " end message =" + (new HostMessage("",0,"","")).toString());
akahori
parents:
diff changeset
75 getLocalDGM().put(key, new HostMessage("",0,"","")); // end mark
akahori
parents:
diff changeset
76 }
akahori
parents:
diff changeset
77 }
akahori
parents:
diff changeset
78
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
79
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
80 getLocalDGM().put("nodeNames", nodeNames);
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
81 getLocalDGM().put("resultParse", resultParse);
41
akahori
parents:
diff changeset
82
akahori
parents:
diff changeset
83 cgm.setup(new IncomingHosts());
akahori
parents:
diff changeset
84 }
akahori
parents:
diff changeset
85 }