From 071de7b466e18d2d10e611e90b27c50fa3afc286 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Sat, 23 Dec 2023 22:08:30 -0500 Subject: [PATCH] Nullify `SessionPersistor` --- .../Components/Session/SessionPersistor.cs | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Session/SessionPersistor.cs b/src/Tgstation.Server.Host/Components/Session/SessionPersistor.cs index 2cd093c3ee..a916ea792b 100644 --- a/src/Tgstation.Server.Host/Components/Session/SessionPersistor.cs +++ b/src/Tgstation.Server.Host/Components/Session/SessionPersistor.cs @@ -8,12 +8,11 @@ using Microsoft.Extensions.Logging; using Tgstation.Server.Host.Components.Deployment; using Tgstation.Server.Host.Database; +using Tgstation.Server.Host.Models; using Tgstation.Server.Host.System; using Z.EntityFramework.Plus; -#nullable disable - namespace Tgstation.Server.Host.Components.Session { /// @@ -77,8 +76,8 @@ namespace Tgstation.Server.Host.Components.Session var dbReattachInfo = new Models.ReattachInformation(reattachInformation.AccessIdentifier) { - CompileJobId = reattachInformation.Dmb.CompileJob.Id.Value, - InitialCompileJobId = reattachInformation.InitialDmb?.CompileJob.Id.Value, + CompileJobId = reattachInformation.Dmb.CompileJob.Require(x => x.Id), + InitialCompileJobId = reattachInformation.InitialDmb?.CompileJob.Require(x => x.Id), Port = reattachInformation.Port, ProcessId = reattachInformation.ProcessId, RebootState = reattachInformation.RebootState, @@ -89,7 +88,7 @@ namespace Tgstation.Server.Host.Components.Session db.ReattachInformations.Add(dbReattachInfo); await db.Save(cancellationToken); - reattachInformation.Id = dbReattachInfo.Id.Value; + reattachInformation.Id = dbReattachInfo.Id!.Value; logger.LogDebug("Saved reattach information: {info}", reattachInformation); }); @@ -110,8 +109,8 @@ namespace Tgstation.Server.Host.Components.Session db.ReattachInformations.Attach(dbReattachInfo); dbReattachInfo.AccessIdentifier = reattachInformation.AccessIdentifier; - dbReattachInfo.CompileJobId = reattachInformation.Dmb.CompileJob.Id.Value; - dbReattachInfo.InitialCompileJobId = reattachInformation.InitialDmb?.CompileJob.Id.Value; + dbReattachInfo.CompileJobId = reattachInformation.Dmb.CompileJob.Require(x => x.Id); + dbReattachInfo.InitialCompileJobId = reattachInformation.InitialDmb?.CompileJob.Require(x => x.Id); dbReattachInfo.Port = reattachInformation.Port; dbReattachInfo.ProcessId = reattachInformation.ProcessId; dbReattachInfo.RebootState = reattachInformation.RebootState; @@ -124,9 +123,9 @@ namespace Tgstation.Server.Host.Components.Session }); /// - public async ValueTask Load(CancellationToken cancellationToken) + public async ValueTask Load(CancellationToken cancellationToken) { - Models.ReattachInformation result = null; + Models.ReattachInformation? result = null; TimeSpan? topicTimeout = null; async ValueTask KillProcess(Models.ReattachInformation reattachInfo) @@ -160,19 +159,19 @@ namespace Tgstation.Server.Host.Components.Session var dbReattachInfos = await db .ReattachInformations .AsQueryable() - .Where(x => x.CompileJob.Job.Instance.Id == metadata.Id) + .Where(x => x.CompileJob!.Job.Instance!.Id == metadata.Id) .Include(x => x.CompileJob) .Include(x => x.InitialCompileJob) .ToListAsync(cancellationToken); result = dbReattachInfos.FirstOrDefault(); - if (result == default) + if (result == null) return; var timeoutMilliseconds = await db .Instances .AsQueryable() .Where(x => x.Id == metadata.Id) - .Select(x => x.DreamDaemonSettings.TopicRequestTimeout) + .Select(x => x.DreamDaemonSettings!.TopicRequestTimeout) .FirstOrDefaultAsync(cancellationToken); if (timeoutMilliseconds == default) @@ -207,7 +206,7 @@ namespace Tgstation.Server.Host.Components.Session return null; } - var dmb = await dmbFactory.FromCompileJob(result.CompileJob, cancellationToken); + var dmb = await dmbFactory.FromCompileJob(result!.CompileJob!, cancellationToken); if (dmb == null) { logger.LogError("Unable to reattach! Could not load .dmb!"); @@ -225,7 +224,7 @@ namespace Tgstation.Server.Host.Components.Session return null; } - IDmbProvider initialDmb = null; + IDmbProvider? initialDmb = null; if (result.InitialCompileJob != null) { logger.LogTrace("Loading initial compile job..."); @@ -266,7 +265,7 @@ namespace Tgstation.Server.Host.Components.Session var baseQuery = databaseContext .ReattachInformations .AsQueryable() - .Where(x => x.CompileJob.Job.Instance.Id == metadata.Id); + .Where(x => x.CompileJob!.Job.Instance!.Id == metadata.Id); if (instant) await baseQuery