annotate src/main/java/christie/topology/manager/IncomingHosts.java @ 64:f884c1bd0d36

fix IncomingHosts and RecordTopology. and refactor.
author akahori
date Thu, 30 Aug 2018 10:55:37 +0900
parents cfd79a71f9cd
children d74a64a3940a
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
60
cfd79a71f9cd refactor topology manager
akahori
parents: 59
diff changeset
16 @Peek // Topology from parse file
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
17 HashMap<String, LinkedList<NodeInfo>> resultParse;
60
cfd79a71f9cd refactor topology manager
akahori
parents: 59
diff changeset
18 @Peek // nodeName list
cfd79a71f9cd refactor topology manager
akahori
parents: 59
diff changeset
19 LinkedList<String> nodeNames;
cfd79a71f9cd refactor topology manager
akahori
parents: 59
diff changeset
20 @Peek
cfd79a71f9cd refactor topology manager
akahori
parents: 59
diff changeset
21 HashMap<String, String> absCookieTable;
41
akahori
parents:
diff changeset
22
akahori
parents:
diff changeset
23 @Take // new coming host info
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
24 HostMessage newHost;
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
25 @Take
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
26 String MD5;
41
akahori
parents:
diff changeset
27
59
76b6da075ce0 fix run code
akahori
parents: 57
diff changeset
28
41
akahori
parents:
diff changeset
29 private Logger log = Logger.getLogger(IncomingHosts.class);
akahori
parents:
diff changeset
30
akahori
parents:
diff changeset
31 public IncomingHosts() {
akahori
parents:
diff changeset
32
akahori
parents:
diff changeset
33 }
akahori
parents:
diff changeset
34
akahori
parents:
diff changeset
35 @Override
57
f4b388422045 fix public to protected run
akahori
parents: 55
diff changeset
36 protected void run(CodeGearManager cgm) {
41
akahori
parents:
diff changeset
37 // not have or match cookie
akahori
parents:
diff changeset
38 String nodeName = nodeNames.poll();
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
39
41
akahori
parents:
diff changeset
40 // Manager connect to Node
50
8dfd93810041 fix config and HostMessage
akahori
parents: 44
diff changeset
41 cgm.createRemoteDGM(nodeName, newHost.hostName, newHost.port);
41
akahori
parents:
diff changeset
42
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
43 absCookieTable.put(MD5, nodeName);
41
akahori
parents:
diff changeset
44
64
f884c1bd0d36 fix IncomingHosts and RecordTopology. and refactor.
akahori
parents: 60
diff changeset
45 getDGM(nodeName).put( "nodeName", nodeName);
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
46 getDGM(nodeName).put("cookie", MD5);
41
akahori
parents:
diff changeset
47 log.info( "toplology manager connected from " + nodeName);
akahori
parents:
diff changeset
48
64
f884c1bd0d36 fix IncomingHosts and RecordTopology. and refactor.
akahori
parents: 60
diff changeset
49
f884c1bd0d36 fix IncomingHosts and RecordTopology. and refactor.
akahori
parents: 60
diff changeset
50
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
51 LinkedList<NodeInfo> nodeInfoList = resultParse.get(nodeName);
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
52 for (NodeInfo nodeInfo : nodeInfoList) {
50
8dfd93810041 fix config and HostMessage
akahori
parents: 44
diff changeset
53 HostMessage hostMessage = new HostMessage(newHost.hostName, newHost.port,
64
f884c1bd0d36 fix IncomingHosts and RecordTopology. and refactor.
akahori
parents: 60
diff changeset
54 nodeInfo.connectionName, "");
f884c1bd0d36 fix IncomingHosts and RecordTopology. and refactor.
akahori
parents: 60
diff changeset
55 hostMessage.nodeName = nodeName;
f884c1bd0d36 fix IncomingHosts and RecordTopology. and refactor.
akahori
parents: 60
diff changeset
56 hostMessage.remoteNodeName = nodeInfo.targetNodeName;
41
akahori
parents:
diff changeset
57
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
58 getLocalDGM().put("nodeInfo", hostMessage);
64
f884c1bd0d36 fix IncomingHosts and RecordTopology. and refactor.
akahori
parents: 60
diff changeset
59
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
60 log.info(" write to " + nodeInfo.sourceNodeName + " config message =" + hostMessage.toString() + " remain "
41
akahori
parents:
diff changeset
61 + Integer.toString((nodeNames.size())));
57
f4b388422045 fix public to protected run
akahori
parents: 55
diff changeset
62
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
63 cgm.setup(new RecordTopology());
41
akahori
parents:
diff changeset
64 }
akahori
parents:
diff changeset
65
akahori
parents:
diff changeset
66 log.info(" remaining configure host = " + Integer.toString(nodeNames.size()));
akahori
parents:
diff changeset
67 if (nodeNames.isEmpty()) {
akahori
parents:
diff changeset
68 // configuration finish
44
6664efac18ee fix CheckCommingHost ConfigWaiter IncommingHosts
akahori
parents: 41
diff changeset
69 for (String key : resultParse.keySet()) {
41
akahori
parents:
diff changeset
70 log.info(" write to " + key + " end message =" + (new HostMessage("",0,"","")).toString());
59
76b6da075ce0 fix run code
akahori
parents: 57
diff changeset
71 getLocalDGM().put("hostInfo", new HostMessage("",0,"","")); // end mark
41
akahori
parents:
diff changeset
72 }
akahori
parents:
diff changeset
73 }
akahori
parents:
diff changeset
74 cgm.setup(new IncomingHosts());
akahori
parents:
diff changeset
75 }
akahori
parents:
diff changeset
76 }