mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-23 13:07:07 +01:00
Jobs can start will null IInstanceCores
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user