Switch all DateTimeOffset.Now references to UtcNow

This commit is contained in:
Cyberboss
2020-12-27 20:21:30 -05:00
parent 09b049a119
commit f5fcf331d3
21 changed files with 43 additions and 43 deletions
@@ -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,
+3 -3
View File
@@ -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