changeset 44:6664efac18ee

fix CheckCommingHost ConfigWaiter IncommingHosts
author akahori
date Thu, 02 Aug 2018 11:44:47 +0900
parents ea9657dc8311
children 12c9bf81d429
files src/main/java/christie/topology/manager/CheckComingHost.java src/main/java/christie/topology/manager/ConfigWaiter.java src/main/java/christie/topology/manager/IncomingHosts.java
diffstat 3 files changed, 38 insertions(+), 54 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/christie/topology/manager/CheckComingHost.java	Thu Aug 02 11:41:29 2018 +0900
+++ b/src/main/java/christie/topology/manager/CheckComingHost.java	Thu Aug 02 11:44:47 2018 +0900
@@ -22,31 +22,21 @@
     @Override
     public void run(CodeGearManager cgm) {
 
-        boolean match = false;
         // check cookie
         if (hostMessage.cookie != null) {
             if (absCookieTable.containsKey(hostMessage.cookie)){
-                match = true;
                 hostMessage.absName = absCookieTable.get(hostMessage.cookie);
                 System.out.println("match");
+                // coming host has ever joined this App
+                getLocalDGM().put("reconnectHost", hostMessage);
+                cgm.setup(new SearchHostName());
+            }else {
+                getLocalDGM().put("orderHash", "order");
+                getLocalDGM().put("newHost", hostMessage);
             }
         }
 
-        if (match){
-            // coming host has ever joined this App
-            getLocalDGM().put("reconnectHost", hostMessage);
-
-            // TODO: これから実装する
-            //new SearchHostName();
-        } else {
-            getLocalDGM().put("orderHash", "order");
-            getLocalDGM().put("newHost", hostMessage);
-        }
-
         cgm.setup(new CheckComingHost());
     }
 
-
-
-
 }
--- a/src/main/java/christie/topology/manager/ConfigWaiter.java	Thu Aug 02 11:41:29 2018 +0900
+++ b/src/main/java/christie/topology/manager/ConfigWaiter.java	Thu Aug 02 11:44:47 2018 +0900
@@ -9,7 +9,7 @@
 public class ConfigWaiter extends CodeGear {
 
 
-    // Question; done 変数がわからない...何やっているんだろう.
+    // Question: done 変数がわからない...何やっているんだろう.
     // public Receiver done = ids.create(CommandType.TAKE);
     @Take
     boolean done;
@@ -17,27 +17,21 @@
     @Take
     int nodeNum;
 
-
-
     public ConfigWaiter() { }
 
     @Override
     public void run(CodeGearManager cgm) {
         nodeNum--;
         if (nodeNum == 0) {
-            put("local", "start", ValueFactory.createNilValue());
-            put("startTime", System.currentTimeMillis());
-            put("done", true);
-            //update("running", true);
+            getLocalDGM().put("start", ValueFactory.createNilValue());
+            getLocalDGM().put("startTime", System.currentTimeMillis());
+            getLocalDGM().put("running", true);
 
             return;
         }
-        //ConfigWaiter cs3 = new ConfigWaiter(count);
-        //cs3.done.setKey("local", "done");
 
         cgm.setup(new ConfigWaiter());
         getLocalDGM().put("nodeNum", nodeNum);
-        getLocalDGM().put("done", false);
     }
 
 }
--- a/src/main/java/christie/topology/manager/IncomingHosts.java	Thu Aug 02 11:41:29 2018 +0900
+++ b/src/main/java/christie/topology/manager/IncomingHosts.java	Thu Aug 02 11:44:47 2018 +0900
@@ -13,18 +13,22 @@
 
 public class IncomingHosts extends CodeGear {
 
-    @Peek // Topology from parse file
-    HashMap<String, LinkedList<NodeInfo>> topology;
+    @Take // Topology from parse file
+    HashMap<String, LinkedList<NodeInfo>> resultParse;
 
-    @Peek // nodeName list
+    @Take // nodeName list
     LinkedList<String> nodeNames;
 
     @Take // new coming host info
-    HostMessage host;
+    HostMessage newHost;
+
+    @Take
+    HashMap<String, String> absCookieTable;
+
+    @Take
+    String MD5;
 
 
-    //private Receiver absCookieTable = ids.create(CommandType.TAKE); // cookie, AbsName HashMap
-    //private Receiver cookie = ids.create(CommandType.TAKE);    // MD5
     private Logger log = Logger.getLogger(IncomingHosts.class);
 
     public IncomingHosts() {
@@ -36,48 +40,44 @@
 
         // not have or match cookie
         String nodeName = nodeNames.poll();
+
         // Manager connect to Node
-
-        cgm.createRemoteDGM(nodeName, host.name, host.port);
+        cgm.createRemoteDGM(nodeName, newHost.name, newHost.port);
         getDGM(nodeName).put( "host", nodeName);
 
 
-        /* cookie
-        String cookie = this.cookie.asString();
-        absCookieTable.put(cookie, nodeName);
-        ods.put(this.absCookieTable.key, absCookieTable);
+        absCookieTable.put(MD5, nodeName);
+        getLocalDGM().put("absCookieTable", absCookieTable);
 
-        ods.put(nodeName, "cookie", cookie);
-        */
+        getDGM(nodeName).put("cookie", MD5);
         log.info( "toplology manager connected from " + nodeName);
 
-        LinkedList<NodeInfo> nodes = topology.get(nodeName);
-        for (NodeInfo nodeInfo : nodes) {
-            HostMessage newHost = new HostMessage(host.name, host.port,
+        LinkedList<NodeInfo> nodeInfoList = resultParse.get(nodeName);
+        for (NodeInfo nodeInfo : nodeInfoList) {
+            HostMessage hostMessage = new HostMessage(newHost.name, newHost.port,
                     nodeInfo.connectionName, nodeInfo.reverseName);
-            newHost.absName = nodeName;
-            newHost.remoteAbsName = nodeInfo.sourceNodeName;
+            hostMessage.absName = nodeName;
+            hostMessage.remoteAbsName = nodeInfo.sourceNodeName;
 
-            getLocalDGM().put("nodeInfo", newHost);
-            getLocalDGM().put(nodeInfo.sourceNodeName, newHost);
-            log.info(" write to " + nodeInfo.sourceNodeName + " config message =" + newHost.toString() + " remain "
+            getLocalDGM().put("nodeInfo", hostMessage);
+            getLocalDGM().put(nodeInfo.sourceNodeName, hostMessage);
+            log.info(" write to " + nodeInfo.sourceNodeName + " config message =" + hostMessage.toString() + " remain "
                     + Integer.toString((nodeNames.size())));
-            new RecordTopology();
+            cgm.setup(new RecordTopology());
         }
 
         log.info(" remaining configure host = " + Integer.toString(nodeNames.size()));
         if (nodeNames.isEmpty()) {
             // configuration finish
-            for (String key : topology.keySet()) {
+            for (String key : resultParse.keySet()) {
                 log.info(" write to " + key + " end message =" + (new HostMessage("",0,"","")).toString());
                 getLocalDGM().put(key, new HostMessage("",0,"","")); // end mark
             }
         }
 
-        // idsのときはkeyメソッドが使えたけど, 今はlistなのでエラーが出る.
-        // これが何をする処理か読めていないので, 今はコメントアウト.
-        //getLocalDGM().put(this.nodeNames.key, nodeNames);
-        //getLocalDGM().put(this.topology.key, topology);
+
+        getLocalDGM().put("nodeNames", nodeNames);
+        getLocalDGM().put("resultParse", resultParse);
 
         cgm.setup(new IncomingHosts());
     }