changeset 170:f9f83bb213e8

fix topology manager
author akahori
date Tue, 22 Jan 2019 18:32:39 +0900
parents 1e696b2d3c6d
children 7e97f59a13fa
files src/main/java/christie/topology/manager/IncomingHosts.java src/main/java/christie/topology/node/ConfigurationFinish.java src/main/java/christie/topology/node/CreateConnectionList.java src/main/java/christie/topology/node/IncomingConnectionInfo.java
diffstat 4 files changed, 42 insertions(+), 40 deletions(-) [+]
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
             }
         }
--- a/src/main/java/christie/topology/node/ConfigurationFinish.java	Tue Jan 22 18:32:13 2019 +0900
+++ b/src/main/java/christie/topology/node/ConfigurationFinish.java	Tue Jan 22 18:32:39 2019 +0900
@@ -4,6 +4,7 @@
 import christie.annotation.Take;
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
+import christie.topology.TopologyDataGear;
 
 public class ConfigurationFinish extends CodeGear {
 
@@ -19,6 +20,7 @@
     @Peek
     TopologyNodeConfig topologyNodeConfig;
 
+
     public ConfigurationFinish() {
     }
 
@@ -36,8 +38,8 @@
 
             /*ClosedEventManager closedEventManager = new ClosedEventManager();
             closedEventManager.register(cgm, DeleteConnection.class);
-            cgm.setup(closedEventManager);
-            return;*/
+            cgm.setup(closedEventManager);*/
+            return;
 
         }else {
             getLocalDGM().put("reverseCount", reverseCount);
--- a/src/main/java/christie/topology/node/CreateConnectionList.java	Tue Jan 22 18:32:13 2019 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-package christie.topology.node;
-
-import christie.annotation.Peek;
-import christie.annotation.Take;
-import christie.codegear.CodeGear;
-import christie.codegear.CodeGearManager;
-import christie.topology.TopologyDataGear;
-
-import java.util.List;
-
-public class CreateConnectionList extends CodeGear {
-    @Take
-    TopologyDataGear topoDG;
-    @Take
-    String cMember;
-
-    public CreateConnectionList() { }
-
-    @Override
-    protected void run(CodeGearManager cgm) {
-
-        topoDG.addConnection(cMember);
-        getLocalDGM().put("topoDG", topoDG);
-    }
-
-}
--- a/src/main/java/christie/topology/node/IncomingConnectionInfo.java	Tue Jan 22 18:32:13 2019 +0900
+++ b/src/main/java/christie/topology/node/IncomingConnectionInfo.java	Tue Jan 22 18:32:39 2019 +0900
@@ -14,11 +14,11 @@
     @Take
     HostMessage remoteNodeInfo;
 
+    int count;
+
     @Take
     TopologyDataGear topoDG;
 
-    int count;
-
     public IncomingConnectionInfo() {
         this.count = 0;
     }
@@ -32,22 +32,19 @@
     protected void run(CodeGearManager cgm) {
         String connectionName = remoteNodeInfo.getConnectionName();
 
-
         if (remoteNodeInfo.getHostName().equals("")) { // end case
-            put("connectNodeNum", count);
             getLocalDGM().put("topoDG", topoDG);
             return;
-        }else{
+        }
 
         cgm.createRemoteDGM(connectionName,
                     remoteNodeInfo.getHostName(),
                     remoteNodeInfo.getPort());
 
-        getDGM(connectionName).put("reverseNodeName", topoDG.getNodeName());
         topoDG.addConnection(connectionName);
         getLocalDGM().put("topoDG", topoDG);
+        getDGM(connectionName).put("reverseNodeName",connectionName);
         count++;
-        }
 
         cgm.setup(new IncomingConnectionInfo(count));
     }