changeset 74:e2ce8038815a

fix FileParser
author akahori
date Wed, 05 Sep 2018 09:43:22 +0900
parents f1f34c3e33d4
children 47fbd0394499
files src/main/java/christie/topology/manager/ConfigWaiter.java src/main/java/christie/topology/manager/FileParser.java src/main/java/christie/topology/manager/TopologyManager.java src/main/java/christie/topology/manager/TopologyManagerConfig.java
diffstat 4 files changed, 18 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/christie/topology/manager/ConfigWaiter.java	Wed Sep 05 09:04:06 2018 +0900
+++ b/src/main/java/christie/topology/manager/ConfigWaiter.java	Wed Sep 05 09:43:22 2018 +0900
@@ -6,14 +6,13 @@
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
 
-import java.util.HashMap;
+
 import java.util.LinkedList;
 
 public class ConfigWaiter extends CodeGear {
 
     @Peek
-    HashMap<String, LinkedList<NodeInfo>> resultParse;
-
+    LinkedList<String> waiterNodeNames;
     @Take
     String nodePrepareDone;
 
@@ -26,7 +25,7 @@
     protected void run(CodeGearManager cgm) {
         nodeNum--;
         if (nodeNum == 0) {
-            for (String nodeName: resultParse.keySet()) getDGM(nodeName).put("start", "start");
+            for (String nodeName: waiterNodeNames) getDGM(nodeName).put("start", "start");
             getLocalDGM().put("startTime", System.currentTimeMillis());
             getLocalDGM().put("running", true);
 
--- a/src/main/java/christie/topology/manager/FileParser.java	Wed Sep 05 09:04:06 2018 +0900
+++ b/src/main/java/christie/topology/manager/FileParser.java	Wed Sep 05 09:43:22 2018 +0900
@@ -81,6 +81,8 @@
         getLocalDGM().put("resultParse", resultParse);
         getLocalDGM().put("nodeNum", nodeNum);
         getLocalDGM().put("nodeNames", nodeNames);
+        getLocalDGM().put("waiterNodeNames", nodeNames.clone());
+
 
 
     }
--- a/src/main/java/christie/topology/manager/TopologyManager.java	Wed Sep 05 09:04:06 2018 +0900
+++ b/src/main/java/christie/topology/manager/TopologyManager.java	Wed Sep 05 09:43:22 2018 +0900
@@ -4,10 +4,6 @@
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
 
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
 
@@ -15,6 +11,9 @@
 
 public class TopologyManager extends CodeGear {
 
+    @Peek
+    TopologyManagerConfig topologyManagerConfig;
+
     public TopologyManager() {
     }
 
@@ -23,14 +22,16 @@
         cgm.setup(new CheckComingHost());
         getLocalDGM().put("absCookieTable", new HashMap<String, String>());
 
-        cgm.setup(new FileParser());
-        cgm.setup(new IncomingHosts());
-        cgm.setup(new ConfigWaiter());
+        if(!topologyManagerConfig.dynamic) {
+            cgm.setup(new FileParser());
+            cgm.setup(new IncomingHosts());
+            cgm.setup(new ConfigWaiter());
+            getLocalDGM().put("running", false);
+        }
+
         cgm.setup(new CreateHash());
         cgm.setup(new TopologyFinish());
 
-        getLocalDGM().put("running", false);
-        getLocalDGM().put("hostInfoMap", new HashMap<String, HostMessage>());
         getLocalDGM().put("topology", new HashMap<String, HashMap<String, HostMessage>>());
         getLocalDGM().put("createdList", new LinkedList<String>());
 
--- a/src/main/java/christie/topology/manager/TopologyManagerConfig.java	Wed Sep 05 09:04:06 2018 +0900
+++ b/src/main/java/christie/topology/manager/TopologyManagerConfig.java	Wed Sep 05 09:43:22 2018 +0900
@@ -5,6 +5,7 @@
 public class TopologyManagerConfig extends Config {
     public boolean showTime = false;
     public String confFilePath;
+    public boolean dynamic = false;
     public TopologyType type = TopologyType.Tree;
     public int hasChild = 2;
 
@@ -24,5 +25,7 @@
                 showTime = true;
             }
         }
+
+        if (confFilePath == null) dynamic = true;
     }
 }