diff --git a/src/Runner.Common/ConfigurationStore.cs b/src/Runner.Common/ConfigurationStore.cs index ae9f4cc7ef7..8528e5095df 100644 --- a/src/Runner.Common/ConfigurationStore.cs +++ b/src/Runner.Common/ConfigurationStore.cs @@ -18,7 +18,7 @@ public sealed class RunnerSettings private bool? _isHostedServer; [DataMember(EmitDefaultValue = false)] - public int AgentId { get; set; } + public ulong AgentId { get; set; } [DataMember(EmitDefaultValue = false)] public string AgentName { get; set; } diff --git a/src/Runner.Common/RunnerServer.cs b/src/Runner.Common/RunnerServer.cs index 620b893e830..34da3be6310 100644 --- a/src/Runner.Common/RunnerServer.cs +++ b/src/Runner.Common/RunnerServer.cs @@ -27,8 +27,8 @@ public interface IRunnerServer : IRunnerService // Configuration Task AddAgentAsync(Int32 agentPoolId, TaskAgent agent); - Task DeleteAgentAsync(int agentPoolId, int agentId); - Task DeleteAgentAsync(int agentId); + Task DeleteAgentAsync(int agentPoolId, ulong agentId); + Task DeleteAgentAsync(ulong agentId); Task> GetAgentPoolsAsync(string agentPoolName = null, TaskAgentPoolType poolType = TaskAgentPoolType.Automation); Task> GetAgentsAsync(int agentPoolId, string agentName = null); Task> GetAgentsAsync(string agentName); @@ -50,7 +50,7 @@ public interface IRunnerServer : IRunnerService Task GetPackageAsync(string packageType, string platform, string version, bool includeToken, CancellationToken cancellationToken); // agent update - Task UpdateAgentUpdateStateAsync(int agentPoolId, int agentId, string currentState, string trace); + Task UpdateAgentUpdateStateAsync(int agentPoolId, ulong agentId, string currentState, string trace); } public sealed class RunnerServer : RunnerService, IRunnerServer @@ -239,13 +239,13 @@ public Task ReplaceAgentAsync(int agentPoolId, TaskAgent agent) return _genericTaskAgentClient.ReplaceAgentAsync(agentPoolId, agent); } - public Task DeleteAgentAsync(int agentPoolId, int agentId) + public Task DeleteAgentAsync(int agentPoolId, ulong agentId) { CheckConnection(RunnerConnectionType.Generic); return _genericTaskAgentClient.DeleteAgentAsync(agentPoolId, agentId); } - public Task DeleteAgentAsync(int agentId) + public Task DeleteAgentAsync(ulong agentId) { return DeleteAgentAsync(0, agentId); // agentPool is ignored server side } @@ -315,7 +315,7 @@ public Task GetPackageAsync(string packageType, string platform return _genericTaskAgentClient.GetPackageAsync(packageType, platform, version, includeToken, cancellationToken: cancellationToken); } - public Task UpdateAgentUpdateStateAsync(int agentPoolId, int agentId, string currentState, string trace) + public Task UpdateAgentUpdateStateAsync(int agentPoolId, ulong agentId, string currentState, string trace) { CheckConnection(RunnerConnectionType.Generic); return _genericTaskAgentClient.UpdateAgentUpdateStateAsync(agentPoolId, agentId, currentState, trace); diff --git a/src/Runner.Listener/SelfUpdater.cs b/src/Runner.Listener/SelfUpdater.cs index a63e81d5d5b..3f97b2254d0 100644 --- a/src/Runner.Listener/SelfUpdater.cs +++ b/src/Runner.Listener/SelfUpdater.cs @@ -38,7 +38,7 @@ public class SelfUpdater : RunnerService, ISelfUpdater private ITerminal _terminal; private IRunnerServer _runnerServer; private int _poolId; - private int _agentId; + private ulong _agentId; private readonly ConcurrentQueue _updateTrace = new(); private Task _cloneAndCalculateContentHashTask; private string _dotnetRuntimeCloneDirectory; diff --git a/src/Runner.Worker/DiagnosticLogManager.cs b/src/Runner.Worker/DiagnosticLogManager.cs index a2718ab1d0e..7259bab26bd 100644 --- a/src/Runner.Worker/DiagnosticLogManager.cs +++ b/src/Runner.Worker/DiagnosticLogManager.cs @@ -56,7 +56,7 @@ public void UploadDiagnosticLogs(IExecutionContext executionContext, // \_layout\_work\_temp\[jobname-support]\files\environment.txt var configurationStore = HostContext.GetService(); RunnerSettings settings = configurationStore.GetSettings(); - int runnerId = settings.AgentId; + ulong runnerId = settings.AgentId; string runnerName = settings.AgentName; int poolId = settings.PoolId; diff --git a/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs b/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs index a423539f301..482d0b52226 100644 --- a/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs +++ b/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs @@ -97,7 +97,7 @@ public virtual Task AddAgentAsync( /// The cancellation token to cancel operation. public virtual async Task DeleteAgentAsync( int poolId, - int agentId, + ulong agentId, object userState = null, CancellationToken cancellationToken = default) { @@ -243,7 +243,7 @@ public virtual Task> GetAgentsAsync( /// The cancellation token to cancel operation. public virtual Task ReplaceAgentAsync( int poolId, - int agentId, + ulong agentId, TaskAgent agent, object userState = null, CancellationToken cancellationToken = default) @@ -786,7 +786,7 @@ public virtual async Task DeleteAgentSessionAsync( [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task UpdateAgentUpdateStateAsync( int poolId, - int agentId, + ulong agentId, string currentState, string updateTrace, object userState = null, diff --git a/src/Sdk/DTWebApi/WebApi/AgentRefreshMessage.cs b/src/Sdk/DTWebApi/WebApi/AgentRefreshMessage.cs index 28c24998a95..70a825ec7f4 100644 --- a/src/Sdk/DTWebApi/WebApi/AgentRefreshMessage.cs +++ b/src/Sdk/DTWebApi/WebApi/AgentRefreshMessage.cs @@ -16,7 +16,7 @@ internal AgentRefreshMessage() } public AgentRefreshMessage( - Int32 agentId, + ulong agentId, String targetVersion, TimeSpan? timeout = null) { @@ -26,7 +26,7 @@ public AgentRefreshMessage( } [DataMember] - public Int32 AgentId + public ulong AgentId { get; private set; diff --git a/src/Sdk/DTWebApi/WebApi/DiagnosticLogMetadata.cs b/src/Sdk/DTWebApi/WebApi/DiagnosticLogMetadata.cs index 42985223542..96d5a17fb08 100644 --- a/src/Sdk/DTWebApi/WebApi/DiagnosticLogMetadata.cs +++ b/src/Sdk/DTWebApi/WebApi/DiagnosticLogMetadata.cs @@ -5,7 +5,7 @@ namespace GitHub.DistributedTask.WebApi [DataContract] public sealed class DiagnosticLogMetadata { - public DiagnosticLogMetadata(string agentName, int agentId, int poolId, string phaseName, string fileName, string phaseResult) + public DiagnosticLogMetadata(string agentName, ulong agentId, int poolId, string phaseName, string fileName, string phaseResult) { AgentName = agentName; AgentId = agentId; @@ -19,7 +19,7 @@ public DiagnosticLogMetadata(string agentName, int agentId, int poolId, string p public string AgentName { get; set; } [DataMember] - public int AgentId { get; set; } + public ulong AgentId { get; set; } [DataMember] public int PoolId { get; set; } diff --git a/src/Sdk/DTWebApi/WebApi/Runner.cs b/src/Sdk/DTWebApi/WebApi/Runner.cs index cc7ae2e2cc0..91f13e03696 100644 --- a/src/Sdk/DTWebApi/WebApi/Runner.cs +++ b/src/Sdk/DTWebApi/WebApi/Runner.cs @@ -47,7 +47,7 @@ public string Name } [JsonProperty("id")] - public Int32 Id + public ulong Id { get; internal set; diff --git a/src/Sdk/DTWebApi/WebApi/RunnerRefreshMessage.cs b/src/Sdk/DTWebApi/WebApi/RunnerRefreshMessage.cs index b25068168ad..2e1e92836ac 100644 --- a/src/Sdk/DTWebApi/WebApi/RunnerRefreshMessage.cs +++ b/src/Sdk/DTWebApi/WebApi/RunnerRefreshMessage.cs @@ -16,7 +16,7 @@ internal RunnerRefreshMessage() } public RunnerRefreshMessage( - Int32 runnerId, + ulong runnerId, String targetVersion, int? timeoutInSeconds = null) { @@ -26,7 +26,7 @@ public RunnerRefreshMessage( } [DataMember] - public Int32 RunnerId + public ulong RunnerId { get; private set; diff --git a/src/Sdk/DTWebApi/WebApi/TaskAgentReference.cs b/src/Sdk/DTWebApi/WebApi/TaskAgentReference.cs index 743c8c38924..180c9f1cd29 100644 --- a/src/Sdk/DTWebApi/WebApi/TaskAgentReference.cs +++ b/src/Sdk/DTWebApi/WebApi/TaskAgentReference.cs @@ -37,7 +37,7 @@ protected TaskAgentReference(TaskAgentReference referenceToBeCloned) /// Identifier of the agent. /// [DataMember] - public Int32 Id + public ulong Id { get; set; diff --git a/src/Sdk/WebApi/WebApi/BrokerHttpClient.cs b/src/Sdk/WebApi/WebApi/BrokerHttpClient.cs index 755fba8af50..42d69ee465e 100644 --- a/src/Sdk/WebApi/WebApi/BrokerHttpClient.cs +++ b/src/Sdk/WebApi/WebApi/BrokerHttpClient.cs @@ -86,6 +86,11 @@ public async Task GetRunnerMessageAsync( return result.Value; } + if (result.StatusCode == HttpStatusCode.Forbidden) + { + throw new AccessDeniedException(result.Error); + } + throw new Exception($"Failed to get job message: {result.Error}"); } } diff --git a/src/Test/L0/Listener/SelfUpdaterL0.cs b/src/Test/L0/Listener/SelfUpdaterL0.cs index e0d76d59b6b..c8383f5f593 100644 --- a/src/Test/L0/Listener/SelfUpdaterL0.cs +++ b/src/Test/L0/Listener/SelfUpdaterL0.cs @@ -117,7 +117,7 @@ public async void TestSelfUpdateAsync() updater.Initialize(hc); _runnerServer.Setup(x => x.UpdateAgentUpdateStateAsync(1, 1, It.IsAny(), It.IsAny())) - .Callback((int p, int a, string s, string t) => + .Callback((int p, ulong a, string s, string t) => { hc.GetTrace().Info(t); }) @@ -180,7 +180,7 @@ public async void TestSelfUpdateAsync_NoUpdateOnOldVersion() .Returns(Task.FromResult(new PackageMetadata() { Platform = BuildConstants.RunnerPackage.PackageName, Version = new PackageVersion("2.200.0"), DownloadUrl = _packageUrl })); _runnerServer.Setup(x => x.UpdateAgentUpdateStateAsync(1, 1, It.IsAny(), It.IsAny())) - .Callback((int p, int a, string s, string t) => + .Callback((int p, ulong a, string s, string t) => { hc.GetTrace().Info(t); }) @@ -234,7 +234,7 @@ public async void TestSelfUpdateAsync_DownloadRetry() updater.Initialize(hc); _runnerServer.Setup(x => x.UpdateAgentUpdateStateAsync(1, 1, It.IsAny(), It.IsAny())) - .Callback((int p, int a, string s, string t) => + .Callback((int p, ulong a, string s, string t) => { hc.GetTrace().Info(t); }) @@ -289,7 +289,7 @@ public async void TestSelfUpdateAsync_ValidateHash() updater.Initialize(hc); _runnerServer.Setup(x => x.UpdateAgentUpdateStateAsync(1, 1, It.IsAny(), It.IsAny())) - .Callback((int p, int a, string s, string t) => + .Callback((int p, ulong a, string s, string t) => { hc.GetTrace().Info(t); }) @@ -344,7 +344,7 @@ public async void TestSelfUpdateAsync_CloneHash_RuntimeAndExternals() .Returns(Task.FromResult(new PackageMetadata() { Platform = BuildConstants.RunnerPackage.PackageName, Version = new PackageVersion("2.999.0"), DownloadUrl = _packageUrl, TrimmedPackages = new List() { new TrimmedPackageMetadata() } })); _runnerServer.Setup(x => x.UpdateAgentUpdateStateAsync(1, 1, It.IsAny(), It.IsAny())) - .Callback((int p, int a, string s, string t) => + .Callback((int p, ulong a, string s, string t) => { hc.GetTrace().Info(t); }) @@ -416,7 +416,7 @@ public async void TestSelfUpdateAsync_Cancel_CloneHashTask_WhenNotNeeded() updater.Initialize(hc); _runnerServer.Setup(x => x.UpdateAgentUpdateStateAsync(1, 1, It.IsAny(), It.IsAny())) - .Callback((int p, int a, string s, string t) => + .Callback((int p, ulong a, string s, string t) => { hc.GetTrace().Info(t); }) @@ -490,7 +490,7 @@ public async void TestSelfUpdateAsync_UseExternalsTrimmedPackage() .Returns(Task.FromResult(new PackageMetadata() { Platform = BuildConstants.RunnerPackage.PackageName, Version = new PackageVersion("2.999.0"), DownloadUrl = _packageUrl, TrimmedPackages = trim })); _runnerServer.Setup(x => x.UpdateAgentUpdateStateAsync(1, 1, It.IsAny(), It.IsAny())) - .Callback((int p, int a, string s, string t) => + .Callback((int p, ulong a, string s, string t) => { hc.GetTrace().Info(t); }) @@ -579,7 +579,7 @@ public async void TestSelfUpdateAsync_UseExternalsRuntimeTrimmedPackage() .Returns(Task.FromResult(new PackageMetadata() { Platform = BuildConstants.RunnerPackage.PackageName, Version = new PackageVersion("2.999.0"), DownloadUrl = _packageUrl, TrimmedPackages = trim })); _runnerServer.Setup(x => x.UpdateAgentUpdateStateAsync(1, 1, It.IsAny(), It.IsAny())) - .Callback((int p, int a, string s, string t) => + .Callback((int p, ulong a, string s, string t) => { hc.GetTrace().Info(t); }) @@ -681,7 +681,7 @@ public async void TestSelfUpdateAsync_NotUseExternalsRuntimeTrimmedPackageOnHash _runnerServer.Setup(x => x.UpdateAgentUpdateStateAsync(1, 1, It.IsAny(), It.IsAny())) - .Callback((int p, int a, string s, string t) => + .Callback((int p, ulong a, string s, string t) => { hc.GetTrace().Info(t); }) @@ -758,7 +758,7 @@ public async void TestSelfUpdateAsync_FallbackToFullPackage() .Returns(Task.FromResult(new PackageMetadata() { Platform = BuildConstants.RunnerPackage.PackageName, Version = new PackageVersion("2.999.0"), DownloadUrl = _packageUrl, TrimmedPackages = trim })); _runnerServer.Setup(x => x.UpdateAgentUpdateStateAsync(1, 1, It.IsAny(), It.IsAny())) - .Callback((int p, int a, string s, string t) => + .Callback((int p, ulong a, string s, string t) => { hc.GetTrace().Info(t); })