Jobs can start will null IInstanceCores

This commit is contained in:
Jordan Dominion
2023-12-20 23:55:08 -05:00
parent 6d435b7fdd
commit d5b69657f9
7 changed files with 11 additions and 13 deletions
@@ -266,7 +266,7 @@ namespace Tgstation.Server.Host.Components
/// <returns>A <see cref="ValueTask"/> representing the running operation.</returns>
#pragma warning disable CA1502 // Cyclomatic complexity
ValueTask RepositoryAutoUpdateJob(
IInstanceCore core,
IInstanceCore? core,
IDatabaseContextFactory databaseContextFactory,
Job job,
JobProgressReporter progressReporter,
@@ -90,7 +90,7 @@ namespace Tgstation.Server.Host.Controllers
var job = Job.Create(JobCode.WatchdogLaunch, AuthenticationContext.User, Instance, DreamDaemonRights.Shutdown);
await jobManager.RegisterOperation(
job,
(core, databaseContextFactory, paramJob, progressHandler, innerCt) => core.Watchdog.Launch(innerCt),
(core, databaseContextFactory, paramJob, progressHandler, innerCt) => core!.Watchdog.Launch(innerCt),
cancellationToken);
return Accepted(job.ToApi());
});
@@ -271,7 +271,7 @@ namespace Tgstation.Server.Host.Controllers
await jobManager.RegisterOperation(
job,
(core, paramJob, databaseContextFactory, progressReporter, ct) => core.Watchdog.Restart(false, ct),
(core, paramJob, databaseContextFactory, progressReporter, ct) => core!.Watchdog.Restart(false, ct),
cancellationToken);
return Accepted(job.ToApi());
});
@@ -297,7 +297,7 @@ namespace Tgstation.Server.Host.Controllers
await jobManager.RegisterOperation(
job,
(core, databaseContextFactory, paramJob, progressReporter, ct) => core.Watchdog.CreateDump(ct),
(core, databaseContextFactory, paramJob, progressReporter, ct) => core!.Watchdog.CreateDump(ct),
cancellationToken);
return Accepted(job.ToApi());
});
@@ -151,7 +151,7 @@ namespace Tgstation.Server.Host.Controllers
await jobManager.RegisterOperation(
job,
(core, databaseContextFactory, paramJob, progressReporter, jobCancellationToken)
=> core.DreamMaker.DeploymentProcess(paramJob, databaseContextFactory, progressReporter, jobCancellationToken),
=> core!.DreamMaker.DeploymentProcess(paramJob, databaseContextFactory, progressReporter, jobCancellationToken),
cancellationToken);
return Accepted(job.ToApi());
}
@@ -245,7 +245,7 @@ namespace Tgstation.Server.Host.Controllers
}
await using (zipFileStream)
await core.EngineManager.ChangeVersion(
await core!.EngineManager.ChangeVersion(
progressHandler,
model.EngineVersion,
zipFileStream,
@@ -329,7 +329,7 @@ namespace Tgstation.Server.Host.Controllers
await jobManager.RegisterOperation(
job,
(instanceCore, databaseContextFactory, job, progressReporter, jobCancellationToken)
=> instanceCore.EngineManager.DeleteVersion(progressReporter, engineVersion, jobCancellationToken),
=> instanceCore!.EngineManager.DeleteVersion(progressReporter, engineVersion, jobCancellationToken),
cancellationToken);
var apiResponse = job.ToApi();
@@ -151,7 +151,7 @@ namespace Tgstation.Server.Host.Controllers
job,
async (core, databaseContextFactory, paramJob, progressReporter, ct) =>
{
var repoManager = core.RepositoryManager;
var repoManager = core!.RepositoryManager;
using var repos = await repoManager.CloneRepository(
origin,
cloneBranch,
@@ -217,7 +217,7 @@ namespace Tgstation.Server.Host.Controllers
var api = currentModel.ToApi();
await jobManager.RegisterOperation(
job,
(core, databaseContextFactory, paramJob, progressReporter, ct) => core.RepositoryManager.DeleteRepository(ct),
(core, databaseContextFactory, paramJob, progressReporter, ct) => core!.RepositoryManager.DeleteRepository(ct),
cancellationToken);
api.ActiveJob = job.ToApi();
return Accepted(api);
@@ -17,7 +17,7 @@ namespace Tgstation.Server.Host.Jobs
/// <param name="cancellationToken">The <see cref="CancellationToken"/> for the operation.</param>
/// <returns>A <see cref="ValueTask"/> representing the running operation.</returns>
public delegate ValueTask JobEntrypoint(
IInstanceCore instance,
IInstanceCore? instance,
IDatabaseContextFactory databaseContextFactory,
Job job,
JobProgressReporter progressReporter,
+1 -3
View File
@@ -460,10 +460,8 @@ namespace Tgstation.Server.Host.Jobs
QueueHubUpdate(job.ToApi(), false);
logger.LogTrace("Starting job...");
var instanceCore = instanceCoreProvider.GetInstance(job.Instance!)
?? throw new JobException("Could not retrieve instance core for job!");
await operation(
instanceCore,
instanceCoreProvider.GetInstance(job.Instance!),
databaseContextFactory,
job,
new JobProgressReporter(