From 3136ce3a7115ef1c126caedc6edcc87d5efd60df Mon Sep 17 00:00:00 2001 From: Luke Tomlinson Date: Mon, 13 Nov 2023 10:19:42 -0500 Subject: [PATCH] Send disableUpdate as query parameter (#2970) --- src/Runner.Common/BrokerServer.cs | 6 +++--- src/Runner.Common/RunnerServer.cs | 6 +++--- src/Runner.Listener/BrokerMessageListener.cs | 7 ++++++- src/Runner.Listener/MessageListener.cs | 1 + .../DTGenerated/Generated/TaskAgentHttpClientBase.cs | 6 ++++++ src/Sdk/WebApi/WebApi/BrokerHttpClient.cs | 6 ++++++ src/Test/L0/Listener/MessageListenerL0.cs | 10 +++++----- 7 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/Runner.Common/BrokerServer.cs b/src/Runner.Common/BrokerServer.cs index 090c3c27d..9d5287a2f 100644 --- a/src/Runner.Common/BrokerServer.cs +++ b/src/Runner.Common/BrokerServer.cs @@ -17,7 +17,7 @@ namespace GitHub.Runner.Common { Task ConnectAsync(Uri serverUrl, VssCredentials credentials); - Task GetRunnerMessageAsync(CancellationToken token, TaskAgentStatus status, string version, string os, string architecture); + Task GetRunnerMessageAsync(CancellationToken token, TaskAgentStatus status, string version, string os, string architecture, bool disableUpdate); } public sealed class BrokerServer : RunnerService, IBrokerServer @@ -44,11 +44,11 @@ namespace GitHub.Runner.Common } } - public Task GetRunnerMessageAsync(CancellationToken cancellationToken, TaskAgentStatus status, string version, string os, string architecture) + public Task GetRunnerMessageAsync(CancellationToken cancellationToken, TaskAgentStatus status, string version, string os, string architecture, bool disableUpdate) { CheckConnection(); var jobMessage = RetryRequest( - async () => await _brokerHttpClient.GetRunnerMessageAsync(version, status, os, architecture, cancellationToken), cancellationToken); + async () => await _brokerHttpClient.GetRunnerMessageAsync(version, status, os, architecture, disableUpdate, cancellationToken), cancellationToken); return jobMessage; } diff --git a/src/Runner.Common/RunnerServer.cs b/src/Runner.Common/RunnerServer.cs index 85084e494..139ac684f 100644 --- a/src/Runner.Common/RunnerServer.cs +++ b/src/Runner.Common/RunnerServer.cs @@ -38,7 +38,7 @@ namespace GitHub.Runner.Common Task CreateAgentSessionAsync(Int32 poolId, TaskAgentSession session, CancellationToken cancellationToken); Task DeleteAgentMessageAsync(Int32 poolId, Int64 messageId, Guid sessionId, CancellationToken cancellationToken); Task DeleteAgentSessionAsync(Int32 poolId, Guid sessionId, CancellationToken cancellationToken); - Task GetAgentMessageAsync(Int32 poolId, Guid sessionId, Int64? lastMessageId, TaskAgentStatus status, string runnerVersion, string os, string architecture, CancellationToken cancellationToken); + Task GetAgentMessageAsync(Int32 poolId, Guid sessionId, Int64? lastMessageId, TaskAgentStatus status, string runnerVersion, string os, string architecture, bool disableUpdate, CancellationToken cancellationToken); // job request Task GetAgentRequestAsync(int poolId, long requestId, CancellationToken cancellationToken); @@ -272,10 +272,10 @@ namespace GitHub.Runner.Common return _messageTaskAgentClient.DeleteAgentSessionAsync(poolId, sessionId, cancellationToken: cancellationToken); } - public Task GetAgentMessageAsync(Int32 poolId, Guid sessionId, Int64? lastMessageId, TaskAgentStatus status, string runnerVersion, string os, string architecture, CancellationToken cancellationToken) + public Task GetAgentMessageAsync(Int32 poolId, Guid sessionId, Int64? lastMessageId, TaskAgentStatus status, string runnerVersion, string os, string architecture, bool disableUpdate, CancellationToken cancellationToken) { CheckConnection(RunnerConnectionType.MessageQueue); - return _messageTaskAgentClient.GetMessageAsync(poolId, sessionId, lastMessageId, status, runnerVersion, os, architecture, cancellationToken: cancellationToken); + return _messageTaskAgentClient.GetMessageAsync(poolId, sessionId, lastMessageId, status, runnerVersion, os, architecture, disableUpdate, cancellationToken: cancellationToken); } //----------------------------------------------------------------- diff --git a/src/Runner.Listener/BrokerMessageListener.cs b/src/Runner.Listener/BrokerMessageListener.cs index 22224c363..f3fd33fd6 100644 --- a/src/Runner.Listener/BrokerMessageListener.cs +++ b/src/Runner.Listener/BrokerMessageListener.cs @@ -73,7 +73,12 @@ namespace GitHub.Runner.Listener _getMessagesTokenSource = CancellationTokenSource.CreateLinkedTokenSource(token); try { - message = await _brokerServer.GetRunnerMessageAsync(_getMessagesTokenSource.Token, runnerStatus, BuildConstants.RunnerPackage.Version, VarUtil.OS, VarUtil.OSArchitecture); + message = await _brokerServer.GetRunnerMessageAsync(_getMessagesTokenSource.Token, + runnerStatus, + BuildConstants.RunnerPackage.Version, + VarUtil.OS, + VarUtil.OSArchitecture, + _settings.DisableUpdate); if (message == null) { diff --git a/src/Runner.Listener/MessageListener.cs b/src/Runner.Listener/MessageListener.cs index e0aa809e4..113573b6a 100644 --- a/src/Runner.Listener/MessageListener.cs +++ b/src/Runner.Listener/MessageListener.cs @@ -222,6 +222,7 @@ namespace GitHub.Runner.Listener BuildConstants.RunnerPackage.Version, VarUtil.OS, VarUtil.OSArchitecture, + _settings.DisableUpdate, _getMessagesTokenSource.Token); // Decrypt the message body if the session is using encryption diff --git a/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs b/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs index 12100d768..a084664b3 100644 --- a/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs +++ b/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs @@ -463,6 +463,7 @@ namespace GitHub.DistributedTask.WebApi string runnerVersion = null, string os = null, string architecture = null, + bool? disableUpdate = null, object userState = null, CancellationToken cancellationToken = default) { @@ -495,6 +496,11 @@ namespace GitHub.DistributedTask.WebApi queryParams.Add("architecture", architecture); } + if (disableUpdate != null) + { + queryParams.Add("disableUpdate", disableUpdate.Value.ToString().ToLower()); + } + return SendAsync( httpMethod, locationId, diff --git a/src/Sdk/WebApi/WebApi/BrokerHttpClient.cs b/src/Sdk/WebApi/WebApi/BrokerHttpClient.cs index 40821f1c6..fa914561c 100644 --- a/src/Sdk/WebApi/WebApi/BrokerHttpClient.cs +++ b/src/Sdk/WebApi/WebApi/BrokerHttpClient.cs @@ -61,6 +61,7 @@ namespace GitHub.Actions.RunService.WebApi TaskAgentStatus? status, string os = null, string architecture = null, + bool? disableUpdate = null, CancellationToken cancellationToken = default ) { @@ -87,6 +88,11 @@ namespace GitHub.Actions.RunService.WebApi queryParams.Add("architecture", architecture); } + if (disableUpdate != null) + { + queryParams.Add("disableUpdate", disableUpdate.Value.ToString().ToLower()); + } + var result = await SendAsync( new HttpMethod("GET"), requestUri: requestUri, diff --git a/src/Test/L0/Listener/MessageListenerL0.cs b/src/Test/L0/Listener/MessageListenerL0.cs index f85f360b8..7cd6035e1 100644 --- a/src/Test/L0/Listener/MessageListenerL0.cs +++ b/src/Test/L0/Listener/MessageListenerL0.cs @@ -192,8 +192,8 @@ namespace GitHub.Runner.Common.Tests.Listener _runnerServer .Setup(x => x.GetAgentMessageAsync( - _settings.PoolId, expectedSession.SessionId, It.IsAny(), TaskAgentStatus.Online, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(async (Int32 poolId, Guid sessionId, Int64? lastMessageId, TaskAgentStatus status, string runnerVersion, string os, string architecture, CancellationToken cancellationToken) => + _settings.PoolId, expectedSession.SessionId, It.IsAny(), TaskAgentStatus.Online, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(async (Int32 poolId, Guid sessionId, Int64? lastMessageId, TaskAgentStatus status, string runnerVersion, string os, string architecture, bool disableUpdate, CancellationToken cancellationToken) => { await Task.Yield(); return messages.Dequeue(); @@ -208,7 +208,7 @@ namespace GitHub.Runner.Common.Tests.Listener //Assert _runnerServer .Verify(x => x.GetAgentMessageAsync( - _settings.PoolId, expectedSession.SessionId, It.IsAny(), TaskAgentStatus.Online, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()), Times.Exactly(arMessages.Length)); + _settings.PoolId, expectedSession.SessionId, It.IsAny(), TaskAgentStatus.Online, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()), Times.Exactly(arMessages.Length)); } } @@ -293,7 +293,7 @@ namespace GitHub.Runner.Common.Tests.Listener _runnerServer .Setup(x => x.GetAgentMessageAsync( - _settings.PoolId, expectedSession.SessionId, It.IsAny(), TaskAgentStatus.Online, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + _settings.PoolId, expectedSession.SessionId, It.IsAny(), TaskAgentStatus.Online, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) .Throws(new TaskAgentAccessTokenExpiredException("test")); try { @@ -311,7 +311,7 @@ namespace GitHub.Runner.Common.Tests.Listener //Assert _runnerServer .Verify(x => x.GetAgentMessageAsync( - _settings.PoolId, expectedSession.SessionId, It.IsAny(), TaskAgentStatus.Online, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); + _settings.PoolId, expectedSession.SessionId, It.IsAny(), TaskAgentStatus.Online, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()), Times.Once); _runnerServer .Verify(x => x.DeleteAgentSessionAsync(