changeset 68:976d43003487

fix TopologyManager
author KaitoMaeshiro <aosskaito@cr.ie.u-ryukyu.ac.jp>
date Sun, 30 Jan 2022 18:02:09 +0900
parents 806965e04299
children 959096e8786b
files Test/Topology/TreeTestTopology/ChildCodeGear.cs Test/Topology/TreeTestTopology/StartTreeTestTopology.cs datagear/LocalDataGearManager.cs datagear/RemoteDataGearManager.cs topology/HostMessage.cs topology/manager/CreateHash.cs topology/manager/CreateTreeTopology.cs topology/manager/StartTopologyManager.cs topology/manager/TopologyManager.cs topology/node/TopologyNode.cs
diffstat 10 files changed, 42 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/Test/Topology/TreeTestTopology/ChildCodeGear.cs	Sun Jan 30 16:06:33 2022 +0900
+++ b/Test/Topology/TreeTestTopology/ChildCodeGear.cs	Sun Jan 30 18:02:09 2022 +0900
@@ -13,7 +13,7 @@
 
         public override void Run(CodeGearManager cgm)
         {
-            Console.WriteLine("a");
+            Console.WriteLine(topoDG.getNodeName() + " : " + " child accept");
             List<String> _CLIST = topoDG.getConnectionList();
             if(_CLIST.Contains("parent")) {
                 GetDgm("parent").Put("childNodeName", topoDG.getNodeName());
--- a/Test/Topology/TreeTestTopology/StartTreeTestTopology.cs	Sun Jan 30 16:06:33 2022 +0900
+++ b/Test/Topology/TreeTestTopology/StartTreeTestTopology.cs	Sun Jan 30 18:02:09 2022 +0900
@@ -1,5 +1,6 @@
 using System;
 using System.Net;
+using System.Threading;
 using Christie_net.codegear;
 using Christie_net.topology.manager;
 using Christie_net.topology.node;
@@ -39,7 +40,10 @@
                     "--localPort", (topologyNodePort + i).ToString()};
                 TopologyNodeConfig cs = new TopologyNodeConfig(nodeArg);
                 new StartTopologyNode(cs, new ChildCodeGear()).Put("maxNodeNum", topologyManagerConfig.hasChild);
+                
             }
+            Thread.Sleep(10000);
+            Console.WriteLine("TopologyManager done");
         }
     }
 }
\ No newline at end of file
--- a/datagear/LocalDataGearManager.cs	Sun Jan 30 16:06:33 2022 +0900
+++ b/datagear/LocalDataGearManager.cs	Sun Jan 30 18:02:09 2022 +0900
@@ -58,6 +58,7 @@
     public override void ResolveWaitCommand(string key, DataGear<object> dg) { }
 
     public override void Finish() {
+        Console.WriteLine("ldgm fin");
         Environment.Exit(0);
     }
 
