mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-07-13 00:53:20 +01:00
Switch all DateTimeOffset.Now references to UtcNow
This commit is contained in:
@@ -31,7 +31,7 @@ namespace Tgstation.Server.Client
|
||||
|
||||
var secondsString = values.FirstOrDefault();
|
||||
if (UInt32.TryParse(secondsString, out var seconds))
|
||||
RetryAfter = DateTimeOffset.Now.AddSeconds(seconds);
|
||||
RetryAfter = DateTimeOffset.UtcNow.AddSeconds(seconds);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -461,7 +461,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
var completionString = errorMessage == null ? "Succeeded" : "Failed";
|
||||
builder.Footer.Text = completionString;
|
||||
builder.Color = errorMessage == null ? Color.Green : Color.Red;
|
||||
builder.Timestamp = DateTimeOffset.Now;
|
||||
builder.Timestamp = DateTimeOffset.UtcNow;
|
||||
builder.Description = errorMessage == null
|
||||
? "The deployment completed successfully and will be available at the next server reboot."
|
||||
: "The deployment failed.";
|
||||
|
||||
@@ -619,7 +619,7 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
? byondVersion.ToString()
|
||||
: $"{byondVersion.Major}.{byondVersion.Minor}",
|
||||
estimatedCompletionTime.HasValue
|
||||
? $" ETA: {estimatedCompletionTime - DateTimeOffset.Now}"
|
||||
? $" ETA: {estimatedCompletionTime - DateTimeOffset.UtcNow}"
|
||||
: String.Empty),
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
|
||||
|
||||
@@ -270,7 +270,7 @@ namespace Tgstation.Server.Host.Components.Deployment
|
||||
// It constitutes an API violation if it's returned by the DreamDaemonController so just set it here
|
||||
// Bit of a hack, but it works out to be nearly if not the same value that's put in the DB
|
||||
logger.LogTrace("Setting missing StoppedAt for CompileJob.Job #{0}...", compileJob.Job.Id);
|
||||
compileJob.Job.StoppedAt = DateTimeOffset.Now;
|
||||
compileJob.Job.StoppedAt = DateTimeOffset.UtcNow;
|
||||
}
|
||||
|
||||
var providerSubmitted = false;
|
||||
|
||||
@@ -807,7 +807,7 @@ namespace Tgstation.Server.Host.Components.Deployment
|
||||
currentChatCallback = chatManager.QueueDeploymentMessage(
|
||||
revisionInformation,
|
||||
byondLock.Version,
|
||||
DateTimeOffset.Now + estimatedDuration,
|
||||
DateTimeOffset.UtcNow + estimatedDuration,
|
||||
repository.RemoteRepositoryOwner,
|
||||
repository.RemoteRepositoryName,
|
||||
localCommitExistsOnRemote);
|
||||
|
||||
@@ -293,7 +293,7 @@ namespace Tgstation.Server.Host.Components.Repository
|
||||
|
||||
MergeResult result = null;
|
||||
|
||||
var sig = new Signature(new Identity(committerName, committerEmail), DateTimeOffset.Now);
|
||||
var sig = new Signature(new Identity(committerName, committerEmail), DateTimeOffset.UtcNow);
|
||||
await Task.Factory.StartNew(() =>
|
||||
{
|
||||
try
|
||||
@@ -576,7 +576,7 @@ namespace Tgstation.Server.Host.Components.Repository
|
||||
trackedBranch.FriendlyName,
|
||||
committerName,
|
||||
committerEmail);
|
||||
result = libGitRepo.Merge(trackedBranch, new Signature(committerName, committerEmail, DateTimeOffset.Now), new MergeOptions
|
||||
result = libGitRepo.Merge(trackedBranch, new Signature(committerName, committerEmail, DateTimeOffset.UtcNow), new MergeOptions
|
||||
{
|
||||
CommitOnSuccess = true,
|
||||
FailOnConflict = true,
|
||||
@@ -748,7 +748,7 @@ namespace Tgstation.Server.Host.Components.Repository
|
||||
new Signature(
|
||||
DefaultCommitterName,
|
||||
DefaultCommitterEmail,
|
||||
DateTimeOffset.Now),
|
||||
DateTimeOffset.UtcNow),
|
||||
new MergeOptions
|
||||
{
|
||||
FastForwardStrategy = FastForwardStrategy.FastForwardOnly,
|
||||
|
||||
@@ -300,7 +300,7 @@ namespace Tgstation.Server.Host.Components.Session
|
||||
bool reattached,
|
||||
bool apiValidate)
|
||||
{
|
||||
var startTime = DateTimeOffset.Now;
|
||||
var startTime = DateTimeOffset.UtcNow;
|
||||
var useBridgeRequestForLaunchResult = !reattached && (apiValidate || DMApiAvailable);
|
||||
var startupTask = useBridgeRequestForLaunchResult
|
||||
? initialBridgeRequestTcs.Task
|
||||
@@ -320,7 +320,7 @@ namespace Tgstation.Server.Host.Components.Session
|
||||
var result = new LaunchResult
|
||||
{
|
||||
ExitCode = process.Lifetime.IsCompleted ? (int?)await process.Lifetime.ConfigureAwait(false) : null,
|
||||
StartupTime = startupTask.IsCompleted ? (TimeSpan?)(DateTimeOffset.Now - startTime) : null
|
||||
StartupTime = startupTask.IsCompleted ? (TimeSpan?)(DateTimeOffset.UtcNow - startTime) : null
|
||||
};
|
||||
|
||||
logger.LogTrace("Launch result: {0}", result);
|
||||
|
||||
@@ -980,7 +980,7 @@ namespace Tgstation.Server.Host.Components.Watchdog
|
||||
var dumpFileName = diagnosticsIOManager.ResolvePath(
|
||||
diagnosticsIOManager.ConcatPath(
|
||||
DumpDirectory,
|
||||
$"DreamDaemon-{DateTimeOffset.Now.ToFileStamp()}.dmp"));
|
||||
$"DreamDaemon-{DateTimeOffset.UtcNow.ToFileStamp()}.dmp"));
|
||||
|
||||
var session = GetActiveController();
|
||||
if (session?.Lifetime.IsCompleted != false)
|
||||
|
||||
@@ -143,7 +143,7 @@ namespace Tgstation.Server.Host.Controllers
|
||||
throw new ArgumentNullException(nameof(rateLimitException));
|
||||
|
||||
Logger.LogWarning(rateLimitException, "Exceeded GitHub rate limit!");
|
||||
var secondsString = Math.Ceiling((rateLimitException.Reset - DateTimeOffset.Now).TotalSeconds).ToString(CultureInfo.InvariantCulture);
|
||||
var secondsString = Math.Ceiling((rateLimitException.Reset - DateTimeOffset.UtcNow).TotalSeconds).ToString(CultureInfo.InvariantCulture);
|
||||
Response.Headers.Add(HeaderNames.RetryAfter, secondsString);
|
||||
return StatusCode(HttpStatusCode.TooManyRequests, new ErrorMessage(ErrorCode.GitHubApiRateLimit));
|
||||
}
|
||||
|
||||
@@ -815,7 +815,7 @@ namespace Tgstation.Server.Host.Controllers
|
||||
{
|
||||
Author = ex.Message,
|
||||
BodyAtMerge = ex.Message,
|
||||
MergedAt = DateTimeOffset.Now,
|
||||
MergedAt = DateTimeOffset.UtcNow,
|
||||
TitleAtMerge = ex.Message,
|
||||
Comment = I.Comment,
|
||||
Number = I.Number,
|
||||
|
||||
@@ -250,7 +250,7 @@ namespace Tgstation.Server.Host.Controllers
|
||||
if (model.Enabled.HasValue)
|
||||
{
|
||||
if (originalUser.Enabled.Value && !model.Enabled.Value)
|
||||
originalUser.LastPasswordUpdate = DateTimeOffset.Now;
|
||||
originalUser.LastPasswordUpdate = DateTimeOffset.UtcNow;
|
||||
|
||||
originalUser.Enabled = model.Enabled.Value;
|
||||
}
|
||||
@@ -431,7 +431,7 @@ namespace Tgstation.Server.Host.Controllers
|
||||
|
||||
return new Models.User
|
||||
{
|
||||
CreatedAt = DateTimeOffset.Now,
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
CreatedBy = AuthenticationContext.User,
|
||||
Enabled = model.Enabled ?? false,
|
||||
PermissionSet = permissionSet,
|
||||
|
||||
@@ -83,7 +83,7 @@ namespace Tgstation.Server.Host.Database
|
||||
bool alreadyExists = tgsUser != null;
|
||||
tgsUser ??= new User()
|
||||
{
|
||||
CreatedAt = DateTimeOffset.Now,
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
CanonicalName = User.CanonicalizeName(User.TgsSystemUserName),
|
||||
};
|
||||
|
||||
@@ -111,7 +111,7 @@ namespace Tgstation.Server.Host.Database
|
||||
AdministrationRights = RightsHelper.AllRights<AdministrationRights>(),
|
||||
InstanceManagerRights = RightsHelper.AllRights<InstanceManagerRights>(),
|
||||
},
|
||||
CreatedAt = DateTimeOffset.Now,
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
Name = Api.Models.User.AdminName,
|
||||
CanonicalName = User.CanonicalizeName(Api.Models.User.AdminName),
|
||||
Enabled = true,
|
||||
|
||||
@@ -147,7 +147,7 @@ namespace Tgstation.Server.Host.Jobs
|
||||
};
|
||||
|
||||
databaseContext.Jobs.Attach(attachedJob);
|
||||
attachedJob.StoppedAt = DateTimeOffset.Now;
|
||||
attachedJob.StoppedAt = DateTimeOffset.UtcNow;
|
||||
attachedJob.ExceptionDetails = job.ExceptionDetails;
|
||||
attachedJob.ErrorCode = job.ErrorCode;
|
||||
attachedJob.Cancelled = job.Cancelled;
|
||||
@@ -177,7 +177,7 @@ namespace Tgstation.Server.Host.Jobs
|
||||
if (operation == null)
|
||||
throw new ArgumentNullException(nameof(operation));
|
||||
|
||||
job.StartedAt = DateTimeOffset.Now;
|
||||
job.StartedAt = DateTimeOffset.UtcNow;
|
||||
job.Cancelled = false;
|
||||
|
||||
job.Instance = new Models.Instance
|
||||
@@ -238,7 +238,7 @@ namespace Tgstation.Server.Host.Jobs
|
||||
var job = new Job { Id = I };
|
||||
databaseContext.Jobs.Attach(job);
|
||||
job.Cancelled = true;
|
||||
job.StoppedAt = DateTimeOffset.Now;
|
||||
job.StoppedAt = DateTimeOffset.UtcNow;
|
||||
}
|
||||
|
||||
await databaseContext.Save(cancellationToken).ConfigureAwait(false);
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace Tgstation.Server.Host.Security
|
||||
throw new ArgumentNullException(nameof(newPassword));
|
||||
user.PasswordHash = passwordHasher.HashPassword(user, newPassword);
|
||||
if (!newUser)
|
||||
user.LastPasswordUpdate = DateTimeOffset.Now;
|
||||
user.LastPasswordUpdate = DateTimeOffset.UtcNow;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@@ -41,9 +41,9 @@ namespace Tgstation.Server.Host.Security
|
||||
|
||||
if (onExpiry == null)
|
||||
throw new ArgumentNullException(nameof(onExpiry));
|
||||
var now = DateTimeOffset.Now;
|
||||
var now = DateTimeOffset.UtcNow;
|
||||
if (expiry < now)
|
||||
throw new ArgumentOutOfRangeException(nameof(expiry), expiry, "expiry must be greater than DateTimeOffset.Now!");
|
||||
throw new ArgumentOutOfRangeException(nameof(expiry), expiry, "expiry must be greater than DateTimeOffset.UtcNow!");
|
||||
|
||||
cancellationTokenSource = new CancellationTokenSource();
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace Tgstation.Server.Host.Security.OAuth
|
||||
/// <inheritdoc />
|
||||
public override async Task<OAuthProviderInfo> GetProviderInfo(CancellationToken cancellationToken)
|
||||
{
|
||||
var expiredSessions = sessions.RemoveAll(x => x.Item2.AddMinutes(SessionRetentionMinutes) < DateTimeOffset.Now);
|
||||
var expiredSessions = sessions.RemoveAll(x => x.Item2.AddMinutes(SessionRetentionMinutes) < DateTimeOffset.UtcNow);
|
||||
if (expiredSessions > 0)
|
||||
Logger.LogTrace("Expired {0} sessions", expiredSessions);
|
||||
|
||||
@@ -86,7 +86,7 @@ namespace Tgstation.Server.Host.Security.OAuth
|
||||
sessions.Add(
|
||||
Tuple.Create(
|
||||
newSession,
|
||||
DateTimeOffset.Now));
|
||||
DateTimeOffset.UtcNow));
|
||||
return new OAuthProviderInfo
|
||||
{
|
||||
ClientId = newSession.SessionPublicToken,
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace Tgstation.Server.Host.Security
|
||||
if (user == null)
|
||||
throw new ArgumentNullException(nameof(user));
|
||||
|
||||
var now = DateTimeOffset.Now;
|
||||
var now = DateTimeOffset.UtcNow;
|
||||
var nowUnix = now.ToUnixTimeSeconds();
|
||||
|
||||
// this prevents validation conflicts down the line
|
||||
|
||||
@@ -728,7 +728,7 @@ namespace Tgstation.Server.Host.Swarm
|
||||
{
|
||||
logger.LogInformation("Sucessfully registered with ID {0}", requestedRegistrationId);
|
||||
controllerRegistration = requestedRegistrationId;
|
||||
lastControllerHealthCheck = DateTimeOffset.Now;
|
||||
lastControllerHealthCheck = DateTimeOffset.UtcNow;
|
||||
return SwarmRegistrationResult.Success;
|
||||
}
|
||||
|
||||
@@ -906,7 +906,7 @@ namespace Tgstation.Server.Host.Swarm
|
||||
var delay = swarmController
|
||||
? TimeSpan.FromMinutes(ControllerHealthCheckIntervalMinutes)
|
||||
: lastControllerHealthCheck.HasValue
|
||||
? (lastControllerHealthCheck.Value.AddMinutes(NodeHealthCheckIntervalMinutes) - DateTimeOffset.Now)
|
||||
? (lastControllerHealthCheck.Value.AddMinutes(NodeHealthCheckIntervalMinutes) - DateTimeOffset.UtcNow)
|
||||
: TimeSpan.FromMinutes(NodeHealthCheckIntervalMinutes);
|
||||
await asyncDelayer.Delay(
|
||||
delay,
|
||||
@@ -921,7 +921,7 @@ namespace Tgstation.Server.Host.Swarm
|
||||
continue; // unregistered
|
||||
}
|
||||
|
||||
if ((DateTimeOffset.Now - lastControllerHealthCheck.Value).TotalMinutes < NodeHealthCheckIntervalMinutes)
|
||||
if ((DateTimeOffset.UtcNow - lastControllerHealthCheck.Value).TotalMinutes < NodeHealthCheckIntervalMinutes)
|
||||
{
|
||||
logger.LogTrace("Controller seems to be active, skipping health check.");
|
||||
continue;
|
||||
@@ -960,7 +960,7 @@ namespace Tgstation.Server.Host.Swarm
|
||||
if (registrationId != controllerRegistration)
|
||||
return false;
|
||||
|
||||
lastControllerHealthCheck = DateTimeOffset.Now;
|
||||
lastControllerHealthCheck = DateTimeOffset.UtcNow;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -127,12 +127,12 @@ namespace Tgstation.Server.Host.Transfer
|
||||
|
||||
async Task ExpireAsync()
|
||||
{
|
||||
var expireAt = DateTimeOffset.Now + TimeSpan.FromMinutes(TicketValidityMinutes);
|
||||
var expireAt = DateTimeOffset.UtcNow + TimeSpan.FromMinutes(TicketValidityMinutes);
|
||||
try
|
||||
{
|
||||
await oldExpireTask.WithToken(disposeCts.Token).ConfigureAwait(false);
|
||||
|
||||
var now = DateTimeOffset.Now;
|
||||
var now = DateTimeOffset.UtcNow;
|
||||
if (now < expireAt)
|
||||
await asyncDelayer.Delay(expireAt - now, disposeCts.Token).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Moq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -19,7 +19,7 @@ namespace Tgstation.Server.Client.Components.Tests
|
||||
var example = new Job
|
||||
{
|
||||
Id = 347,
|
||||
StartedAt = DateTimeOffset.Now
|
||||
StartedAt = DateTimeOffset.UtcNow
|
||||
};
|
||||
|
||||
var inst = new Instance
|
||||
|
||||
@@ -122,7 +122,7 @@ namespace Tgstation.Server.Tests
|
||||
|
||||
async Task<IServerClient> CreateAdminClient(Uri url, CancellationToken cancellationToken)
|
||||
{
|
||||
var giveUpAt = DateTimeOffset.Now.AddSeconds(60);
|
||||
var giveUpAt = DateTimeOffset.UtcNow.AddSeconds(60);
|
||||
for(var I = 1; ; ++I)
|
||||
{
|
||||
try
|
||||
@@ -139,14 +139,14 @@ namespace Tgstation.Server.Tests
|
||||
catch (HttpRequestException)
|
||||
{
|
||||
//migrating, to be expected
|
||||
if (DateTimeOffset.Now > giveUpAt)
|
||||
if (DateTimeOffset.UtcNow > giveUpAt)
|
||||
throw;
|
||||
await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
|
||||
}
|
||||
catch (ServiceUnavailableException)
|
||||
{
|
||||
// migrating, to be expected
|
||||
if (DateTimeOffset.Now > giveUpAt)
|
||||
if (DateTimeOffset.UtcNow > giveUpAt)
|
||||
throw;
|
||||
await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
|
||||
}
|
||||
@@ -227,7 +227,7 @@ namespace Tgstation.Server.Tests
|
||||
var user = new Host.Models.User
|
||||
{
|
||||
Name = TestUserName,
|
||||
CreatedAt = DateTimeOffset.Now,
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
OAuthConnections = new List<Host.Models.OAuthConnection>(),
|
||||
CanonicalName = Host.Models.User.CanonicalizeName(TestUserName),
|
||||
Enabled = false,
|
||||
@@ -350,7 +350,7 @@ namespace Tgstation.Server.Tests
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"[{DateTimeOffset.Now}] TEST ERROR: {ex}");
|
||||
Console.WriteLine($"[{DateTimeOffset.UtcNow}] TEST ERROR: {ex}");
|
||||
serverCts.Cancel();
|
||||
throw;
|
||||
}
|
||||
@@ -396,7 +396,7 @@ namespace Tgstation.Server.Tests
|
||||
await Task.WhenAny(serverTask, Task.Delay(TimeSpan.FromMinutes(1), cancellationToken));
|
||||
Assert.IsTrue(serverTask.IsCompleted);
|
||||
|
||||
var preStartupTime = DateTimeOffset.Now;
|
||||
var preStartupTime = DateTimeOffset.UtcNow;
|
||||
|
||||
serverTask = server.Run(cancellationToken);
|
||||
using (var adminClient = await CreateAdminClient(server.Url, cancellationToken))
|
||||
@@ -440,7 +440,7 @@ namespace Tgstation.Server.Tests
|
||||
await Task.WhenAny(serverTask, Task.Delay(TimeSpan.FromMinutes(1), cancellationToken));
|
||||
Assert.IsTrue(serverTask.IsCompleted);
|
||||
|
||||
preStartupTime = DateTimeOffset.Now;
|
||||
preStartupTime = DateTimeOffset.UtcNow;
|
||||
serverTask = server.Run(cancellationToken);
|
||||
using (var adminClient = await CreateAdminClient(server.Url, cancellationToken))
|
||||
{
|
||||
@@ -481,12 +481,12 @@ namespace Tgstation.Server.Tests
|
||||
}
|
||||
catch(ApiException ex)
|
||||
{
|
||||
Console.WriteLine($"[{DateTimeOffset.Now}] TEST ERROR: {ex.ErrorCode}: {ex.Message}\n{ex.AdditionalServerData}");
|
||||
Console.WriteLine($"[{DateTimeOffset.UtcNow}] TEST ERROR: {ex.ErrorCode}: {ex.Message}\n{ex.AdditionalServerData}");
|
||||
throw;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"[{DateTimeOffset.Now}] TEST ERROR: {ex}");
|
||||
Console.WriteLine($"[{DateTimeOffset.UtcNow}] TEST ERROR: {ex}");
|
||||
throw;
|
||||
}
|
||||
finally
|
||||
|
||||
Reference in New Issue
Block a user