From d1895bab02eda8239380e906b72112f9c4c58c2e Mon Sep 17 00:00:00 2001 From: benbierens Date: Wed, 13 Sep 2023 12:09:44 +0200 Subject: [PATCH] Implements bringOffline for codex nodes --- CodexPlugin/CodexNodeGroup.cs | 10 +++--- CodexPlugin/CodexStarter.cs | 52 +++++++++++++++--------------- Tests/BasicTests/OneClientTests.cs | 4 +-- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/CodexPlugin/CodexNodeGroup.cs b/CodexPlugin/CodexNodeGroup.cs index e3522dd..62158d7 100644 --- a/CodexPlugin/CodexNodeGroup.cs +++ b/CodexPlugin/CodexNodeGroup.cs @@ -13,8 +13,11 @@ namespace CodexPlugin public class CodexNodeGroup : ICodexNodeGroup { - public CodexNodeGroup(IPluginTools tools, RunningContainers[] containers, ICodexNodeFactory codexNodeFactory) + private readonly CodexStarter starter; + + public CodexNodeGroup(CodexStarter starter, IPluginTools tools, RunningContainers[] containers, ICodexNodeFactory codexNodeFactory) { + this.starter = starter; Containers = containers; Nodes = containers.Containers().Select(c => CreateOnlineCodexNode(c, tools, codexNodeFactory)).ToArray(); Version = new CodexDebugVersionResponse(); @@ -30,11 +33,8 @@ namespace CodexPlugin public void BringOffline() { - //lifecycle.CodexStarter.BringOffline(this); - - //var result = Setup; + starter.BringOffline(this); // Clear everything. Prevent accidental use. - //Setup = null!; Nodes = Array.Empty(); Containers = null!; } diff --git a/CodexPlugin/CodexStarter.cs b/CodexPlugin/CodexStarter.cs index 4b6be37..fc12369 100644 --- a/CodexPlugin/CodexStarter.cs +++ b/CodexPlugin/CodexStarter.cs @@ -54,27 +54,27 @@ namespace CodexPlugin public void BringOffline(CodexNodeGroup group) { - //LogStart($"Stopping {group.Describe()}..."); - //var workflow = CreateWorkflow(); - //foreach (var c in group.Containers) - //{ - // StopCrashWatcher(c); - // workflow.Stop(c); - //} - //LogEnd("Stopped."); + Log($"Stopping {group.Describe()}..."); + var workflow = pluginTools.CreateWorkflow(); + foreach (var c in group.Containers) + { + StopCrashWatcher(c); + workflow.Stop(c); + } + Log("Stopped."); } - public void DeleteAllResources() - { - //var workflow = CreateWorkflow(); - //workflow.DeleteTestResources(); - } + //public void DeleteAllResources() + //{ + // //var workflow = CreateWorkflow(); + // //workflow.DeleteTestResources(); + //} - public void DownloadLog(RunningContainer container, ILogHandler logHandler, int? tailLines) - { - //var workflow = CreateWorkflow(); - //workflow.DownloadContainerLog(container, logHandler, tailLines); - } + //public void DownloadLog(RunningContainer container, ILogHandler logHandler, int? tailLines) + //{ + // //var workflow = CreateWorkflow(); + // //workflow.DownloadContainerLog(container, logHandler, tailLines); + //} //private IMetricsAccessFactory CollectMetrics(CodexSetup codexSetup, RunningContainers[] containers) //{ @@ -114,7 +114,7 @@ namespace CodexPlugin private CodexNodeGroup CreateCodexGroup(RunningContainers[] runningContainers, CodexNodeFactory codexNodeFactory) { - var group = new CodexNodeGroup(pluginTools, runningContainers, codexNodeFactory); + var group = new CodexNodeGroup(this, pluginTools, runningContainers, codexNodeFactory); try { @@ -151,12 +151,12 @@ namespace CodexPlugin pluginTools.GetLog().Log(message); } - //private void StopCrashWatcher(RunningContainers containers) - //{ - // foreach (var c in containers.Containers) - // { - // c.CrashWatcher?.Stop(); - // } - //} + private void StopCrashWatcher(RunningContainers containers) + { + foreach (var c in containers.Containers) + { + c.CrashWatcher?.Stop(); + } + } } } diff --git a/Tests/BasicTests/OneClientTests.cs b/Tests/BasicTests/OneClientTests.cs index dd74924..728d718 100644 --- a/Tests/BasicTests/OneClientTests.cs +++ b/Tests/BasicTests/OneClientTests.cs @@ -21,9 +21,9 @@ namespace Tests.BasicTests { var primary = Ci.SetupCodexNode(); - //var setup = primary.BringOffline(); + primary.BringOffline(); - //primary = BringOnline(setup)[0]; + primary = Ci.SetupCodexNode(); PerformOneClientTest(primary); }