Mercurial > hg > Database > Christie
diff src/main/java/christie/topology/manager/IncomingHosts.java @ 170:f9f83bb213e8
fix topology manager
author | akahori |
---|---|
date | Tue, 22 Jan 2019 18:32:39 +0900 |
parents | c7300be0fff6 |
children | 6eb548c188e5 |
line wrap: on
line diff
--- a/src/main/java/christie/topology/manager/IncomingHosts.java Tue Jan 22 18:32:13 2019 +0900 +++ b/src/main/java/christie/topology/manager/IncomingHosts.java Tue Jan 22 18:32:39 2019 +0900 @@ -25,6 +25,9 @@ @Take String MD5; + @Take + HashMap<String, LinkedList<HostMessage>> topology; + @Peek TopologyDataGear topoDG; @@ -46,23 +49,49 @@ absCookieTable.put(MD5, nodeName); getLocalDGM().put("absCookieTable", absCookieTable); - topoDG.setNodeName(nodeName); - getDGM(nodeName).put( "topoDG", topoDG); + getDGM(nodeName).put("cookie", MD5); LinkedList<HostMessage> nodeInfoList = resultParse.get(nodeName); + put(nodeName, "connectNodeNum", nodeInfoList.size()); + if(nodeInfoList.size() == 0) put(nodeName,"reverseNodeName", ""); + for (HostMessage nodeInfo : nodeInfoList) { + nodeInfo.setHostAndPort(newHost); - getLocalDGM().put("nodeInfo", nodeInfo); - getDGM(nodeName).put("remoteNodeInfo", nodeInfo); - cgm.setup(new RecordTopology()); + //getLocalDGM().put("nodeInfo", nodeInfo); + + //getDGM(nodeName).put("remoteNodeInfo", nodeInfo); + //cgm.setup(new RecordTopology()); + + String nodeInfoNodeName = nodeInfo.getNodeName(); + LinkedList<HostMessage> connections; + + if (!topology.containsKey(nodeInfoNodeName)) { + connections = new LinkedList<HostMessage>(); + } else { + connections = topology.get(nodeInfoNodeName); + } + connections.add(nodeInfo); + topology.put(nodeInfoNodeName, connections); } + getLocalDGM().put("topology", topology); + + if (nodeNames.isEmpty()) { // configuration finish for (String key : resultParse.keySet()) { + topoDG.setNodeName(key); + getDGM(key).put("topoDG", topoDG); + if(topology.containsKey(key)){ + LinkedList<HostMessage> connections = topology.get(key); + for(HostMessage connection: connections) { + put(key, "remoteNodeInfo", connection); + } + } put(key, "remoteNodeInfo", new HostMessage()); // end mark } }