mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-07-16 02:22:52 +01:00
Fix swarm updates initiated from the controller failing
This commit is contained in:
@@ -535,6 +535,11 @@ namespace Tgstation.Server.Host.Swarm
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogTrace("No need to re-initiate update as it originated here on the swarm controller");
|
||||
updateCommitTcs = new TaskCompletionSource<bool>();
|
||||
}
|
||||
|
||||
logger.LogDebug("Prepared for update to version {0}", version);
|
||||
}
|
||||
|
||||
@@ -276,11 +276,36 @@ namespace Tgstation.Server.Tests
|
||||
|
||||
var updatedAssemblyVersion = FileVersionInfo.GetVersionInfo(updatedAssemblyPath);
|
||||
Assert.AreEqual(testUpdateVersion, Version.Parse(updatedAssemblyVersion.FileVersion).Semver());
|
||||
Directory.Delete(server.UpdatePath, true);
|
||||
}
|
||||
|
||||
CheckServerUpdated(controller);
|
||||
CheckServerUpdated(node1);
|
||||
CheckServerUpdated(node2);
|
||||
|
||||
// regression: test it also works from the controller
|
||||
serverTask = Task.WhenAll(
|
||||
node1.Run(cancellationToken),
|
||||
node2.Run(cancellationToken),
|
||||
controller.Run(cancellationToken));
|
||||
|
||||
using var controllerClient2 = await CreateAdminClient(controller.Url, cancellationToken);
|
||||
using var node1Client2 = await CreateAdminClient(node1.Url, cancellationToken);
|
||||
using var node2Client2 = await CreateAdminClient(node2.Url, cancellationToken);
|
||||
|
||||
await controllerClient2.Administration.Update(
|
||||
new Administration
|
||||
{
|
||||
NewVersion = testUpdateVersion
|
||||
},
|
||||
cancellationToken);
|
||||
|
||||
await Task.WhenAny(Task.Delay(TimeSpan.FromMinutes(2)), serverTask);
|
||||
Assert.IsTrue(serverTask.IsCompleted);
|
||||
|
||||
CheckServerUpdated(controller);
|
||||
CheckServerUpdated(node1);
|
||||
CheckServerUpdated(node2);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user