diff --git a/ProjectPlugins/CodexPlugin/CodexNode.cs b/ProjectPlugins/CodexPlugin/CodexNode.cs index afb78f34..94404404 100644 --- a/ProjectPlugins/CodexPlugin/CodexNode.cs +++ b/ProjectPlugins/CodexPlugin/CodexNode.cs @@ -34,17 +34,18 @@ namespace CodexPlugin void ConnectToPeer(ICodexNode node); DebugInfoVersion Version { get; } IMarketplaceAccess Marketplace { get; } - CrashWatcher CrashWatcher { get; } - PodInfo GetPodInfo(); ITransferSpeeds TransferSpeeds { get; } EthAccount EthAccount { get; } + Address GetDiscoveryEndpoint(); + /// /// Warning! The node is not usable after this. /// TODO: Replace with delete-blocks debug call once available in Codex. /// void DeleteRepoFolder(); void Stop(bool waitTillStopped); + bool HasCrashed(); } public class CodexNode : ICodexNode @@ -256,11 +257,6 @@ namespace CodexPlugin Log($"Successfully connected to peer {peer.GetName()}."); } - public PodInfo GetPodInfo() - { - return CodexAccess.GetPodInfo(); - } - public void DeleteRepoFolder() { CodexAccess.DeleteRepoFolder(); @@ -294,6 +290,20 @@ namespace CodexPlugin Version = debugInfo.Version; } + public Address GetDiscoveryEndpoint() + { + var info = CodexAccess.GetPodInfo(); + return new Address( + host: info.Ip, + port: Container.Recipe.GetPortByTag(CodexContainerRecipe.DiscoveryPortTag)!.Number + ); + } + + public bool HasCrashed() + { + return CrashWatcher.HasContainerCrashed(); + } + public override string ToString() { return $"CodexNode:{GetName()}"; diff --git a/ProjectPlugins/CodexPlugin/CodexStarter.cs b/ProjectPlugins/CodexPlugin/CodexStarter.cs index 4c433725..1aebc72e 100644 --- a/ProjectPlugins/CodexPlugin/CodexStarter.cs +++ b/ProjectPlugins/CodexPlugin/CodexStarter.cs @@ -61,11 +61,9 @@ namespace CodexPlugin public void BringOffline(CodexNodeGroup group, bool waitTillStopped) { Log($"Stopping {group.Describe()}..."); - StopCrashWatcher(group); - var workflow = pluginTools.CreateWorkflow(); - foreach (var c in group.Containers) + foreach (var node in group) { - workflow.Stop(c, waitTillStopped); + node.Stop(waitTillStopped); } Log("Stopped."); } @@ -157,13 +155,5 @@ namespace CodexPlugin { pluginTools.GetLog().Log(message); } - - private void StopCrashWatcher(CodexNodeGroup group) - { - foreach (var node in group) - { - node.CrashWatcher.Stop(); - } - } } } diff --git a/Tests/CodexContinuousTests/SingleTestRun.cs b/Tests/CodexContinuousTests/SingleTestRun.cs index e9afb313..8b77b775 100644 --- a/Tests/CodexContinuousTests/SingleTestRun.cs +++ b/Tests/CodexContinuousTests/SingleTestRun.cs @@ -204,7 +204,6 @@ namespace ContinuousTests result.Add("testname", testName); result.Add("message", message); result.Add("involvedpods", string.Join(",", nodes.Select(n => n.GetName()))); - result.Add("involvedpodnames", string.Join(",", nodes.Select(n => n.GetPodInfo().Name))); var error = message.Split(Environment.NewLine).First(); if (error.Contains(":")) error = error.Substring(1 + error.LastIndexOf(":")); diff --git a/Tests/ExperimentalTests/Helpers/PeerConnectionTestHelpers.cs b/Tests/ExperimentalTests/Helpers/PeerConnectionTestHelpers.cs index f0261a7f..692162b8 100644 --- a/Tests/ExperimentalTests/Helpers/PeerConnectionTestHelpers.cs +++ b/Tests/ExperimentalTests/Helpers/PeerConnectionTestHelpers.cs @@ -57,12 +57,7 @@ namespace CodexTests.Helpers { var peer = allEntries.SingleOrDefault(e => e.Response.Table.LocalNode.PeerId == node.PeerId); if (peer == null) return $"peerId: {node.PeerId} is not known."; - - var container = peer.Node.Container; - var podInfo = peer.Node.GetPodInfo(); - var ip = podInfo.Ip; - var discPort = container.Recipe.GetPortByTag(CodexContainerRecipe.DiscoveryPortTag)!; - return $"{ip}:{discPort.Number}"; + return peer.Node.GetDiscoveryEndpoint().ToString(); } } } diff --git a/Tools/CodexNetDeployer/Deployer.cs b/Tools/CodexNetDeployer/Deployer.cs index 1b8a4fe3..8ecc2434 100644 --- a/Tools/CodexNetDeployer/Deployer.cs +++ b/Tools/CodexNetDeployer/Deployer.cs @@ -205,10 +205,8 @@ namespace CodexNetDeployer Log("Starting container crash check..."); foreach (var startResult in startResults) { - var watcher = startResult.CodexNode.CrashWatcher; - if (watcher == null) - throw new Exception("Expected each CodexNode container to be created with a crash-watcher."); - if (watcher.HasContainerCrashed()) crashes.Add(startResult.CodexNode.Container); + var hasCrashed = startResult.CodexNode.HasCrashed(); + if (hasCrashed) crashes.Add(startResult.CodexNode.Container); } if (!crashes.Any())