annotate src/main/java/christie/topology/manager/IncomingHosts.java @ 44:6664efac18ee

fix CheckCommingHost ConfigWaiter IncommingHosts
author akahori
date Thu, 02 Aug 2018 11:44:47 +0900
parents cf5a75bc3e55
children 8dfd93810041
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
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
25 @Take
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
26 HashMap<String, String> absCookieTable;
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
27
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
28 @Take
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
29 String MD5;
41
akahori
parents:
diff changeset
30
akahori
parents:
diff changeset
31
akahori
parents:
diff changeset
32 private Logger log = Logger.getLogger(IncomingHosts.class);
akahori
parents:
diff changeset
33
akahori
parents:
diff changeset
34 public IncomingHosts() {
akahori
parents:
diff changeset
35
akahori
parents:
diff changeset
36 }
akahori
parents:
diff changeset
37
akahori
parents:
diff changeset
38 @Override
akahori
parents:
diff changeset
39 public void run(CodeGearManager cgm) {
akahori
parents:
diff changeset
40
akahori
parents:
diff changeset
41 // not have or match cookie
akahori
parents:
diff changeset
42 String nodeName = nodeNames.poll();
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
43
41
akahori
parents:
diff changeset
44 // Manager connect to Node
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
45 cgm.createRemoteDGM(nodeName, newHost.name, newHost.port);
41
akahori
parents:
diff changeset
46 getDGM(nodeName).put( "host", nodeName);
akahori
parents:
diff changeset
47
akahori
parents:
diff changeset
48
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
49 absCookieTable.put(MD5, nodeName);
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
50 getLocalDGM().put("absCookieTable", absCookieTable);
41
akahori
parents:
diff changeset
51
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
52 getDGM(nodeName).put("cookie", MD5);
41
akahori
parents:
diff changeset
53 log.info( "toplology manager connected from " + nodeName);
akahori
parents:
diff changeset
54
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
55 LinkedList<NodeInfo> nodeInfoList = resultParse.get(nodeName);
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
56 for (NodeInfo nodeInfo : nodeInfoList) {
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
57 HostMessage hostMessage = new HostMessage(newHost.name, newHost.port,
41
akahori
parents:
diff changeset
58 nodeInfo.connectionName, nodeInfo.reverseName);
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
59 hostMessage.absName = nodeName;
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
60 hostMessage.remoteAbsName = nodeInfo.sourceNodeName;
41
akahori
parents:
diff changeset
61
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
62 getLocalDGM().put("nodeInfo", hostMessage);
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
63 getLocalDGM().put(nodeInfo.sourceNodeName, hostMessage);
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
64 log.info(" write to " + nodeInfo.sourceNodeName + " config message =" + hostMessage.toString() + " remain "
41
akahori
parents:
diff changeset
65 + Integer.toString((nodeNames.size())));
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
66 cgm.setup(new RecordTopology());
41
akahori
parents:
diff changeset
67 }
akahori
parents:
diff changeset
68
akahori
parents:
diff changeset
69 log.info(" remaining configure host = " + Integer.toString(nodeNames.size()));
akahori
parents:
diff changeset
70 if (nodeNames.isEmpty()) {
akahori
parents:
diff changeset
71 // configuration finish
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
72 for (String key : resultParse.keySet()) {
41
akahori
parents:
diff changeset
73 log.info(" write to " + key + " end message =" + (new HostMessage("",0,"","")).toString());
akahori
parents:
diff changeset
74 getLocalDGM().put(key, new HostMessage("",0,"","")); // end mark
akahori
parents:
diff changeset
75 }
akahori
parents:
diff changeset
76 }
akahori
parents:
diff changeset
77
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
78
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
79 getLocalDGM().put("nodeNames", nodeNames);
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
80 getLocalDGM().put("resultParse", resultParse);
41
akahori
parents:
diff changeset
81
akahori
parents:
diff changeset
82 cgm.setup(new IncomingHosts());
akahori
parents:
diff changeset
83 }
akahori
parents:
diff changeset
84 }