--- a/datagear/RemoteDataGearManager.cs	Sun Jan 30 16:06:33 2022 +0900
+++ b/datagear/RemoteDataGearManager.cs	Sun Jan 30 18:02:09 2022 +0900
@@ -25,14 +25,24 @@
             do {
                 try {
                     IPHostEntry host = Dns.GetHostEntry(address);
-                    IPAddress ipAddress = host.AddressList[0];
-                    IPEndPoint remoteEndPoint = new IPEndPoint(ipAddress, port);
-                    Socket socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
-                    socket.Connect(remoteEndPoint);
-                    socket.NoDelay = true;
+                    Socket socket ;
+                    foreach (IPAddress ipAddress in host.AddressList) {
+                        IPEndPoint remoteEndPoint = new IPEndPoint(ipAddress, port);
+                        Console.WriteLine(ipAddress + " " +address + " " + port);
+                        try
+                        {
+                            socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
 
-                    connection = new Connection(socket, cgm);
-                    connection.name = dgmname;
+                            socket.Connect(remoteEndPoint);
+                            socket.NoDelay = true;
+                            
+                            connection = new Connection(socket, cgm);
+                            connection.name = dgmname;
+                            break;
+                        }catch{
+                            
+                        }
+                    }
 
                     lock (syncObj) {
                         connect = true;
--- a/topology/HostMessage.cs	Sun Jan 30 16:06:33 2022 +0900
+++ b/topology/HostMessage.cs	Sun Jan 30 18:02:09 2022 +0900
@@ -1,17 +1,24 @@
 using System;
 using System.Net;
 using Christie_net.datagear.dg;
+using MessagePack;
 
 namespace Christie_net.topology{
+    [MessagePackObject]
     public class HostMessage /*: Cloneable*/ { 
+        [Key("hostName")]
         private String hostName = "";
+        [Key("port")]
     private int port ;
+    [Key("nodeName")]
     private String nodeName; // this is nodeName which have these IP and port.
+    [Key("connectionName")]
     private String connectionName;
+    [Key("remoteNodeName")]
     private String remoteNodeName;
-
+    [Key("cookie")]
     private String cookie; // MD5
-
+    [Key("alive")]
     private Boolean alive;
 
     public HostMessage() {}
--- a/topology/manager/CreateHash.cs	Sun Jan 30 16:06:33 2022 +0900
+++ b/topology/manager/CreateHash.cs	Sun Jan 30 18:02:09 2022 +0900
@@ -55,6 +55,8 @@
 
             }
             */
+            
+            GetLocalDgm().Put("MD5", "MD5");
 
             cgm.Setup(new CreateHash());
         }
--- a/topology/manager/CreateTreeTopology.cs	Sun Jan 30 16:06:33 2022 +0900
+++ b/topology/manager/CreateTreeTopology.cs	Sun Jan 30 18:02:09 2022 +0900
@@ -10,7 +10,7 @@
         [Take] public HostMessage newHost;
         [Take] public int hostCount;
         [Take] public Dictionary<String, HostMessage> nameTable;
-        [Take] public String MD5;
+        //[Take] public String MD5;
         [Take] public Dictionary<String, String> absCookieTable;
         [Take] public ParentManager parentManager;
 
@@ -26,11 +26,13 @@
 
         cgm.CreateRemoteDGM(nodeName, newHostName, newHostPort);
 
+        
+        Console.WriteLine("put topoDG on createTreeTopology");
         TopologyDataGear topoDG = new TopologyDataGear();
         topoDG.setNodeName(nodeName);
 
         GetDgm(nodeName).Put("topoDG", topoDG);
-        GetDgm(nodeName).Put("cookie", MD5);
+        //GetDgm(nodeName).Put("cookie", MD5);
 
         //absCookieTable.put(MD5, nodeName);
         //GetLocalDgm().Put("absCookieTable", absCookieTable);
--- a/topology/manager/StartTopologyManager.cs	Sun Jan 30 16:06:33 2022 +0900
+++ b/topology/manager/StartTopologyManager.cs	Sun Jan 30 18:02:09 2022 +0900
@@ -1,3 +1,4 @@
+using System;
 using Christie_net.codegear;
 using Christie_net.topology.node;
 
--- a/topology/manager/TopologyManager.cs	Sun Jan 30 16:06:33 2022 +0900
+++ b/topology/manager/TopologyManager.cs	Sun Jan 30 18:02:09 2022 +0900
@@ -39,7 +39,6 @@
 
                 GetLocalDgm().Put("topology", new Dictionary<String, LinkedList<HostMessage>>());
                 GetLocalDgm().Put("createdList", new LinkedList<String>());
-
             }
         }
     }
--- a/topology/node/TopologyNode.cs	Sun Jan 30 16:06:33 2022 +0900
+++ b/topology/node/TopologyNode.cs	Sun Jan 30 18:02:09 2022 +0900
@@ -13,7 +13,9 @@
 
         public override void Run(CodeGearManager cgm) {
 
-            cgm.CreateRemoteDGM(topologyNodeConfig.getManagerKey(), topologyNodeConfig.getManagerHostName(), topologyNodeConfig.getManagerPort());
+            cgm.CreateRemoteDGM(topologyNodeConfig.getManagerKey(),
+                topologyNodeConfig.getManagerHostName(),
+                topologyNodeConfig.getManagerPort());
 
             HostMessage hostMessage = new HostMessage();
             hostMessage.setLocalHostAndPort(cgm.localPort);