From 7edf66440fa7f580bc04639bd15c437e4ee7144f Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Sun, 11 Aug 2024 07:20:27 -0400 Subject: [PATCH] Remove CPU tracking. It's a nothing stat on multi-core systems --- .../Models/Response/DreamDaemonResponse.cs | 6 -- .../Components/DreamDaemonClient.cs | 6 +- .../Components/IDreamDaemonClient.cs | 3 +- .../Components/Session/SessionController.cs | 4 -- .../Components/Watchdog/IWatchdog.cs | 13 ++--- .../Components/Watchdog/WatchdogBase.cs | 14 +---- .../Controllers/DreamDaemonController.cs | 26 ++------- .../System/IProcessBase.cs | 11 +--- src/Tgstation.Server.Host/System/Process.cs | 27 --------- .../System/ProcessExecutor.cs | 11 ---- .../System/TestPosixSignalHandler.cs | 1 - .../Live/Instance/DeploymentTest.cs | 2 +- .../Live/Instance/WatchdogTest.cs | 57 +++++++++---------- .../Live/TestLiveServer.cs | 13 ++--- .../TestSystemInteraction.cs | 2 - tests/Tgstation.Server.Tests/TestVersions.cs | 1 - 16 files changed, 50 insertions(+), 147 deletions(-) diff --git a/src/Tgstation.Server.Api/Models/Response/DreamDaemonResponse.cs b/src/Tgstation.Server.Api/Models/Response/DreamDaemonResponse.cs index 8f54e19c62..d0b86cdaa4 100644 --- a/src/Tgstation.Server.Api/Models/Response/DreamDaemonResponse.cs +++ b/src/Tgstation.Server.Api/Models/Response/DreamDaemonResponse.cs @@ -65,11 +65,5 @@ namespace Tgstation.Server.Api.Models.Response /// [ResponseOptions] public long? ImmediateMemoryUsage { get; set; } - - /// - /// The CPU usage of the game server on a scale from 0-1. - /// - [ResponseOptions] - public double? ImmediateCpuUsage { get; set; } } } diff --git a/src/Tgstation.Server.Client/Components/DreamDaemonClient.cs b/src/Tgstation.Server.Client/Components/DreamDaemonClient.cs index 3d5e8a6786..1ea2dccb3b 100644 --- a/src/Tgstation.Server.Client/Components/DreamDaemonClient.cs +++ b/src/Tgstation.Server.Client/Components/DreamDaemonClient.cs @@ -43,10 +43,8 @@ namespace Tgstation.Server.Client.Components public ValueTask Restart(CancellationToken cancellationToken) => apiClient.Patch(Routes.DreamDaemon, instance.Id!.Value, cancellationToken); /// - public ValueTask Read(ulong? profileMs, CancellationToken cancellationToken) => apiClient.Read( - profileMs.HasValue - ? $"{Routes.DreamDaemon}?profileMs={profileMs.Value}" - : Routes.DreamDaemon, + public ValueTask Read(CancellationToken cancellationToken) => apiClient.Read( + Routes.DreamDaemon, instance.Id!.Value, cancellationToken); diff --git a/src/Tgstation.Server.Client/Components/IDreamDaemonClient.cs b/src/Tgstation.Server.Client/Components/IDreamDaemonClient.cs index 50c416b97c..823c8d6a0c 100644 --- a/src/Tgstation.Server.Client/Components/IDreamDaemonClient.cs +++ b/src/Tgstation.Server.Client/Components/IDreamDaemonClient.cs @@ -14,10 +14,9 @@ namespace Tgstation.Server.Client.Components /// /// Get the represented by the . /// - /// The amount of time to spend performance profiling. /// The for the operation. /// A resulting in the information. - ValueTask Read(ulong? profileMs = null, CancellationToken cancellationToken = default); + ValueTask Read(CancellationToken cancellationToken = default); /// /// Start . diff --git a/src/Tgstation.Server.Host/Components/Session/SessionController.cs b/src/Tgstation.Server.Host/Components/Session/SessionController.cs index ed1509cf56..6880ed7f6d 100644 --- a/src/Tgstation.Server.Host/Components/Session/SessionController.cs +++ b/src/Tgstation.Server.Host/Components/Session/SessionController.cs @@ -516,10 +516,6 @@ namespace Tgstation.Server.Host.Components.Session return process.CreateDump(outputFile, minidump, cancellationToken); } - /// - public ValueTask GetCpuUsage(TimeSpan waitingWindow, CancellationToken cancellationToken) - => process.GetCpuUsage(waitingWindow, cancellationToken); - /// /// The for . /// diff --git a/src/Tgstation.Server.Host/Components/Watchdog/IWatchdog.cs b/src/Tgstation.Server.Host/Components/Watchdog/IWatchdog.cs index 1decbb915a..2220c56932 100644 --- a/src/Tgstation.Server.Host/Components/Watchdog/IWatchdog.cs +++ b/src/Tgstation.Server.Host/Components/Watchdog/IWatchdog.cs @@ -24,6 +24,11 @@ namespace Tgstation.Server.Host.Components.Watchdog /// WatchdogStatus Status { get; } + /// + /// Gets the memory usage of the game server in bytes. + /// + long? MemoryUsage { get; } + /// /// If the alpha server is the active server. /// @@ -102,13 +107,5 @@ namespace Tgstation.Server.Host.Components.Watchdog /// The for the operation. /// A resulting in if the broadcast succeeded., otherwise. ValueTask Broadcast(string message, CancellationToken cancellationToken); - - /// - /// Profile memory and CPU usage of the running game server. - /// - /// The duration to profile the CPU usage of the game server for. - /// The for the operation. - /// A resulting in the performance metrics or if the server is offline. - Task<(long MemoryUsage, double CpuUsage)?> PerformanceProfile(TimeSpan timeSpan, CancellationToken cancellationToken); } } diff --git a/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs b/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs index 3a9b402901..5d9326ce7d 100644 --- a/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs +++ b/src/Tgstation.Server.Host/Components/Watchdog/WatchdogBase.cs @@ -50,6 +50,9 @@ namespace Tgstation.Server.Host.Components.Watchdog } } + /// + public long? MemoryUsage => GetActiveController()?.MemoryUsage; + /// public abstract bool AlphaIsActive { get; } @@ -289,17 +292,6 @@ namespace Tgstation.Server.Host.Components.Watchdog return true; } - /// - public async Task<(long MemoryUsage, double CpuUsage)?> PerformanceProfile(TimeSpan timeSpan, CancellationToken cancellationToken) - { - var controller = GetActiveController(); - if (controller == null) - return null; - - var cpuUsage = await controller.GetCpuUsage(timeSpan, cancellationToken); - return (controller.MemoryUsage, CpuUsage: cpuUsage); - } - /// public async ValueTask HandleChatCommand(string commandName, string arguments, ChatUser sender, CancellationToken cancellationToken) { diff --git a/src/Tgstation.Server.Host/Controllers/DreamDaemonController.cs b/src/Tgstation.Server.Host/Controllers/DreamDaemonController.cs index 3c9854a1a3..79e03ebb84 100644 --- a/src/Tgstation.Server.Host/Controllers/DreamDaemonController.cs +++ b/src/Tgstation.Server.Host/Controllers/DreamDaemonController.cs @@ -98,7 +98,6 @@ namespace Tgstation.Server.Host.Controllers /// /// Get the watchdog status. /// - /// The amount of time to spend profiling game server CPU performance. /// The for the operation. /// A resulting in the of the operation. /// Read information successfully. @@ -107,7 +106,7 @@ namespace Tgstation.Server.Host.Controllers [TgsAuthorize(DreamDaemonRights.ReadMetadata | DreamDaemonRights.ReadRevision)] [ProducesResponseType(typeof(DreamDaemonResponse), 200)] [ProducesResponseType(typeof(ErrorMessageResponse), 410)] - public ValueTask Read([FromQuery] ulong? profileMs, CancellationToken cancellationToken) => ReadImpl(null, profileMs, false, cancellationToken); + public ValueTask Read(CancellationToken cancellationToken) => ReadImpl(null, false, cancellationToken); /// /// Stops the Watchdog if it's running. @@ -253,7 +252,7 @@ namespace Tgstation.Server.Host.Controllers else if ((oldSoftRestart && model.SoftRestart == false) || (oldSoftShutdown && model.SoftShutdown == false)) await watchdog.ResetRebootState(cancellationToken); - return await ReadImpl(current, null, rebootRequired, cancellationToken); + return await ReadImpl(current, rebootRequired, cancellationToken); }); } #pragma warning restore CA1506 @@ -312,25 +311,19 @@ namespace Tgstation.Server.Host.Controllers }); /// - /// Implementation of . + /// Implementation of . /// /// The to operate on if any. - /// The amount of time to spend profiling game server CPU performance. /// If there was a settings change made that forced a switch to . /// The for the operation. /// A resulting in the of the operation. #pragma warning disable CA1502 // TODO: Decomplexify - ValueTask ReadImpl(DreamDaemonSettings? settings, ulong? profileMs, bool knownForcedReboot, CancellationToken cancellationToken) + ValueTask ReadImpl(DreamDaemonSettings? settings, bool knownForcedReboot, CancellationToken cancellationToken) #pragma warning restore CA1502 => WithComponentInstance(async instance => { var dd = instance.Watchdog; var metadata = (AuthenticationContext.GetRight(RightsType.DreamDaemon) & (ulong)DreamDaemonRights.ReadMetadata) != 0; - - Task<(long MemoryUsage, double CpuUsage)?>? profilingTask = null; - if (metadata && profileMs.HasValue && dd.Status == WatchdogStatus.Online) - profilingTask = dd.PerformanceProfile(TimeSpan.FromMilliseconds(profileMs.Value), cancellationToken); - var revision = (AuthenticationContext.GetRight(RightsType.DreamDaemon) & (ulong)DreamDaemonRights.ReadRevision) != 0; if (settings == null) @@ -380,6 +373,7 @@ namespace Tgstation.Server.Host.Controllers result.Visibility = settings.Visibility!.Value; result.SoftRestart = rstate == RebootState.Restart; result.SoftShutdown = rstate == RebootState.Shutdown; + result.ImmediateMemoryUsage = dd.MemoryUsage; if (rstate == RebootState.Normal && knownForcedReboot) result.SoftRestart = true; @@ -393,16 +387,6 @@ namespace Tgstation.Server.Host.Controllers result.LogOutput = settings.LogOutput; result.MapThreads = settings.MapThreads; result.Minidumps = settings.Minidumps; - - if (profilingTask != null) - { - var profile = await profilingTask; - if (profile.HasValue) - { - result.ImmediateMemoryUsage = profile.Value.MemoryUsage; - result.ImmediateCpuUsage = profile.Value.CpuUsage; - } - } } if (revision) diff --git a/src/Tgstation.Server.Host/System/IProcessBase.cs b/src/Tgstation.Server.Host/System/IProcessBase.cs index f4a613b62c..f34d5e6597 100644 --- a/src/Tgstation.Server.Host/System/IProcessBase.cs +++ b/src/Tgstation.Server.Host/System/IProcessBase.cs @@ -1,5 +1,4 @@ -using System; -using System.Threading; +using System.Threading; using System.Threading.Tasks; namespace Tgstation.Server.Host.System @@ -19,14 +18,6 @@ namespace Tgstation.Server.Host.System /// long MemoryUsage { get; } - /// - /// Measures the 's CPU use percentage over a period of time. - /// - /// The to measure the percentage over. - /// The for the operation. - /// A ranging from 0-1 representing the percentage of the process' CPU time that was measured. - ValueTask GetCpuUsage(TimeSpan waitingWindow, CancellationToken cancellationToken); - /// /// Set's the owned to a non-normal value. /// diff --git a/src/Tgstation.Server.Host/System/Process.cs b/src/Tgstation.Server.Host/System/Process.cs index 2224ee3aac..64c92bf89b 100644 --- a/src/Tgstation.Server.Host/System/Process.cs +++ b/src/Tgstation.Server.Host/System/Process.cs @@ -7,7 +7,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Win32.SafeHandles; using Tgstation.Server.Host.IO; -using Tgstation.Server.Host.Utils; namespace Tgstation.Server.Host.System { @@ -31,11 +30,6 @@ namespace Tgstation.Server.Host.System /// readonly IProcessFeatures processFeatures; - /// - /// The for the . - /// - readonly IAsyncDelayer asyncDelayer; - /// /// The for the . /// @@ -71,7 +65,6 @@ namespace Tgstation.Server.Host.System /// Initializes a new instance of the class. /// /// The value of . - /// The value of . /// The value of . /// The override value of . /// The value of . @@ -79,7 +72,6 @@ namespace Tgstation.Server.Host.System /// If was NOT just created. public Process( IProcessFeatures processFeatures, - IAsyncDelayer asyncDelayer, global::System.Diagnostics.Process handle, CancellationTokenSource? readerCts, Task? readTask, @@ -95,7 +87,6 @@ namespace Tgstation.Server.Host.System cancellationTokenSource = readerCts ?? new CancellationTokenSource(); this.processFeatures = processFeatures ?? throw new ArgumentNullException(nameof(processFeatures)); - this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer)); this.readTask = readTask; @@ -245,24 +236,6 @@ namespace Tgstation.Server.Host.System return processFeatures.CreateDump(handle, outputFile, minidump, cancellationToken); } - /// - public async ValueTask GetCpuUsage(TimeSpan waitingWindow, CancellationToken cancellationToken) - { - var startCpuUsage = handle.TotalProcessorTime; - var stopwatch = Stopwatch.StartNew(); - await asyncDelayer.Delay(waitingWindow, cancellationToken); - - var endCpuUsage = handle.TotalProcessorTime; - var totalElapsedTime = stopwatch.Elapsed; - - var cpuUsedMs = (endCpuUsage - startCpuUsage).TotalMilliseconds; - var totalMsPassed = totalElapsedTime.TotalMilliseconds; - - var cpuUsageTotal = cpuUsedMs / (Environment.ProcessorCount * totalMsPassed); - - return cpuUsageTotal; - } - /// /// Attaches a log message to the process' exit event. /// diff --git a/src/Tgstation.Server.Host/System/ProcessExecutor.cs b/src/Tgstation.Server.Host/System/ProcessExecutor.cs index 67d77d3600..01fe2c00a4 100644 --- a/src/Tgstation.Server.Host/System/ProcessExecutor.cs +++ b/src/Tgstation.Server.Host/System/ProcessExecutor.cs @@ -11,7 +11,6 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Tgstation.Server.Host.IO; -using Tgstation.Server.Host.Utils; namespace Tgstation.Server.Host.System { @@ -33,11 +32,6 @@ namespace Tgstation.Server.Host.System /// readonly IIOManager ioManager; - /// - /// The for the . - /// - readonly IAsyncDelayer asyncDelayer; - /// /// The for the . /// @@ -70,19 +64,16 @@ namespace Tgstation.Server.Host.System /// /// The value of . /// The value of . - /// The value of . /// The value of . /// The value of . public ProcessExecutor( IProcessFeatures processFeatures, IIOManager ioManager, - IAsyncDelayer asyncDelayer, ILogger logger, ILoggerFactory loggerFactory) { this.processFeatures = processFeatures ?? throw new ArgumentNullException(nameof(processFeatures)); this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager)); - this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); } @@ -204,7 +195,6 @@ namespace Tgstation.Server.Host.System var process = new Process( processFeatures, - asyncDelayer, handle, disposeCts, readTask, @@ -364,7 +354,6 @@ namespace Tgstation.Server.Host.System var pid = handle.Id; return new Process( processFeatures, - asyncDelayer, handle, null, null, diff --git a/tests/Tgstation.Server.Host.Tests/System/TestPosixSignalHandler.cs b/tests/Tgstation.Server.Host.Tests/System/TestPosixSignalHandler.cs index 6b01eec4f0..dd0f5fd5fb 100644 --- a/tests/Tgstation.Server.Host.Tests/System/TestPosixSignalHandler.cs +++ b/tests/Tgstation.Server.Host.Tests/System/TestPosixSignalHandler.cs @@ -61,7 +61,6 @@ namespace Tgstation.Server.Host.System.Tests new DefaultIOManager(), loggerFactory.CreateLogger()), Mock.Of(), - Mock.Of(), loggerFactory.CreateLogger(), loggerFactory); await using var subProc = await processExecutor diff --git a/tests/Tgstation.Server.Tests/Live/Instance/DeploymentTest.cs b/tests/Tgstation.Server.Tests/Live/Instance/DeploymentTest.cs index ddab5d3aef..1b20cd560c 100644 --- a/tests/Tgstation.Server.Tests/Live/Instance/DeploymentTest.cs +++ b/tests/Tgstation.Server.Tests/Live/Instance/DeploymentTest.cs @@ -230,7 +230,7 @@ namespace Tgstation.Server.Tests.Live.Instance async Task TestVisibilityPermission(CancellationToken cancellationToken) { - var updatedDD = await dreamDaemonClient.Read(null, cancellationToken); + var updatedDD = await dreamDaemonClient.Read(cancellationToken); Assert.AreEqual(DreamDaemonVisibility.Public, updatedDD.Visibility); updatedDD = await dreamDaemonClient.Update(new DreamDaemonRequest { diff --git a/tests/Tgstation.Server.Tests/Live/Instance/WatchdogTest.cs b/tests/Tgstation.Server.Tests/Live/Instance/WatchdogTest.cs index e4b53d0307..08f436b26d 100644 --- a/tests/Tgstation.Server.Tests/Live/Instance/WatchdogTest.cs +++ b/tests/Tgstation.Server.Tests/Live/Instance/WatchdogTest.cs @@ -150,7 +150,6 @@ namespace Tgstation.Server.Tests.Live.Instance }, cancellationToken); Assert.AreEqual(47, updated.OpenDreamTopicPort); - Assert.IsFalse(updated.ImmediateCpuUsage.HasValue); Assert.IsFalse(updated.ImmediateMemoryUsage.HasValue); } catch (ConflictException ex) when (ex.ErrorCode == ErrorCode.PortNotAvailable) @@ -268,7 +267,7 @@ namespace Tgstation.Server.Tests.Live.Instance do { await Task.Delay(TimeSpan.FromSeconds(1), tempToken); - currentStatus = await instanceClient.DreamDaemon.Read(null, tempToken); + currentStatus = await instanceClient.DreamDaemon.Read(tempToken); } while (currentStatus.Status != WatchdogStatus.Offline); } @@ -360,7 +359,7 @@ namespace Tgstation.Server.Tests.Live.Instance // This one fucks with the access_identifer, run it in isolation await WhiteBoxValidateBridgeRequestLimitAndTestChunking(cancellationToken); - var ddInfo = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var ddInfo = await instanceClient.DreamDaemon.Read(cancellationToken); await CheckDMApiFail(ddInfo.ActiveCompileJob, cancellationToken); var deleteJob = await deleteJobTask; @@ -615,7 +614,7 @@ namespace Tgstation.Server.Tests.Live.Instance await WaitForJob(startJob, 40, false, null, cancellationToken); - daemonStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(WatchdogStatus.Online, daemonStatus.Status.Value); ValidateSessionId(daemonStatus, true); @@ -716,19 +715,19 @@ namespace Tgstation.Server.Tests.Live.Instance await WaitForJob(startJob, 40, false, null, cancellationToken); - daemonStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(WatchdogStatus.Online, daemonStatus.Status.Value); ValidateSessionId(daemonStatus, true); await CheckDDPriority(); Assert.AreEqual(false, daemonStatus.SoftRestart); Assert.AreEqual(false, daemonStatus.SoftShutdown); - Assert.IsFalse(daemonStatus.ImmediateMemoryUsage.HasValue); - Assert.IsFalse(daemonStatus.ImmediateCpuUsage.HasValue); + Assert.IsTrue(daemonStatus.ImmediateMemoryUsage.HasValue); + Assert.AreNotEqual(0, daemonStatus.ImmediateMemoryUsage.Value); await GracefulWatchdogShutdown(cancellationToken); - daemonStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(WatchdogStatus.Offline, daemonStatus.Status.Value); Assert.IsFalse(daemonStatus.SessionId.HasValue); await ExpectGameDirectoryCount(1, cancellationToken); @@ -849,7 +848,6 @@ namespace Tgstation.Server.Tests.Live.Instance ? new WindowsProcessFeatures(Mock.Of>()) : new PosixProcessFeatures(new Lazy(() => executor), new DefaultIOManager(), Mock.Of>()), Mock.Of(), - Mock.Of(), Mock.Of>(), LoggerFactory.Create(x => { })); await using var ourProcessHandler = executor @@ -899,7 +897,7 @@ namespace Tgstation.Server.Tests.Live.Instance var timeout = 20; do { - ddStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + ddStatus = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(1U, ddStatus.HealthCheckSeconds.Value); if (ddStatus.Status.Value == WatchdogStatus.Offline) { @@ -1119,11 +1117,11 @@ namespace Tgstation.Server.Tests.Live.Instance // - Injects a custom bridge handler into the bridge registrar and makes the test hack into the DMAPI and change its access_identifier async Task WhiteBoxChatCommandTest(CancellationToken cancellationToken) { - var ddInfo = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var ddInfo = await instanceClient.DreamDaemon.Read(cancellationToken); for (int i = 0; ddInfo.Status != WatchdogStatus.Online && i < 15; ++i) { await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken); - ddInfo = await instanceClient.DreamDaemon.Read(null, cancellationToken); + ddInfo = await instanceClient.DreamDaemon.Read(cancellationToken); } Assert.AreEqual(WatchdogStatus.Online, ddInfo.Status); @@ -1174,7 +1172,7 @@ namespace Tgstation.Server.Tests.Live.Instance var endTime = DateTimeOffset.UtcNow + TimeSpan.FromSeconds(5); - ddInfo = await instanceClient.DreamDaemon.Read(null, cancellationToken); + ddInfo = await instanceClient.DreamDaemon.Read(cancellationToken); await CheckDMApiFail(ddInfo.ActiveCompileJob, cancellationToken); CheckEmbedsTest(embedsResponse, startTime, endTime); @@ -1275,7 +1273,7 @@ namespace Tgstation.Server.Tests.Live.Instance await instanceClient.DreamDaemon.Shutdown(cancellationToken); - daemonStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(WatchdogStatus.Offline, daemonStatus.Status.Value); await CheckDMApiFail(daemonStatus.ActiveCompileJob, cancellationToken); } @@ -1322,7 +1320,7 @@ namespace Tgstation.Server.Tests.Live.Instance await instanceClient.DreamDaemon.Shutdown(cancellationToken); - daemonStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(WatchdogStatus.Offline, daemonStatus.Status.Value); await CheckDMApiFail(daemonStatus.ActiveCompileJob, cancellationToken); } @@ -1335,7 +1333,7 @@ namespace Tgstation.Server.Tests.Live.Instance var currentByondVersion = await instanceClient.Engine.ActiveVersion(cancellationToken); Assert.AreNotEqual(versionToInstall, currentByondVersion.EngineVersion); - var initialStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var initialStatus = await instanceClient.DreamDaemon.Read(cancellationToken); var startJob = await StartDD(cancellationToken); @@ -1365,15 +1363,12 @@ namespace Tgstation.Server.Tests.Live.Instance await DeployTestDme(DmeName, DreamDaemonSecurity.Safe, true, cancellationToken); - var daemonStatus = await instanceClient.DreamDaemon.Read(500, cancellationToken); + var daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(WatchdogStatus.Online, daemonStatus.Status.Value); Assert.IsNotNull(daemonStatus.ActiveCompileJob); ValidateSessionId(daemonStatus, true); - Assert.IsTrue(daemonStatus.ImmediateCpuUsage.HasValue); Assert.IsTrue(daemonStatus.ImmediateMemoryUsage.HasValue); - - // Assert.AreNotEqual(0, daemonStatus.ImmediateCpuUsage.Value); sleep_offline cucks this check Assert.AreNotEqual(0, daemonStatus.ImmediateMemoryUsage.Value); Assert.AreEqual(initialStatus.ActiveCompileJob.Id, daemonStatus.ActiveCompileJob.Id); @@ -1394,7 +1389,7 @@ namespace Tgstation.Server.Tests.Live.Instance await instanceClient.DreamDaemon.Shutdown(cancellationToken); await CheckDMApiFail(daemonStatus.ActiveCompileJob, cancellationToken); - daemonStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(WatchdogStatus.Offline, daemonStatus.Status.Value); } @@ -1427,7 +1422,7 @@ namespace Tgstation.Server.Tests.Live.Instance KillDD(firstTime); firstTime = false; await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken); - daemonStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); } while (daemonStatus.Status == WatchdogStatus.Online); Assert.AreEqual(WatchdogStatus.Restoring, daemonStatus.Status); @@ -1436,7 +1431,7 @@ namespace Tgstation.Server.Tests.Live.Instance do { KillDD(false); - daemonStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); } while (daemonStatus.Status == WatchdogStatus.Online || daemonStatus.Status == WatchdogStatus.Restoring); Assert.AreEqual(WatchdogStatus.DelayedRestart, daemonStatus.Status); @@ -1471,7 +1466,7 @@ namespace Tgstation.Server.Tests.Live.Instance => TellWorldToReboot2(instanceClient, instanceManager, topicClient, FindTopicPort(), waitForOnlineIfRestoring || testVersion.Engine.Value == EngineType.OpenDream, cancellationToken, source); public static async Task TellWorldToReboot2(IInstanceClient instanceClient, IInstanceManager instanceManager, ITopicClient topicClient, ushort topicPort, bool waitForOnlineIfRestoring, CancellationToken cancellationToken, [CallerLineNumber]int source = 0, [CallerFilePath]string path = null) { - var daemonStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.IsNotNull(daemonStatus.StagedCompileJob); var initialSession = daemonStatus.ActiveCompileJob; @@ -1489,7 +1484,7 @@ namespace Tgstation.Server.Tests.Live.Instance do { await Task.Delay(TimeSpan.FromSeconds(1), tempToken); - daemonStatus = await instanceClient.DreamDaemon.Read(null, tempToken); + daemonStatus = await instanceClient.DreamDaemon.Read(tempToken); } while (initialSession.Id == daemonStatus.ActiveCompileJob.Id); } @@ -1499,7 +1494,7 @@ namespace Tgstation.Server.Tests.Live.Instance do { await Task.Delay(TimeSpan.FromSeconds(1), tempToken); - daemonStatus = await instanceClient.DreamDaemon.Read(null, tempToken); + daemonStatus = await instanceClient.DreamDaemon.Read(tempToken); } while (daemonStatus.Status == WatchdogStatus.Restoring); } @@ -1542,7 +1537,7 @@ namespace Tgstation.Server.Tests.Live.Instance for (var i = 0; i < 10; ++i) await Task.Yield(); - var ddInfo = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var ddInfo = await instanceClient.DreamDaemon.Read(cancellationToken); var targetJob = ddInfo.StagedCompileJob ?? ddInfo.ActiveCompileJob; Assert.IsNotNull(targetJob); if (requireApi) @@ -1560,14 +1555,14 @@ namespace Tgstation.Server.Tests.Live.Instance SoftShutdown = true }, cancellationToken); - var newStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var newStatus = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.IsTrue(newStatus.SoftShutdown.Value || newStatus.Status.Value == WatchdogStatus.Offline); var timeout = 40; do { await Task.Delay(TimeSpan.FromSeconds(3), cancellationToken); - var ddStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var ddStatus = await instanceClient.DreamDaemon.Read(cancellationToken); if (ddStatus.Status.Value == WatchdogStatus.Offline) break; @@ -1595,7 +1590,7 @@ namespace Tgstation.Server.Tests.Live.Instance if (!checkLogs) return; - var daemonStatus = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var daemonStatus = await instanceClient.DreamDaemon.Read(cancellationToken); if (daemonStatus.Status != WatchdogStatus.Offline || !daemonStatus.LogOutput.Value) return; @@ -1618,7 +1613,7 @@ namespace Tgstation.Server.Tests.Live.Instance cancellationToken); Assert.IsNotNull(result); Assert.AreEqual("all gucci", result.StringData); - await CheckDMApiFail((await instanceClient.DreamDaemon.Read(null, cancellationToken)).ActiveCompileJob, cancellationToken); + await CheckDMApiFail((await instanceClient.DreamDaemon.Read(cancellationToken)).ActiveCompileJob, cancellationToken); } } } diff --git a/tests/Tgstation.Server.Tests/Live/TestLiveServer.cs b/tests/Tgstation.Server.Tests/Live/TestLiveServer.cs index 87383f216b..b34b14f066 100644 --- a/tests/Tgstation.Server.Tests/Live/TestLiveServer.cs +++ b/tests/Tgstation.Server.Tests/Live/TestLiveServer.cs @@ -1095,7 +1095,6 @@ namespace Tgstation.Server.Tests.Live ? new WindowsProcessFeatures(loggerFactory.CreateLogger()) : new PosixProcessFeatures(new Lazy(() => processExecutor), ioManager, loggerFactory.CreateLogger()), ioManager, - Mock.Of(), loggerFactory.CreateLogger(), loggerFactory); @@ -1198,7 +1197,7 @@ namespace Tgstation.Server.Tests.Live { await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken); - var status = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var status = await instanceClient.DreamDaemon.Read(cancellationToken); if (updated) { @@ -1546,7 +1545,7 @@ namespace Tgstation.Server.Tests.Live if (openDreamOnly) return; - var dd = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var dd = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(WatchdogStatus.Online, dd.Status.Value); Assert.IsNotNull(dd.StagedCompileJob); Assert.AreNotEqual(dd.StagedCompileJob.Id, dd.ActiveCompileJob.Id); @@ -1629,7 +1628,7 @@ namespace Tgstation.Server.Tests.Live await jrt.WaitForJob(job, 130, job.Description.Contains("Reconnect chat bot") ? null : false, null, cancellationToken); } - var dd = await instanceClient.DreamDaemon.Read(500, cancellationToken); + var dd = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(WatchdogStatus.Online, dd.Status.Value); Assert.IsNotNull(dd.StagedCompileJob); Assert.AreNotEqual(dd.StagedCompileJob.Id, dd.ActiveCompileJob.Id); @@ -1713,7 +1712,7 @@ namespace Tgstation.Server.Tests.Live var instanceClient = adminClient.Instances.CreateClient(instance); await WaitForInitialJobs(instanceClient); - var dd = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var dd = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(WatchdogStatus.Online, dd.Status.Value); @@ -1721,7 +1720,7 @@ namespace Tgstation.Server.Tests.Live await using var wdt = new WatchdogTest(edgeVersion, instanceClient, GetInstanceManager(), (ushort)server.ApiUrl.Port, server.HighPriorityDreamDaemon, mainDDPort.Value, server.UsingBasicWatchdog); await wdt.WaitForJob(compileJob, 30, false, null, cancellationToken); - dd = await instanceClient.DreamDaemon.Read(null, cancellationToken); + dd = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(dd.StagedCompileJob.Job.Id, compileJob.Id); expectedCompileJobId = compileJob.Id.Value; @@ -1756,7 +1755,7 @@ namespace Tgstation.Server.Tests.Live var instanceClient = adminClient.Instances.CreateClient(instance); await WaitForInitialJobs(instanceClient); - var currentDD = await instanceClient.DreamDaemon.Read(null, cancellationToken); + var currentDD = await instanceClient.DreamDaemon.Read(cancellationToken); Assert.AreEqual(expectedCompileJobId, currentDD.ActiveCompileJob.Id.Value); Assert.AreEqual(WatchdogStatus.Online, currentDD.Status); Assert.AreEqual(expectedStaged, currentDD.StagedCompileJob.Job.Id.Value); diff --git a/tests/Tgstation.Server.Tests/TestSystemInteraction.cs b/tests/Tgstation.Server.Tests/TestSystemInteraction.cs index da66aa3b7a..e7c8e28962 100644 --- a/tests/Tgstation.Server.Tests/TestSystemInteraction.cs +++ b/tests/Tgstation.Server.Tests/TestSystemInteraction.cs @@ -25,7 +25,6 @@ namespace Tgstation.Server.Tests var processExecutor = new ProcessExecutor( Mock.Of(), new DefaultIOManager(), - Mock.Of(), Mock.Of>(), loggerFactory); @@ -54,7 +53,6 @@ namespace Tgstation.Server.Tests var processExecutor = new ProcessExecutor( Mock.Of(), new DefaultIOManager(), - Mock.Of(), loggerFactory.CreateLogger(), loggerFactory); diff --git a/tests/Tgstation.Server.Tests/TestVersions.cs b/tests/Tgstation.Server.Tests/TestVersions.cs index 7afbd15a71..adadd4bfcb 100644 --- a/tests/Tgstation.Server.Tests/TestVersions.cs +++ b/tests/Tgstation.Server.Tests/TestVersions.cs @@ -211,7 +211,6 @@ namespace Tgstation.Server.Tests new DefaultIOManager(), loggerFactory.CreateLogger()), Mock.Of(), - Mock.Of(), loggerFactory.CreateLogger(), loggerFactory);