From 929137dd1301d4b20e613da222b9bde1c801fd0a Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 14 Oct 2021 14:46:37 -0400 Subject: [PATCH 1/8] Low prio DM + DMAPI DD, Normal prio live DD --- .../Components/Deployment/DreamMaker.cs | 2 ++ .../Components/Session/SessionController.cs | 2 +- .../Components/Watchdog/BasicWatchdog.cs | 3 +-- src/Tgstation.Server.Host/System/IProcessBase.cs | 5 +++-- src/Tgstation.Server.Host/System/Process.cs | 11 ++++++----- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs b/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs index 790dee9cc9..f7c04fb5f7 100644 --- a/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs +++ b/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs @@ -762,6 +762,8 @@ namespace Tgstation.Server.Host.Components.Deployment using (var provider = new TemporaryDmbProvider(ioManager.ResolvePath(job.DirectoryName.ToString()), String.Concat(job.DmeName, DmbExtension), job)) await using (var controller = await sessionControllerFactory.LaunchNew(provider, byondLock, launchParameters, true, cancellationToken).ConfigureAwait(false)) { + controller.AdjustPriority(false); + var launchResult = await controller.LaunchResult.ConfigureAwait(false); if (launchResult.StartupTime.HasValue) diff --git a/src/Tgstation.Server.Host/Components/Session/SessionController.cs b/src/Tgstation.Server.Host/Components/Session/SessionController.cs index 74feee1f9d..91285f0ee8 100644 --- a/src/Tgstation.Server.Host/Components/Session/SessionController.cs +++ b/src/Tgstation.Server.Host/Components/Session/SessionController.cs @@ -590,7 +590,7 @@ namespace Tgstation.Server.Host.Components.Session } /// - public void SetHighPriority() => process.SetHighPriority(); + public void AdjustPriority(bool higher) => process.AdjustPriority(higher); /// public void Suspend() => process.Suspend(); diff --git a/src/Tgstation.Server.Host/Components/Watchdog/BasicWatchdog.cs b/src/Tgstation.Server.Host/Components/Watchdog/BasicWatchdog.cs index f62bc2d2c8..903b063d05 100644 --- a/src/Tgstation.Server.Host/Components/Watchdog/BasicWatchdog.cs +++ b/src/Tgstation.Server.Host/Components/Watchdog/BasicWatchdog.cs @@ -247,8 +247,7 @@ namespace Tgstation.Server.Host.Components.Watchdog return; } - Server.SetHighPriority(); - + // Server.AdjustPriority(true); if (!reattachInProgress) await SessionPersistor.Save(Server.ReattachInformation, cancellationToken).ConfigureAwait(false); diff --git a/src/Tgstation.Server.Host/System/IProcessBase.cs b/src/Tgstation.Server.Host/System/IProcessBase.cs index a38df065d3..612c86447b 100644 --- a/src/Tgstation.Server.Host/System/IProcessBase.cs +++ b/src/Tgstation.Server.Host/System/IProcessBase.cs @@ -14,9 +14,10 @@ namespace Tgstation.Server.Host.System Task Lifetime { get; } /// - /// Set's the owned to . + /// Set's the owned to a non-normal value. /// - void SetHighPriority(); + /// If will be set to otherwise, will be set to . + void AdjustPriority(bool higher); /// /// Suspends the process. diff --git a/src/Tgstation.Server.Host/System/Process.cs b/src/Tgstation.Server.Host/System/Process.cs index 2ff8ccf1b4..e2820b5484 100644 --- a/src/Tgstation.Server.Host/System/Process.cs +++ b/src/Tgstation.Server.Host/System/Process.cs @@ -184,16 +184,17 @@ namespace Tgstation.Server.Host.System } /// - public void SetHighPriority() + public void AdjustPriority(bool higher) { + var targetPriority = higher ? ProcessPriorityClass.AboveNormal : ProcessPriorityClass.BelowNormal; try { - handle.PriorityClass = ProcessPriorityClass.AboveNormal; - logger.LogTrace("Set PID {0} to above normal priority", Id); + handle.PriorityClass = targetPriority; + logger.LogTrace("Set PID {pid} to {targetPriority} priority", Id, targetPriority); } - catch (Exception e) + catch (Exception ex) { - logger.LogWarning(e, "Unable to raise process priority for PID {0}!", Id); + logger.LogWarning(ex, "Unable to set priority for PID {id} to {targetPriority}!", Id, targetPriority); } } From 0fa4a74d5f4b3d37a99a4e95581a7ac6f7978a50 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Thu, 14 Oct 2021 14:54:47 -0400 Subject: [PATCH 2/8] Readme update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 91f5ec9a98..e67511ce2b 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ docker run \ --restart=always \ # Recommended for maximum uptime --network="host" \ # Not recommended, eases networking setup if your sql server is on the same machine --name="tgs" \ # Name for the container - --cap-add=sys_nice \ # Recommended, allows tgs to schedule DreamDaemon as a higher priority process + --cap-add=sys_nice \ # Recommended, allows TGS to lower the niceness of child processes if it sees fit --init \ #Highly recommended, reaps potential zombie processes -p 5000:5000 \ # Port bridge for accessing TGS, you can change this if you need -p 0.0.0.0:: \ # Port bridge for accessing DreamDaemon From 29f505ee2916363612bcc3f66a56e489a3d8b71e Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Wed, 27 Oct 2021 13:23:51 -0400 Subject: [PATCH 3/8] Make process priorities a configuration option --- build/Version.props | 2 +- .../Components/Deployment/DreamMaker.cs | 14 +++++++++++ .../Session/SessionControllerFactory.cs | 24 ++++++++++++++++--- .../ControlPanelConfiguration.cs | 4 +--- .../Configuration/SessionConfiguration.cs | 23 ++++++++++++++++++ src/Tgstation.Server.Host/Core/Application.cs | 1 + src/Tgstation.Server.Host/appsettings.yml | 3 +++ 7 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 src/Tgstation.Server.Host/Configuration/SessionConfiguration.cs diff --git a/build/Version.props b/build/Version.props index 7c296967f1..014fb98062 100644 --- a/build/Version.props +++ b/build/Version.props @@ -4,7 +4,7 @@ 4.15.6 - 4.0.0 + 4.1.0 9.3.0 9.3.1 10.4.1 diff --git a/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs b/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs index f7c04fb5f7..64750b859e 100644 --- a/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs +++ b/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using Tgstation.Server.Api.Models; using Tgstation.Server.Api.Models.Internal; @@ -16,6 +17,7 @@ using Tgstation.Server.Host.Components.Deployment.Remote; using Tgstation.Server.Host.Components.Events; using Tgstation.Server.Host.Components.Repository; using Tgstation.Server.Host.Components.Session; +using Tgstation.Server.Host.Configuration; using Tgstation.Server.Host.Database; using Tgstation.Server.Host.Extensions; using Tgstation.Server.Host.IO; @@ -93,6 +95,11 @@ namespace Tgstation.Server.Host.Components.Deployment /// readonly ILogger logger; + /// + /// The for . + /// + readonly SessionConfiguration sessionConfiguration; + /// /// The belongs to. /// @@ -147,6 +154,7 @@ namespace Tgstation.Server.Host.Components.Deployment /// The value of . /// The value of . /// The value of . + /// The containing the value of . /// The value of . public DreamMaker( IByondManager byond, @@ -160,6 +168,7 @@ namespace Tgstation.Server.Host.Components.Deployment IRepositoryManager repositoryManager, IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory, ILogger logger, + IOptions sessionConfigurationOptions, Api.Models.Instance metadata) { this.byond = byond ?? throw new ArgumentNullException(nameof(byond)); @@ -173,6 +182,7 @@ namespace Tgstation.Server.Host.Components.Deployment this.repositoryManager = repositoryManager ?? throw new ArgumentNullException(nameof(repositoryManager)); this.remoteDeploymentManagerFactory = remoteDeploymentManagerFactory ?? throw new ArgumentNullException(nameof(remoteDeploymentManagerFactory)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + sessionConfiguration = sessionConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(sessionConfigurationOptions)); this.metadata = metadata ?? throw new ArgumentNullException(nameof(metadata)); deploymentLock = new object(); @@ -825,6 +835,10 @@ namespace Tgstation.Server.Host.Components.Deployment true, true, true); + + if (sessionConfiguration.LowPriorityDeploymentProcesses) + dm.AdjustPriority(false); + int exitCode; using (cancellationToken.Register(() => dm.Terminate())) exitCode = await dm.Lifetime.ConfigureAwait(false); diff --git a/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs b/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs index 7c5f331a04..733bcdb704 100644 --- a/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs +++ b/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs @@ -7,6 +7,7 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using Tgstation.Server.Api; using Tgstation.Server.Api.Models; @@ -17,6 +18,7 @@ using Tgstation.Server.Host.Components.Deployment; using Tgstation.Server.Host.Components.Events; using Tgstation.Server.Host.Components.Interop; using Tgstation.Server.Host.Components.Interop.Bridge; +using Tgstation.Server.Host.Configuration; using Tgstation.Server.Host.Core; using Tgstation.Server.Host.Extensions; using Tgstation.Server.Host.IO; @@ -99,6 +101,11 @@ namespace Tgstation.Server.Host.Components.Session /// readonly ILogger logger; + /// + /// The for the . + /// + readonly SessionConfiguration sessionConfiguration; + /// /// The for the . /// @@ -170,7 +177,8 @@ namespace Tgstation.Server.Host.Components.Session /// The value of . /// The value of . /// The value of . - /// The value of . + /// The containing the value of . + /// The value of . public SessionControllerFactory( IProcessExecutor processExecutor, IByondManager byond, @@ -183,9 +191,10 @@ namespace Tgstation.Server.Host.Components.Session IPlatformIdentifier platformIdentifier, IBridgeRegistrar bridgeRegistrar, IServerPortProvider serverPortProvider, - EventConsumer eventConsumer, + IEventConsumer eventConsumer, ILoggerFactory loggerFactory, ILogger logger, + IOptions sessionConfigurationOptions, Api.Models.Instance instance) { this.processExecutor = processExecutor ?? throw new ArgumentNullException(nameof(processExecutor)); @@ -193,7 +202,6 @@ namespace Tgstation.Server.Host.Components.Session this.topicClientFactory = topicClientFactory ?? throw new ArgumentNullException(nameof(topicClientFactory)); this.cryptographySuite = cryptographySuite ?? throw new ArgumentNullException(nameof(cryptographySuite)); this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider)); - this.instance = instance ?? throw new ArgumentNullException(nameof(instance)); this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager)); this.chat = chat ?? throw new ArgumentNullException(nameof(chat)); this.networkPromptReaper = networkPromptReaper ?? throw new ArgumentNullException(nameof(networkPromptReaper)); @@ -203,6 +211,8 @@ namespace Tgstation.Server.Host.Components.Session this.eventConsumer = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer)); this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + sessionConfiguration = sessionConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(sessionConfigurationOptions)); + this.instance = instance ?? throw new ArgumentNullException(nameof(instance)); } /// @@ -380,6 +390,14 @@ namespace Tgstation.Server.Host.Components.Session false, apiValidate); + if (apiValidate) + { + if (sessionConfiguration.HighPriorityLiveDreamDaemon) + process.AdjustPriority(true); + } + else if (sessionConfiguration.LowPriorityDeploymentProcesses) + process.AdjustPriority(false); + // If this isnt a staging DD (From a Deployment), fire off an event if (!apiValidate) await eventConsumer.HandleEvent( diff --git a/src/Tgstation.Server.Host/Configuration/ControlPanelConfiguration.cs b/src/Tgstation.Server.Host/Configuration/ControlPanelConfiguration.cs index b58747f24b..e3a5d3a031 100644 --- a/src/Tgstation.Server.Host/Configuration/ControlPanelConfiguration.cs +++ b/src/Tgstation.Server.Host/Configuration/ControlPanelConfiguration.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; - -namespace Tgstation.Server.Host.Configuration +namespace Tgstation.Server.Host.Configuration { /// /// Configuration options for the web control panel. diff --git a/src/Tgstation.Server.Host/Configuration/SessionConfiguration.cs b/src/Tgstation.Server.Host/Configuration/SessionConfiguration.cs new file mode 100644 index 0000000000..a65090f773 --- /dev/null +++ b/src/Tgstation.Server.Host/Configuration/SessionConfiguration.cs @@ -0,0 +1,23 @@ +namespace Tgstation.Server.Host.Configuration +{ + /// + /// Configuration options for the game sessions. + /// + sealed class SessionConfiguration + { + /// + /// The key for the the resides in. + /// + public const string Section = "Session"; + + /// + /// If the public DreamDaemon instances are set to be above normal priority processes. + /// + public bool HighPriorityLiveDreamDaemon { get; set; } + + /// + /// If the deployment DreamMaker and DreamDaemon instances are set to be below normal priority processes. + /// + public bool LowPriorityDeploymentProcesses { get; set; } + } +} diff --git a/src/Tgstation.Server.Host/Core/Application.cs b/src/Tgstation.Server.Host/Core/Application.cs index f79766ff24..30764018f4 100644 --- a/src/Tgstation.Server.Host/Core/Application.cs +++ b/src/Tgstation.Server.Host/Core/Application.cs @@ -120,6 +120,7 @@ namespace Tgstation.Server.Host.Core services.UseStandardConfig(Configuration); services.UseStandardConfig(Configuration); services.UseStandardConfig(Configuration); + services.UseStandardConfig(Configuration); // enable options which give us config reloading services.AddOptions(); diff --git a/src/Tgstation.Server.Host/appsettings.yml b/src/Tgstation.Server.Host/appsettings.yml index 61040477a7..ebab1c2470 100644 --- a/src/Tgstation.Server.Host/appsettings.yml +++ b/src/Tgstation.Server.Host/appsettings.yml @@ -11,6 +11,9 @@ General: InstanceLimit: 10 ValidInstancePaths: HostApiDocumentation: false +Session: + HighPriorityLiveDreamDaemon: false + LowPriorityDeploymentProcesses: true FileLogging: Directory: Disable: false From d0706d7a134fc06e9231a997da76c5fcc2d3381d Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Wed, 27 Oct 2021 13:25:08 -0400 Subject: [PATCH 4/8] Backwards compatibility --- .../Configuration/SessionConfiguration.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Tgstation.Server.Host/Configuration/SessionConfiguration.cs b/src/Tgstation.Server.Host/Configuration/SessionConfiguration.cs index a65090f773..86641b8944 100644 --- a/src/Tgstation.Server.Host/Configuration/SessionConfiguration.cs +++ b/src/Tgstation.Server.Host/Configuration/SessionConfiguration.cs @@ -10,10 +10,15 @@ /// public const string Section = "Session"; + /// + /// The default value for . + /// + private const bool DefaultHighPriorityLiveDreamDaemon = true; + /// /// If the public DreamDaemon instances are set to be above normal priority processes. /// - public bool HighPriorityLiveDreamDaemon { get; set; } + public bool HighPriorityLiveDreamDaemon { get; set; } = DefaultHighPriorityLiveDreamDaemon; /// /// If the deployment DreamMaker and DreamDaemon instances are set to be below normal priority processes. From d8aed8f076daea9ff89052d48e2bb6bbee11c5a6 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Wed, 27 Oct 2021 13:28:58 -0400 Subject: [PATCH 5/8] Readme update and build fix --- README.md | 4 ++++ .../Configuration/ControlPanelConfiguration.cs | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e67511ce2b..8cf7ac1589 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,10 @@ Create an `appsettings.Production.yml` file next to `appsettings.yml`. This will - `General:GitHubAccessToken`: Specify a GitHub personal access token with no scopes here to highly mitigate the possiblity of 429 response codes from GitHub requests +- `Session:HighPriorityLiveDreamDaemon`: Boolean controlling if live DreamDaemon instances get set to above normal priority processes. + +- `Session:LowPriorityDeploymentProcesses `: Boolean controlling if DreamMaker and API validation DreamDaemon instances get set to below normal priority processes. + - `FileLogging:Directory`: Override the default directory where server logs are stored. Default is C:/ProgramData/tgstation-server/logs on Windows, /usr/share/tgstation-server/logs otherwise - `FileLogging:LogLevel`: Can be one of `Trace`, `Debug`, `Information`, `Warning`, `Error`, or `Critical`. Restricts what is put into the log files. Currently `Debug` is reccommended for help with error reporting. diff --git a/src/Tgstation.Server.Host/Configuration/ControlPanelConfiguration.cs b/src/Tgstation.Server.Host/Configuration/ControlPanelConfiguration.cs index e3a5d3a031..b58747f24b 100644 --- a/src/Tgstation.Server.Host/Configuration/ControlPanelConfiguration.cs +++ b/src/Tgstation.Server.Host/Configuration/ControlPanelConfiguration.cs @@ -1,4 +1,6 @@ -namespace Tgstation.Server.Host.Configuration +using System.Collections.Generic; + +namespace Tgstation.Server.Host.Configuration { /// /// Configuration options for the web control panel. From 1178a473ba56a3f06fba2b0f8127e42cb3036505 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Wed, 27 Oct 2021 13:53:51 -0400 Subject: [PATCH 6/8] Actually wire it up --- .../Components/Deployment/DreamMaker.cs | 7 +++---- .../Components/InstanceFactory.cs | 12 +++++++++++- .../Components/Session/SessionControllerFactory.cs | 7 +++---- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs b/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs index 64750b859e..f0fa62e021 100644 --- a/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs +++ b/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs @@ -7,7 +7,6 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; using Tgstation.Server.Api.Models; using Tgstation.Server.Api.Models.Internal; @@ -154,7 +153,7 @@ namespace Tgstation.Server.Host.Components.Deployment /// The value of . /// The value of . /// The value of . - /// The containing the value of . + /// The value of . /// The value of . public DreamMaker( IByondManager byond, @@ -168,7 +167,7 @@ namespace Tgstation.Server.Host.Components.Deployment IRepositoryManager repositoryManager, IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory, ILogger logger, - IOptions sessionConfigurationOptions, + SessionConfiguration sessionConfiguration, Api.Models.Instance metadata) { this.byond = byond ?? throw new ArgumentNullException(nameof(byond)); @@ -182,7 +181,7 @@ namespace Tgstation.Server.Host.Components.Deployment this.repositoryManager = repositoryManager ?? throw new ArgumentNullException(nameof(repositoryManager)); this.remoteDeploymentManagerFactory = remoteDeploymentManagerFactory ?? throw new ArgumentNullException(nameof(remoteDeploymentManagerFactory)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - sessionConfiguration = sessionConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(sessionConfigurationOptions)); + this.sessionConfiguration = sessionConfiguration ?? throw new ArgumentNullException(nameof(sessionConfiguration)); this.metadata = metadata ?? throw new ArgumentNullException(nameof(metadata)); deploymentLock = new object(); diff --git a/src/Tgstation.Server.Host/Components/InstanceFactory.cs b/src/Tgstation.Server.Host/Components/InstanceFactory.cs index 32f05929c7..a07f86e9c9 100644 --- a/src/Tgstation.Server.Host/Components/InstanceFactory.cs +++ b/src/Tgstation.Server.Host/Components/InstanceFactory.cs @@ -144,6 +144,11 @@ namespace Tgstation.Server.Host.Components /// readonly GeneralConfiguration generalConfiguration; + /// + /// The for the . + /// + readonly SessionConfiguration sessionConfiguration; + /// /// Initializes a new instance of the class. /// @@ -170,6 +175,7 @@ namespace Tgstation.Server.Host.Components /// The value of . /// The value of . /// The containing the value of . + /// The containing the value of . public InstanceFactory( IIOManager ioManager, IDatabaseContextFactory databaseContextFactory, @@ -193,7 +199,8 @@ namespace Tgstation.Server.Host.Components IFileTransferTicketProvider fileTransferService, IGitRemoteFeaturesFactory gitRemoteFeaturesFactory, IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory, - IOptions generalConfigurationOptions) + IOptions generalConfigurationOptions, + IOptions sessionConfigurationOptions) { this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager)); this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory)); @@ -218,6 +225,7 @@ namespace Tgstation.Server.Host.Components this.gitRemoteFeaturesFactory = gitRemoteFeaturesFactory ?? throw new ArgumentNullException(nameof(gitRemoteFeaturesFactory)); this.remoteDeploymentManagerFactory = remoteDeploymentManagerFactory ?? throw new ArgumentNullException(nameof(remoteDeploymentManagerFactory)); generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions)); + sessionConfiguration = sessionConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(sessionConfigurationOptions)); } /// @@ -276,6 +284,7 @@ namespace Tgstation.Server.Host.Components eventConsumer, loggerFactory, loggerFactory.CreateLogger(), + sessionConfiguration, metadata); var dmbFactory = new DmbFactory( @@ -320,6 +329,7 @@ namespace Tgstation.Server.Host.Components repoManager, remoteDeploymentManagerFactory, loggerFactory.CreateLogger(), + sessionConfiguration, metadata); instance = new Instance( diff --git a/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs b/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs index 733bcdb704..9e10b71cb5 100644 --- a/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs +++ b/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs @@ -7,7 +7,6 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; using Tgstation.Server.Api; using Tgstation.Server.Api.Models; @@ -177,7 +176,7 @@ namespace Tgstation.Server.Host.Components.Session /// The value of . /// The value of . /// The value of . - /// The containing the value of . + /// The value of . /// The value of . public SessionControllerFactory( IProcessExecutor processExecutor, @@ -194,7 +193,7 @@ namespace Tgstation.Server.Host.Components.Session IEventConsumer eventConsumer, ILoggerFactory loggerFactory, ILogger logger, - IOptions sessionConfigurationOptions, + SessionConfiguration sessionConfiguration, Api.Models.Instance instance) { this.processExecutor = processExecutor ?? throw new ArgumentNullException(nameof(processExecutor)); @@ -211,7 +210,7 @@ namespace Tgstation.Server.Host.Components.Session this.eventConsumer = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer)); this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - sessionConfiguration = sessionConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(sessionConfigurationOptions)); + this.sessionConfiguration = sessionConfiguration ?? throw new ArgumentNullException(nameof(sessionConfiguration)); this.instance = instance ?? throw new ArgumentNullException(nameof(instance)); } From 5abd0d75e470aa27708584dd3fcb3b48d022fc62 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Wed, 27 Oct 2021 14:36:41 -0400 Subject: [PATCH 7/8] CA1502 my beloved --- src/Tgstation.Server.Host/Components/InstanceFactory.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Tgstation.Server.Host/Components/InstanceFactory.cs b/src/Tgstation.Server.Host/Components/InstanceFactory.cs index a07f86e9c9..9bf0652924 100644 --- a/src/Tgstation.Server.Host/Components/InstanceFactory.cs +++ b/src/Tgstation.Server.Host/Components/InstanceFactory.cs @@ -149,6 +149,7 @@ namespace Tgstation.Server.Host.Components /// readonly SessionConfiguration sessionConfiguration; +#pragma warning disable CA1502 // TODO: Decomplexify /// /// Initializes a new instance of the class. /// @@ -227,6 +228,7 @@ namespace Tgstation.Server.Host.Components generalConfiguration = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions)); sessionConfiguration = sessionConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(sessionConfigurationOptions)); } +#pragma warning restore CA1502 /// #pragma warning disable CA1506 // TODO: Decomplexify From 1091f049083e8344bd26ed3a9adb01d98db5109a Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Wed, 27 Oct 2021 21:03:01 -0400 Subject: [PATCH 8/8] Package updates --- .../.config/dotnet-tools.json | 2 +- .../Tgstation.Server.Host.csproj | 26 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Tgstation.Server.Host/.config/dotnet-tools.json b/src/Tgstation.Server.Host/.config/dotnet-tools.json index 0e67acb789..071984940d 100644 --- a/src/Tgstation.Server.Host/.config/dotnet-tools.json +++ b/src/Tgstation.Server.Host/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "dotnet-ef": { - "version": "3.1.18", + "version": "3.1.20", "commands": [ "dotnet-ef" ] diff --git a/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj b/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj index 4262179a12..458c311de2 100644 --- a/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj +++ b/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj @@ -69,25 +69,25 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + - - + + @@ -97,13 +97,13 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - + - +