Mercurial > hg > Database > Christie
view src/main/java/christie/topology/manager/SearchHostName.java @ 53:be8c40709e89
fix CheckComingHost else
author | akahori |
---|---|
date | Thu, 23 Aug 2018 09:54:50 +0900 |
parents | 8dfd93810041 |
children | cfd79a71f9cd |
line wrap: on
line source
package christie.topology.manager; import christie.annotation.Peek; import christie.annotation.Take; import christie.codegear.CodeGear; import christie.codegear.CodeGearManager; import christie.topology.HostMessage; import org.msgpack.type.ValueFactory; import java.util.HashMap; import java.util.LinkedList; public class SearchHostName extends CodeGear { @Take // reconnect NodeInfo HostMessage reconnectHost; @Take HashMap<String, LinkedList<HostMessage>> topology; @Peek boolean running; public SearchHostName(){ } @Override protected void run(CodeGearManager cgm) { // Question: remove処理 どうしようか. いらない気もする. // DataSegment.remove(hostInfo.absName); cgm.createRemoteDGM(reconnectHost.absName, reconnectHost.hostName, reconnectHost.port); getDGM(reconnectHost.absName).put("host", reconnectHost.absName); // put Host dataSegment on reconnect node if (topology.containsKey(reconnectHost.absName)) { // Question: これはバグ...? // ods.put(reconnectHost.absName, "dummy"); // this is bug if (running){ getLocalDGM().put(reconnectHost.absName, ValueFactory.createNilValue()); } LinkedList<HostMessage> hostList = topology.get(reconnectHost.absName); for (HostMessage host : hostList){ getLocalDGM().put(reconnectHost.absName, host); System.out.println("put data in "+ reconnectHost.absName); } } // update topology information for (LinkedList<HostMessage> list :topology.values()){ for (HostMessage host : list){ // find and update old info if (!reconnectHost.absName.equals(host.absName)) continue; if (!reconnectHost.hostName.equals(host.hostName) || reconnectHost.port != host.port){ host.hostName = reconnectHost.hostName; host.port = reconnectHost.port; getLocalDGM().put(host.remoteAbsName, host); } else { // nothing to do ? } } } for (LinkedList<HostMessage> list :topology.values()){ System.out.print(list.get(0).remoteAbsName+" : "); for (HostMessage host : list){ System.out.print("[ "+host.absName+" "+host.hostName+" "+host.port+" "+host.connectionName+" "+host.reverseName+" "+host.remoteAbsName+" ]"); } System.out.println(); } getLocalDGM().put("topology", topology); } }