changeset 168:c7300be0fff6

fix incomingHosts end message
author akahori
date Tue, 22 Jan 2019 16:00:29 +0900
parents 240058b2ce3e
children 1e696b2d3c6d
files src/main/java/christie/topology/manager/ConfigWaiter.java src/main/java/christie/topology/manager/CreateTreeTopology.java src/main/java/christie/topology/manager/IncomingHosts.java src/main/java/christie/topology/manager/StartTopologyManager.java src/main/java/christie/topology/node/IncomingConnectionInfo.java
diffstat 5 files changed, 29 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/christie/topology/manager/ConfigWaiter.java	Tue Jan 22 15:31:03 2019 +0900
+++ b/src/main/java/christie/topology/manager/ConfigWaiter.java	Tue Jan 22 16:00:29 2019 +0900
@@ -13,6 +13,7 @@
 
     @Peek
     LinkedList<String> waiterNodeNames;
+
     @Take
     String nodePrepareDone;
 
--- a/src/main/java/christie/topology/manager/CreateTreeTopology.java	Tue Jan 22 15:31:03 2019 +0900
+++ b/src/main/java/christie/topology/manager/CreateTreeTopology.java	Tue Jan 22 16:00:29 2019 +0900
@@ -59,13 +59,8 @@
 
         if (hostCount == 0) {
             // どこにも繋がれるところがないので, ルートのとき.
-            // ルートなので, connectNodeNumもreverseCountも0でいい.
-            getDGM(nodeName).put("connectNodeNum", 0);
-            getDGM(nodeName).put("reverseCount", 0);
 
         } else {
-            // 親のみにつながればいいので1
-            getDGM(nodeName).put("connectNodeNum", 1);
             // put parent information own
             String parentNodeName = parentManager.getMyParent();
             HostMessage parentHost = nameTable.get(parentNodeName).clone();
@@ -88,6 +83,8 @@
         getLocalDGM().put("nameTable", nameTable);
         getLocalDGM().put("parentManager", parentManager);
 
+        getDGM(nodeName).put("remoteNodeInfo", new HostMessage() );
+        getDGM(nodeName).put("reverseNodeName", "");
         getDGM(nodeName).put("start", "start");
         getLocalDGM().put("startTime", System.currentTimeMillis());
 
--- a/src/main/java/christie/topology/manager/IncomingHosts.java	Tue Jan 22 15:31:03 2019 +0900
+++ b/src/main/java/christie/topology/manager/IncomingHosts.java	Tue Jan 22 16:00:29 2019 +0900
@@ -51,8 +51,6 @@
         getDGM(nodeName).put("cookie", MD5);
 
         LinkedList<HostMessage> nodeInfoList = resultParse.get(nodeName);
-        getDGM(nodeName).put("connectNodeNum", nodeInfoList.size());
-        if(nodeInfoList.size() == 0) getDGM(nodeName).put("reverseNodeName", "node");
         for (HostMessage nodeInfo : nodeInfoList) {
 
             nodeInfo.setHostAndPort(newHost);
@@ -62,13 +60,12 @@
             cgm.setup(new RecordTopology());
         }
 
-        /*if (nodeNames.isEmpty()) {
+        if (nodeNames.isEmpty()) {
             // configuration finish
-
             for (String key : resultParse.keySet()) {
                 put(key, "remoteNodeInfo", new HostMessage()); // end mark
             }
-        }*/
+        }
         getLocalDGM().put("resultParse", resultParse);
 
         cgm.setup(new IncomingHosts());
--- a/src/main/java/christie/topology/manager/StartTopologyManager.java	Tue Jan 22 15:31:03 2019 +0900
+++ b/src/main/java/christie/topology/manager/StartTopologyManager.java	Tue Jan 22 16:00:29 2019 +0900
@@ -37,7 +37,6 @@
     }
 
 
-
     public static void main(String[] args) {
         TopologyManagerConfig topologyManagerConfig = new TopologyManagerConfig(args);
         new StartTopologyManager(topologyManagerConfig);
--- a/src/main/java/christie/topology/node/IncomingConnectionInfo.java	Tue Jan 22 15:31:03 2019 +0900
+++ b/src/main/java/christie/topology/node/IncomingConnectionInfo.java	Tue Jan 22 16:00:29 2019 +0900
@@ -6,6 +6,7 @@
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
 import christie.topology.HostMessage;
+import christie.topology.TopologyDataGear;
 
 
 public class IncomingConnectionInfo extends CodeGear {
@@ -13,26 +14,42 @@
     @Take
     HostMessage remoteNodeInfo;
 
+    @Take
+    TopologyDataGear topoDG;
+
     int count;
 
     public IncomingConnectionInfo() {
         this.count = 0;
     }
 
+    public IncomingConnectionInfo(int count) {
+        this.count = count;
+    }
+
 
     @Override
     protected void run(CodeGearManager cgm) {
         String connectionName = remoteNodeInfo.getConnectionName();
 
-        cgm.createRemoteDGM(connectionName,
-                remoteNodeInfo.getHostName(),
-                remoteNodeInfo.getPort());
+
+        if (remoteNodeInfo.getHostName().equals("")) { // end case
+            put("connectNodeNum", count);
+            getLocalDGM().put("topoDG", topoDG);
+            return;
+        }else{
 
-        getDGM(connectionName).put("reverseNodeName", "node");
-        getLocalDGM().put("cMember", connectionName);
-        cgm.setup(new CreateConnectionList());
+        cgm.createRemoteDGM(connectionName,
+                    remoteNodeInfo.getHostName(),
+                    remoteNodeInfo.getPort());
 
-        cgm.setup(new IncomingConnectionInfo());
+        getDGM(connectionName).put("reverseNodeName", topoDG.getNodeName());
+        topoDG.addConnection(connectionName);
+        getLocalDGM().put("topoDG", topoDG);
+        count++;
+        }
+
+        cgm.setup(new IncomingConnectionInfo(count));
     }
 
 }