From a6ece8b1bf66dcce38b0b09101146febd13c8a6b Mon Sep 17 00:00:00 2001 From: eric sciple Date: Mon, 23 May 2022 16:55:21 +0000 Subject: [PATCH] . --- src/Directory.Build.props | 5 - src/Runner.Common/BrokerServer.cs | 59 ----- src/Runner.Common/RunnerServer.cs | 41 +--- .../Configuration/CredentialManager.cs | 7 - src/Runner.Listener/JobDispatcher.cs | 44 ++-- src/Runner.Listener/MessageListener.cs | 207 ------------------ src/Runner.Sdk/Util/VssUtil.cs | 1 - src/Runner.Worker/ActionManager.cs | 1 - .../Authentication/FederatedCredential.cs | 1 - .../Authentication/IssuedTokenCredential.cs | 4 - .../Common/Authentication/VssCredentials.cs | 13 -- .../Common/Common/VssHttpMessageHandler.cs | 18 +- .../Generated/TaskAgentHttpClientBase.cs | 6 - .../DTWebApi/WebApi/TaskAgentHttpClient.cs | 6 +- .../WebApi/Location/ServerDataProvider.cs | 1 - .../WebApi/OAuth/VssOAuthAccessToken.cs | 1 - .../OAuth/VssOAuthAccessTokenCredential.cs | 2 - .../WebApi/WebApi/OAuth/VssOAuthCredential.cs | 9 +- .../WebApi/OAuth/VssOAuthTokenHttpClient.cs | 1 - .../WebApi/OAuth/VssOAuthTokenProvider.cs | 11 - src/Sdk/WebApi/WebApi/VssConnection.cs | 1 - src/Sdk/WebApi/WebApi/VssHttpClientBase.cs | 21 -- src/dev.sh | 14 +- 23 files changed, 29 insertions(+), 445 deletions(-) delete mode 100644 src/Runner.Common/BrokerServer.cs diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 28668464f..71e570e08 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -47,11 +47,6 @@ $(DefineConstants);DEBUG - - - $(DefineConstants);USE_BROKER - - true diff --git a/src/Runner.Common/BrokerServer.cs b/src/Runner.Common/BrokerServer.cs deleted file mode 100644 index dd203a39d..000000000 --- a/src/Runner.Common/BrokerServer.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using System.Collections.Generic; -using GitHub.DistributedTask.WebApi; -using System.Threading; -using System.Threading.Tasks; -using GitHub.Runner.Common.Util; -using GitHub.Services.WebApi; -using GitHub.Services.Common; -using GitHub.Runner.Sdk; -using System.Net; -using System.Net.Http; - -namespace GitHub.Runner.Common -{ - [ServiceLocator(Default = typeof(BrokerServer))] - public interface IBrokerServer : IRunnerService - { - Task ConnectAsync(Uri serverUrl, CancellationToken cancellationToken); - Task GetMessageAsync(TaskAgentSession session, RunnerSettings settings, long? lastMessageId, CancellationToken cancellationToken); - } - - public sealed class BrokerServer : RunnerService, IBrokerServer - { - private HttpClient _httpClient; - - public async Task ConnectAsync(Uri serverUrl, CancellationToken cancellationToken) - { - _httpClient = new HttpClient(); - _httpClient.BaseAddress = serverUrl; - _httpClient.Timeout = TimeSpan.FromSeconds(100); - await _httpClient.GetAsync("health", cancellationToken); - } - - public async Task GetMessageAsync(TaskAgentSession session, RunnerSettings settings, long? lastMessageId, CancellationToken cancellationToken) - { - var response = await _httpClient.GetAsync($"message?tenant=org:github&root_tenant=org:github&group_id={settings.PoolId}&group_name={settings.PoolName}&runner_id={settings.AgentId}&runner_name={settings.AgentName}&labels=self-hosted,linux", cancellationToken); - if (!response.IsSuccessStatusCode) - { - var content = default(string); - try - { - content = await response.Content.ReadAsStringAsync(); - } - catch - { - } - - var error = $"HTTP {(int)response.StatusCode} {Enum.GetName(typeof(HttpStatusCode), response.StatusCode)}"; - if (!string.IsNullOrEmpty(content)) - { - error = $"{error}: {content}"; - } - throw new Exception(error); - } - - return await response.Content.ReadAsStringAsync(); - } - } -} diff --git a/src/Runner.Common/RunnerServer.cs b/src/Runner.Common/RunnerServer.cs index 10b6db203..f377622c6 100644 --- a/src/Runner.Common/RunnerServer.cs +++ b/src/Runner.Common/RunnerServer.cs @@ -44,7 +44,7 @@ namespace GitHub.Runner.Common // job request Task GetAgentRequestAsync(int poolId, long requestId, CancellationToken cancellationToken); Task RenewAgentRequestAsync(int poolId, long requestId, Guid lockToken, string orchestrationId, CancellationToken cancellationToken); - Task FinishAgentRequestAsync(int poolId, long requestId, Guid lockToken, DateTime finishTime, TaskResult result, Guid targetHostId, CancellationToken cancellationToken); + Task FinishAgentRequestAsync(int poolId, long requestId, Guid lockToken, DateTime finishTime, TaskResult result, CancellationToken cancellationToken); // agent package Task> GetPackagesAsync(string packageType, string platform, int top, bool includeToken, CancellationToken cancellationToken); @@ -68,23 +68,11 @@ namespace GitHub.Runner.Common public async Task ConnectAsync(Uri serverUrl, VssCredentials credentials) { - // System.Console.WriteLine("RunnerServer.ConnectAsync: Create message connection"); - var createMessageConnection = EstablishVssConnection(serverUrl, credentials, TimeSpan.FromSeconds(60)); - await Task.WhenAll(createMessageConnection); - - // System.Console.WriteLine("RunnerServer.ConnectAsync: Create generic connection"); var createGenericConnection = EstablishVssConnection(serverUrl, credentials, TimeSpan.FromSeconds(100)); - await Task.WhenAll(createGenericConnection); - - // System.Console.WriteLine("RunnerServer.ConnectAsync: Create request connection"); + var createMessageConnection = EstablishVssConnection(serverUrl, credentials, TimeSpan.FromSeconds(60)); var createRequestConnection = EstablishVssConnection(serverUrl, credentials, TimeSpan.FromSeconds(60)); - await Task.WhenAll(createRequestConnection); - // var createGenericConnection = EstablishVssConnection(serverUrl, credentials, TimeSpan.FromSeconds(100)); - // var createMessageConnection = EstablishVssConnection(serverUrl, credentials, TimeSpan.FromSeconds(60)); - // var createRequestConnection = EstablishVssConnection(serverUrl, credentials, TimeSpan.FromSeconds(60)); - - // await Task.WhenAll(createGenericConnection, createMessageConnection, createRequestConnection); + await Task.WhenAll(createGenericConnection, createMessageConnection, createRequestConnection); _genericConnection = await createGenericConnection; _messageConnection = await createMessageConnection; @@ -194,8 +182,6 @@ namespace GitHub.Runner.Common private async Task EstablishVssConnection(Uri serverUrl, VssCredentials credentials, TimeSpan timeout) { - // System.Console.WriteLine("EstablishVssConnection"); - Trace.Info($"EstablishVssConnection"); Trace.Info($"Establish connection with {timeout.TotalSeconds} seconds timeout."); int attemptCount = 5; while (attemptCount-- > 0) @@ -252,48 +238,41 @@ namespace GitHub.Runner.Common public Task> GetAgentPoolsAsync(string agentPoolName = null, TaskAgentPoolType poolType = TaskAgentPoolType.Automation) { - // System.Console.WriteLine("RunnerServer.GetAgentPoolsAsync"); CheckConnection(RunnerConnectionType.Generic); return _genericTaskAgentClient.GetAgentPoolsAsync(agentPoolName, poolType: poolType); } public Task AddAgentAsync(Int32 agentPoolId, TaskAgent agent) { - // System.Console.WriteLine("RunnerServer.AddAgentAsync"); CheckConnection(RunnerConnectionType.Generic); return _genericTaskAgentClient.AddAgentAsync(agentPoolId, agent); } public Task> GetAgentsAsync(int agentPoolId, string agentName = null) { - // System.Console.WriteLine("RunnerServer.GetAgentsAsync 1"); CheckConnection(RunnerConnectionType.Generic); return _genericTaskAgentClient.GetAgentsAsync(agentPoolId, agentName, false); } public Task> GetAgentsAsync(string agentName) { - // System.Console.WriteLine("RunnerServer.GetAgentsAsync 2"); return GetAgentsAsync(0, agentName); // search in all all agentPools } public Task ReplaceAgentAsync(int agentPoolId, TaskAgent agent) { - // System.Console.WriteLine("RunnerServer.ReplaceAgentAsync"); CheckConnection(RunnerConnectionType.Generic); return _genericTaskAgentClient.ReplaceAgentAsync(agentPoolId, agent); } public Task DeleteAgentAsync(int agentPoolId, int agentId) { - // System.Console.WriteLine("RunnerServer.DeleteAgentAsync"); CheckConnection(RunnerConnectionType.Generic); return _genericTaskAgentClient.DeleteAgentAsync(agentPoolId, agentId); } public Task DeleteAgentAsync(int agentId) { - // System.Console.WriteLine("RunnerServer.DeleteAgentAsync"); return DeleteAgentAsync(0, agentId); // agentPool is ignored server side } @@ -303,28 +282,24 @@ namespace GitHub.Runner.Common public Task CreateAgentSessionAsync(Int32 poolId, TaskAgentSession session, CancellationToken cancellationToken) { - // System.Console.WriteLine("RunnerServer.CreateAgentSessionAsync"); CheckConnection(RunnerConnectionType.MessageQueue); return _messageTaskAgentClient.CreateAgentSessionAsync(poolId, session, cancellationToken: cancellationToken); } public Task DeleteAgentMessageAsync(Int32 poolId, Int64 messageId, Guid sessionId, CancellationToken cancellationToken) { - // System.Console.WriteLine("RunnerServer.DeleteAgentMessageAsync"); CheckConnection(RunnerConnectionType.MessageQueue); return _messageTaskAgentClient.DeleteMessageAsync(poolId, messageId, sessionId, cancellationToken: cancellationToken); } public Task DeleteAgentSessionAsync(Int32 poolId, Guid sessionId, CancellationToken cancellationToken) { - // System.Console.WriteLine("RunnerServer.DeleteAgentSessionAsync"); CheckConnection(RunnerConnectionType.MessageQueue); return _messageTaskAgentClient.DeleteAgentSessionAsync(poolId, sessionId, cancellationToken: cancellationToken); } public Task GetAgentMessageAsync(Int32 poolId, Guid sessionId, Int64? lastMessageId, CancellationToken cancellationToken) { - // System.Console.WriteLine("RunnerServer.GetAgentMessageAsync"); CheckConnection(RunnerConnectionType.MessageQueue); return _messageTaskAgentClient.GetMessageAsync(poolId, sessionId, lastMessageId, cancellationToken: cancellationToken); } @@ -335,21 +310,18 @@ namespace GitHub.Runner.Common public Task RenewAgentRequestAsync(int poolId, long requestId, Guid lockToken, string orchestrationId = null, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("RunnerServer.RenewAgentRequestAsync"); CheckConnection(RunnerConnectionType.JobRequest); return _requestTaskAgentClient.RenewAgentRequestAsync(poolId, requestId, lockToken, orchestrationId: orchestrationId, cancellationToken: cancellationToken); } - public Task FinishAgentRequestAsync(int poolId, long requestId, Guid lockToken, DateTime finishTime, TaskResult result, Guid targetHostId, CancellationToken cancellationToken = default(CancellationToken)) + public Task FinishAgentRequestAsync(int poolId, long requestId, Guid lockToken, DateTime finishTime, TaskResult result, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("RunnerServer.FinishAgentRequestAsync"); CheckConnection(RunnerConnectionType.JobRequest); - return _requestTaskAgentClient.FinishAgentRequestAsync(poolId, requestId, lockToken, finishTime, result, targetHostId, cancellationToken: cancellationToken); + return _requestTaskAgentClient.FinishAgentRequestAsync(poolId, requestId, lockToken, finishTime, result, cancellationToken: cancellationToken); } public Task GetAgentRequestAsync(int poolId, long requestId, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("RunnerServer.GetAgentRequestAsync"); CheckConnection(RunnerConnectionType.JobRequest); return _requestTaskAgentClient.GetAgentRequestAsync(poolId, requestId, cancellationToken: cancellationToken); } @@ -359,21 +331,18 @@ namespace GitHub.Runner.Common //----------------------------------------------------------------- public Task> GetPackagesAsync(string packageType, string platform, int top, bool includeToken, CancellationToken cancellationToken) { - // System.Console.WriteLine("RunnerServer.GetPackagesAsync"); CheckConnection(RunnerConnectionType.Generic); return _genericTaskAgentClient.GetPackagesAsync(packageType, platform, top, includeToken, cancellationToken: cancellationToken); } public Task GetPackageAsync(string packageType, string platform, string version, bool includeToken, CancellationToken cancellationToken) { - // System.Console.WriteLine("RunnerServer.GetPackageAsync"); CheckConnection(RunnerConnectionType.Generic); return _genericTaskAgentClient.GetPackageAsync(packageType, platform, version, includeToken, cancellationToken: cancellationToken); } public Task UpdateAgentUpdateStateAsync(int agentPoolId, int agentId, string currentState, string trace) { - // System.Console.WriteLine("RunnerServer.UpdateAgentUpdateStateAsync"); CheckConnection(RunnerConnectionType.Generic); return _genericTaskAgentClient.UpdateAgentUpdateStateAsync(agentPoolId, agentId, currentState, trace); } diff --git a/src/Runner.Listener/Configuration/CredentialManager.cs b/src/Runner.Listener/Configuration/CredentialManager.cs index adbd53452..e13d29510 100644 --- a/src/Runner.Listener/Configuration/CredentialManager.cs +++ b/src/Runner.Listener/Configuration/CredentialManager.cs @@ -40,12 +40,6 @@ namespace GitHub.Runner.Listener.Configuration return creds; } -#if USE_BROKER - public VssCredentials LoadCredentials() - { - return new VssCredentials(); - } -#else public VssCredentials LoadCredentials() { IConfigurationStore store = HostContext.GetService(); @@ -75,7 +69,6 @@ namespace GitHub.Runner.Listener.Configuration return creds; } -#endif } [DataContract] diff --git a/src/Runner.Listener/JobDispatcher.cs b/src/Runner.Listener/JobDispatcher.cs index 62791b181..7913c9228 100644 --- a/src/Runner.Listener/JobDispatcher.cs +++ b/src/Runner.Listener/JobDispatcher.cs @@ -23,7 +23,7 @@ namespace GitHub.Runner.Listener { bool Busy { get; } TaskCompletionSource RunOnceJobCompleted { get; } - void Run(Guid targetHostId, Pipelines.AgentJobRequestMessage message, bool runOnce = false); + void Run(Pipelines.AgentJobRequestMessage message, bool runOnce = false); bool Cancel(JobCancelMessage message); Task WaitAsync(CancellationToken token); Task ShutdownAsync(); @@ -79,7 +79,7 @@ namespace GitHub.Runner.Listener public bool Busy { get; private set; } - public void Run(Guid targetHostId, Pipelines.AgentJobRequestMessage jobRequestMessage, bool runOnce = false) + public void Run(Pipelines.AgentJobRequestMessage jobRequestMessage, bool runOnce = false) { Trace.Info($"Job request {jobRequestMessage.RequestId} for plan {jobRequestMessage.Plan.PlanId} job {jobRequestMessage.JobId} received."); @@ -112,11 +112,11 @@ namespace GitHub.Runner.Listener if (runOnce) { Trace.Info("Start dispatcher for one time used runner."); - newDispatch.WorkerDispatch = RunOnceAsync(targetHostId, jobRequestMessage, orchestrationId, currentDispatch, newDispatch.WorkerCancellationTokenSource.Token, newDispatch.WorkerCancelTimeoutKillTokenSource.Token); + newDispatch.WorkerDispatch = RunOnceAsync(jobRequestMessage, orchestrationId, currentDispatch, newDispatch.WorkerCancellationTokenSource.Token, newDispatch.WorkerCancelTimeoutKillTokenSource.Token); } else { - newDispatch.WorkerDispatch = RunAsync(targetHostId, jobRequestMessage, orchestrationId, currentDispatch, newDispatch.WorkerCancellationTokenSource.Token, newDispatch.WorkerCancelTimeoutKillTokenSource.Token); + newDispatch.WorkerDispatch = RunAsync(jobRequestMessage, orchestrationId, currentDispatch, newDispatch.WorkerCancellationTokenSource.Token, newDispatch.WorkerCancelTimeoutKillTokenSource.Token); } _jobInfos.TryAdd(newDispatch.JobId, newDispatch); @@ -317,11 +317,11 @@ namespace GitHub.Runner.Listener } } - private async Task RunOnceAsync(Guid targetHostId, Pipelines.AgentJobRequestMessage message, string orchestrationId, WorkerDispatcher previousJobDispatch, CancellationToken jobRequestCancellationToken, CancellationToken workerCancelTimeoutKillToken) + private async Task RunOnceAsync(Pipelines.AgentJobRequestMessage message, string orchestrationId, WorkerDispatcher previousJobDispatch, CancellationToken jobRequestCancellationToken, CancellationToken workerCancelTimeoutKillToken) { try { - await RunAsync(targetHostId, message, orchestrationId, previousJobDispatch, jobRequestCancellationToken, workerCancelTimeoutKillToken); + await RunAsync(message, orchestrationId, previousJobDispatch, jobRequestCancellationToken, workerCancelTimeoutKillToken); } finally { @@ -330,7 +330,7 @@ namespace GitHub.Runner.Listener } } - private async Task RunAsync(Guid targetHostId, Pipelines.AgentJobRequestMessage message, string orchestrationId, WorkerDispatcher previousJobDispatch, CancellationToken jobRequestCancellationToken, CancellationToken workerCancelTimeoutKillToken) + private async Task RunAsync(Pipelines.AgentJobRequestMessage message, string orchestrationId, WorkerDispatcher previousJobDispatch, CancellationToken jobRequestCancellationToken, CancellationToken workerCancelTimeoutKillToken) { Busy = true; try @@ -383,7 +383,7 @@ namespace GitHub.Runner.Listener await renewJobRequest; // complete job request with result Cancelled - await CompleteJobRequestAsync(targetHostId, _poolId, message, lockToken, TaskResult.Canceled); + await CompleteJobRequestAsync(_poolId, message, lockToken, TaskResult.Canceled); return; } @@ -540,7 +540,7 @@ namespace GitHub.Runner.Listener await renewJobRequest; // complete job request - await CompleteJobRequestAsync(targetHostId, _poolId, message, lockToken, result, detailInfo); + await CompleteJobRequestAsync(_poolId, message, lockToken, result, detailInfo); // print out unhandled exception happened in worker after we complete job request. // when we run out of disk space, report back to server has higher priority. @@ -637,7 +637,7 @@ namespace GitHub.Runner.Listener await renewJobRequest; // complete job request - await CompleteJobRequestAsync(targetHostId, _poolId, message, lockToken, resultOnAbandonOrCancel); + await CompleteJobRequestAsync(_poolId, message, lockToken, resultOnAbandonOrCancel); } finally { @@ -666,25 +666,17 @@ namespace GitHub.Runner.Listener { try { -// #if USE_BROKER + request = await runnerServer.RenewAgentRequestAsync(poolId, requestId, lockToken, orchestrationId, token); + Trace.Info($"Successfully renew job request {requestId}, job is valid till {request.LockedUntil.Value}"); + if (!firstJobRequestRenewed.Task.IsCompleted) { // fire first renew succeed event. firstJobRequestRenewed.TrySetResult(0); + + // Update settings if the runner name has been changed server-side + UpdateAgentNameIfNeeded(request.ReservedAgent?.Name); } -// #else -// request = await runnerServer.RenewAgentRequestAsync(poolId, requestId, lockToken, orchestrationId, token); -// Trace.Info($"Successfully renew job request {requestId}, job is valid till {request?.LockedUntil.Value}"); - -// if (!firstJobRequestRenewed.Task.IsCompleted) -// { -// // fire first renew succeed event. -// firstJobRequestRenewed.TrySetResult(0); - -// // Update settings if the runner name has been changed server-side -// UpdateAgentNameIfNeeded(request.ReservedAgent?.Name); -// } -// #endif if (encounteringError > 0) { @@ -919,7 +911,7 @@ namespace GitHub.Runner.Listener } } - private async Task CompleteJobRequestAsync(Guid targetHostId, int poolId, Pipelines.AgentJobRequestMessage message, Guid lockToken, TaskResult result, string detailInfo = null) + private async Task CompleteJobRequestAsync(int poolId, Pipelines.AgentJobRequestMessage message, Guid lockToken, TaskResult result, string detailInfo = null) { Trace.Entering(); @@ -936,7 +928,7 @@ namespace GitHub.Runner.Listener { try { - await runnerServer.FinishAgentRequestAsync(poolId, message.RequestId, lockToken, DateTime.UtcNow, result, targetHostId, CancellationToken.None); + await runnerServer.FinishAgentRequestAsync(poolId, message.RequestId, lockToken, DateTime.UtcNow, result, CancellationToken.None); return; } catch (TaskAgentJobNotFoundException) diff --git a/src/Runner.Listener/MessageListener.cs b/src/Runner.Listener/MessageListener.cs index 0dc561d5f..81afd737d 100644 --- a/src/Runner.Listener/MessageListener.cs +++ b/src/Runner.Listener/MessageListener.cs @@ -2,11 +2,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; -using System.Net; -using System.Net.Http; -using System.Net.Http.Headers; using System.Runtime.InteropServices; -using System.Runtime.Serialization; using System.Security.Cryptography; using System.Text; using System.Threading; @@ -31,13 +27,10 @@ namespace GitHub.Runner.Listener public sealed class MessageListener : RunnerService, IMessageListener { -#if !USE_BROKER private long? _lastMessageId; -#endif private RunnerSettings _settings; private ITerminal _term; private IRunnerServer _runnerServer; - private IBrokerServer _brokerServer; private TaskAgentSession _session; private TimeSpan _getNextMessageRetryInterval; private bool _accessTokenRevoked = false; @@ -52,44 +45,8 @@ namespace GitHub.Runner.Listener _term = HostContext.GetService(); _runnerServer = HostContext.GetService(); - _brokerServer = HostContext.GetService(); } -#if USE_BROKER - public async Task CreateSessionAsync(CancellationToken token) - { - Trace.Entering(); - - // Settings - var configManager = HostContext.GetService(); - _settings = configManager.LoadSettings(); - var serverUrl = _settings.ServerUrl; - Trace.Info(_settings); - - // Connect - token.ThrowIfCancellationRequested(); - Trace.Info($"Attempt to create session."); - Trace.Info("Connecting to the Runner Server..."); - _term.WriteLine($"Connecting to {new Uri(serverUrl)}"); - await _brokerServer.ConnectAsync(new Uri(serverUrl), token); - _term.WriteLine(); - _term.WriteSuccessMessage("Connected to GitHub"); - _term.WriteLine(); - - // Session info - var agent = new TaskAgentReference - { - Id = _settings.AgentId, - Name = _settings.AgentName, - Version = BuildConstants.RunnerPackage.Version, - OSDescription = RuntimeInformation.OSDescription, - }; - string sessionName = $"{Environment.MachineName ?? "RUNNER"}"; - _session = new TaskAgentSession(sessionName, agent); - - return true; - } -#else public async Task CreateSessionAsync(CancellationToken token) { Trace.Entering(); @@ -124,7 +81,6 @@ namespace GitHub.Runner.Listener Trace.Info($"Attempt to create session."); try { - Trace.Info("Connecting to the Runner Server..."); Trace.Info("Connecting to the Runner Server..."); await _runnerServer.ConnectAsync(new Uri(serverUrl), creds); Trace.Info("VssConnection created"); @@ -195,7 +151,6 @@ namespace GitHub.Runner.Listener } } } -#endif public async Task DeleteSessionAsync() { @@ -215,167 +170,6 @@ namespace GitHub.Runner.Listener } } -#if USE_BROKER - [DataContract] - public sealed class MessageRef - { - [DataMember(Name = "url")] - public string Url { get; set; } - [DataMember(Name = "token")] - public string Token { get; set; } - [DataMember(Name = "scopeId")] - public string ScopeId { get; set; } - [DataMember(Name = "planType")] - public string PlanType { get; set; } - [DataMember(Name = "planGroup")] - public string PlanGroup { get; set; } - [DataMember(Name = "instanceRefs")] - public InstanceRef[] InstanceRefs { get; set; } - [DataMember(Name = "labels")] - public string[] Labels { get; set; } - } - - [DataContract] - public sealed class InstanceRef - { - [DataMember(Name = "name")] - public string Name { get; set; } - [DataMember(Name = "instanceType")] - public string InstanceType { get; set; } - [DataMember(Name = "attempt")] - public int Attempt { get; set; } - } - - public async Task GetNextMessageAsync(CancellationToken token) - { - Trace.Entering(); - ArgUtil.NotNull(_session, nameof(_session)); - ArgUtil.NotNull(_settings, nameof(_settings)); - bool encounteringError = false; - int continuousError = 0; - string errorMessage = string.Empty; - Stopwatch heartbeat = new Stopwatch(); - heartbeat.Restart(); - while (true) - { - token.ThrowIfCancellationRequested(); - string message = null; - try - { - message = await _brokerServer.GetMessageAsync(_session, _settings, null/*_lastMessageId*/, token); - _term.WriteLine($"{DateTime.UtcNow:u}: {message}"); - if (!string.IsNullOrEmpty(message)) - { - var messageRef = StringUtil.ConvertFromJson(message); - var client = new HttpClient(); - client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", messageRef.Token); - var response = await client.GetAsync(messageRef.Url, token); - if (!response.IsSuccessStatusCode) - { - var content = default(string); - try - { - content = await response.Content.ReadAsStringAsync(); - } - catch - { - } - - var error = $"HTTP {(int)response.StatusCode} {Enum.GetName(typeof(HttpStatusCode), response.StatusCode)}"; - if (!string.IsNullOrEmpty(content)) - { - error = $"{error}: {content}"; - } - throw new Exception(error); - } - - var fullMessage = await response.Content.ReadAsStringAsync(); - return StringUtil.ConvertFromJson(fullMessage); - } - - if (encounteringError) //print the message once only if there was an error - { - _term.WriteLine($"{DateTime.UtcNow:u}: Runner reconnected."); - encounteringError = false; - continuousError = 0; - } - } - catch (OperationCanceledException) when (token.IsCancellationRequested) - { - Trace.Info("Get next message has been cancelled."); - throw; - } - catch (TaskAgentAccessTokenExpiredException) - { - Trace.Info("Runner OAuth token has been revoked. Unable to pull message."); - _accessTokenRevoked = true; - throw; - } - catch (Exception ex) - { - Trace.Error("Catch exception during get next message."); - Trace.Error(ex); - - // don't retry if SkipSessionRecover = true, DT service will delete agent session to stop agent from taking more jobs. - if (ex is TaskAgentSessionExpiredException && !_settings.SkipSessionRecover && await CreateSessionAsync(token)) - { - Trace.Info($"{nameof(TaskAgentSessionExpiredException)} received, recovered by recreate session."); - } - else if (!IsGetNextMessageExceptionRetriable(ex)) - { - throw; - } - else - { - continuousError++; - //retry after a random backoff to avoid service throttling - //in case of there is a service error happened and all agents get kicked off of the long poll and all agent try to reconnect back at the same time. - if (continuousError <= 5) - { - // random backoff [15, 30] - _getNextMessageRetryInterval = BackoffTimerHelper.GetRandomBackoff(TimeSpan.FromSeconds(15), TimeSpan.FromSeconds(30), _getNextMessageRetryInterval); - } - else - { - // more aggressive backoff [30, 60] - _getNextMessageRetryInterval = BackoffTimerHelper.GetRandomBackoff(TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(60), _getNextMessageRetryInterval); - } - - if (!encounteringError) - { - //print error only on the first consecutive error - _term.WriteError($"{DateTime.UtcNow:u}: Runner connect error: {ex.Message}. Retrying until reconnected."); - encounteringError = true; - } - - // re-create VssConnection before next retry - await _runnerServer.RefreshConnectionAsync(RunnerConnectionType.MessageQueue, TimeSpan.FromSeconds(60)); - - Trace.Info("Sleeping for {0} seconds before retrying.", _getNextMessageRetryInterval.TotalSeconds); - await HostContext.Delay(_getNextMessageRetryInterval, token); - } - } - - // if (message == null) - // { - // if (heartbeat.Elapsed > TimeSpan.FromMinutes(30)) - // { - // Trace.Info($"No message retrieved from session '{_session.SessionId}' within last 30 minutes."); - // heartbeat.Restart(); - // } - // else - // { - // Trace.Verbose($"No message retrieved from session '{_session.SessionId}'."); - // } - - // continue; - // } - - // Trace.Info($"Message '{message.MessageId}' received from session '{_session.SessionId}'."); - // return message; - } - } -#else public async Task GetNextMessageAsync(CancellationToken token) { Trace.Entering(); @@ -487,7 +281,6 @@ namespace GitHub.Runner.Listener return message; } } -#endif public async Task DeleteMessageAsync(TaskAgentMessage message) { diff --git a/src/Runner.Sdk/Util/VssUtil.cs b/src/Runner.Sdk/Util/VssUtil.cs index f163c54c9..e6b6f9f83 100644 --- a/src/Runner.Sdk/Util/VssUtil.cs +++ b/src/Runner.Sdk/Util/VssUtil.cs @@ -36,7 +36,6 @@ namespace GitHub.Runner.Sdk public static VssConnection CreateConnection(Uri serverUri, VssCredentials credentials, IEnumerable additionalDelegatingHandler = null, TimeSpan? timeout = null) { - // System.Console.WriteLine("VssUtil.CreateConnection"); VssClientHttpRequestSettings settings = VssClientHttpRequestSettings.Default.Clone(); int maxRetryRequest; diff --git a/src/Runner.Worker/ActionManager.cs b/src/Runner.Worker/ActionManager.cs index 54a49814d..954d9a691 100644 --- a/src/Runner.Worker/ActionManager.cs +++ b/src/Runner.Worker/ActionManager.cs @@ -817,7 +817,6 @@ namespace GitHub.Runner.Worker { // Something else bad happened, let's go to our retry logic response.EnsureSuccessStatusCode(); - throw new Exception("Unexpected response code: " + response.StatusCode); } } } diff --git a/src/Sdk/Common/Common/Authentication/FederatedCredential.cs b/src/Sdk/Common/Common/Authentication/FederatedCredential.cs index 4beb49852..2a03c63bb 100644 --- a/src/Sdk/Common/Common/Authentication/FederatedCredential.cs +++ b/src/Sdk/Common/Common/Authentication/FederatedCredential.cs @@ -18,7 +18,6 @@ namespace GitHub.Services.Common public override bool IsAuthenticationChallenge(IHttpResponse webResponse) { - // System.Console.WriteLine($"FederatedCredential.IsAuthenticationChallenge"); if (webResponse == null) { return false; diff --git a/src/Sdk/Common/Common/Authentication/IssuedTokenCredential.cs b/src/Sdk/Common/Common/Authentication/IssuedTokenCredential.cs index 9697a3de5..1bed7d720 100644 --- a/src/Sdk/Common/Common/Authentication/IssuedTokenCredential.cs +++ b/src/Sdk/Common/Common/Authentication/IssuedTokenCredential.cs @@ -88,7 +88,6 @@ namespace GitHub.Services.Common IHttpResponse response, IssuedToken failedToken) { - // System.Console.WriteLine("IssuedTokenCredential.CreateTokenProvider"); if (response != null && !IsAuthenticationChallenge(response)) { throw new InvalidOperationException(); @@ -100,14 +99,12 @@ namespace GitHub.Services.Common { throw new InvalidOperationException($"The {nameof(TokenStorageUrl)} property must have a value if the {nameof(Storage)} property is set on this instance of {GetType().Name}."); } - // System.Console.WriteLine($"IssuedTokenCredential.CreateTokenProvider: TokenStorageUrl: {TokenStorageUrl}"); InitialToken = Storage.RetrieveToken(TokenStorageUrl, CredentialType); } IssuedTokenProvider provider = OnCreateTokenProvider(serverUrl, response); if (provider != null) { - // System.Console.WriteLine($"IssuedTokenCredential.CreateTokenProvider: provider: {provider}"); provider.TokenStorageUrl = TokenStorageUrl; } @@ -126,7 +123,6 @@ namespace GitHub.Services.Common internal virtual string GetAuthenticationChallenge(IHttpResponse webResponse) { - // System.Console.WriteLine($"IssuedTokenCredential.GetAuthenticationChallenge"); IEnumerable values; if (!webResponse.Headers.TryGetValues(Internal.HttpHeaders.WwwAuthenticate, out values)) { diff --git a/src/Sdk/Common/Common/Authentication/VssCredentials.cs b/src/Sdk/Common/Common/Authentication/VssCredentials.cs index 35bbb44df..c29c5fa31 100644 --- a/src/Sdk/Common/Common/Authentication/VssCredentials.cs +++ b/src/Sdk/Common/Common/Authentication/VssCredentials.cs @@ -108,7 +108,6 @@ namespace GitHub.Services.Common TaskScheduler scheduler, IVssCredentialPrompt credentialPrompt) { - // System.Console.WriteLine($"VssCredentials.ctor"); this.PromptType = promptType; if (promptType == CredentialPromptType.PromptIfNeeded && scheduler == null) @@ -151,7 +150,6 @@ namespace GitHub.Services.Common { get { - // System.Console.WriteLine($"VssCredentials.get_PromptType"); return m_promptType; } set @@ -172,7 +170,6 @@ namespace GitHub.Services.Common { get { - // System.Console.WriteLine($"VssCredentials.get_Federated"); return m_federatedCredential; } } @@ -187,7 +184,6 @@ namespace GitHub.Services.Common { get { - // System.Console.WriteLine($"VssCredentials.get_Storage"); return m_credentialStorage; } set @@ -207,7 +203,6 @@ namespace GitHub.Services.Common /// internal virtual bool TryGetValidAdalToken(IVssCredentialPrompt prompt) { - // System.Console.WriteLine($"VssCredentials.TryGetValidAdalToken"); return false; } @@ -223,7 +218,6 @@ namespace GitHub.Services.Common IHttpResponse webResponse, IssuedToken failedToken) { - // System.Console.WriteLine("VssCredential.CreateTokenProvider"); ArgumentUtility.CheckForNull(serverUrl, "serverUrl"); IssuedTokenProvider tokenProvider = null; @@ -269,7 +263,6 @@ namespace GitHub.Services.Common Uri serverUrl, out IssuedTokenProvider provider) { - // System.Console.WriteLine($"VssCredentials.TryGetTokenProvider"); ArgumentUtility.CheckForNull(serverUrl, "serverUrl"); lock (m_thisLock) @@ -279,13 +272,11 @@ namespace GitHub.Services.Common { if (m_federatedCredential != null) { - // System.Console.WriteLine($"VssCredentials.TryGetTokenProvider: Using federated credential"); m_currentProvider = m_federatedCredential.CreateTokenProvider(serverUrl, null, null); } if (m_currentProvider != null) { - // System.Console.WriteLine($"VssCredentials.TryGetTokenProvider: Issued token provider created"); VssHttpEventSource.Log.IssuedTokenProviderCreated(VssTraceActivity.Current, m_currentProvider); } } @@ -303,7 +294,6 @@ namespace GitHub.Services.Common /// True if this is an token authentication redirect, false otherwise internal bool IsAuthenticationChallenge(IHttpResponse webResponse) { - // System.Console.WriteLine($"VssCredentials.IsAuthenticationChallenge"); if (webResponse == null) { return false; @@ -323,7 +313,6 @@ namespace GitHub.Services.Common Uri serviceLocation, string identityProvider) { - // System.Console.WriteLine($"VssCredentials.SignOut"); // Remove the token in the storage and the current token provider. Note that we don't // call InvalidateToken here because we want to remove the whole token not just its value if ((m_currentProvider != null) && (m_currentProvider.CurrentToken != null)) @@ -360,7 +349,6 @@ namespace GitHub.Services.Common string token, IDictionary attributes) { - // System.Console.WriteLine($"VssCredentials.WriteAuthorizationToken"); int i = 0; for (int j = 0; j < token.Length; i++, j += 128) { @@ -372,7 +360,6 @@ namespace GitHub.Services.Common protected static string ReadAuthorizationToken(IDictionary attributes) { - // System.Console.WriteLine($"VssCredentials.ReadAuthorizationToken"); string authTokenCountValue; if (attributes.TryGetValue("AuthTokenSegmentCount", out authTokenCountValue)) { diff --git a/src/Sdk/Common/Common/VssHttpMessageHandler.cs b/src/Sdk/Common/Common/VssHttpMessageHandler.cs index 61c1de6f8..84ac561a1 100644 --- a/src/Sdk/Common/Common/VssHttpMessageHandler.cs +++ b/src/Sdk/Common/Common/VssHttpMessageHandler.cs @@ -49,7 +49,6 @@ namespace GitHub.Services.Common VssHttpRequestSettings settings, HttpMessageHandler innerHandler) { - // System.Console.WriteLine("VssHttpMessageHandler.ctor"); this.Credentials = credentials; this.Settings = settings; this.ExpectContinue = settings.ExpectContinue; @@ -123,7 +122,6 @@ namespace GitHub.Services.Common HttpRequestMessage request, CancellationToken cancellationToken) { - // System.Console.WriteLine("VssHttpMessageHandler.SendAsync"); VssTraceActivity traceActivity = VssTraceActivity.Current; var traceInfo = VssHttpMessageHandlerTraceInfo.GetTraceInfo(request); @@ -132,7 +130,6 @@ namespace GitHub.Services.Common if (!m_appliedClientCertificatesToTransportHandler && request.RequestUri.Scheme == "https") { - // System.Console.WriteLine("VssHttpMessageHandler.SendAsync: !appliedClientCertificatesToTransportHandler"); HttpClientHandler httpClientHandler = m_transportHandler as HttpClientHandler; if (httpClientHandler != null && this.Settings.ClientCertificateManager != null && @@ -147,7 +144,6 @@ namespace GitHub.Services.Common if (!m_appliedServerCertificateValidationCallbackToTransportHandler && request.RequestUri.Scheme == "https") { - // System.Console.WriteLine("VssHttpMessageHandler.SendAsync: !appliedServerCertificateValidationCallbackToTransportHandler"); HttpClientHandler httpClientHandler = m_transportHandler as HttpClientHandler; if (httpClientHandler != null && this.Settings.ServerCertificateValidationCallback != null) @@ -169,7 +165,6 @@ namespace GitHub.Services.Common IssuedTokenProvider provider; if (this.Credentials.TryGetTokenProvider(request.RequestUri, out provider)) { - // System.Console.WriteLine("VssHttpMessageHandler.SendAsync: Got token provider from credentials"); token = provider.CurrentToken; } @@ -230,7 +225,6 @@ namespace GitHub.Services.Common traceInfo?.TraceResponseContentTime(); - // System.Console.WriteLine($"VssHttpMessageHandler.SendAsync: Creating response wrapper"); responseWrapper = new HttpResponseMessageWrapper(response); if (!this.Credentials.IsAuthenticationChallenge(responseWrapper)) @@ -238,7 +232,6 @@ namespace GitHub.Services.Common // Validate the token after it has been successfully authenticated with the server. if (provider != null) { - // System.Console.WriteLine("VssHttpMessageHandler.SendAsync: Validating token"); provider.ValidateToken(token, responseWrapper); } @@ -250,7 +243,6 @@ namespace GitHub.Services.Common } else { - // System.Console.WriteLine($"VssHttpMessageHandler.SendAsync: Auth challenge. Response status code {response.StatusCode}; headers {response.Headers}"); // In the case of a Windows token, only apply it to the web proxy if it // returned a 407 Proxy Authentication Required. If we didn't get this // status code back, then the proxy (if there is one) is clearly working fine, @@ -296,7 +288,6 @@ namespace GitHub.Services.Common } // Now invoke the provider and await the result - // System.Console.WriteLine($"VssHttpMessageHandler.SendAsync: Calling GetTokenAsync"); token = await provider.GetTokenAsync(token, tokenSource.Token).ConfigureAwait(false); // I always see 0 here, but the method above could take more time so keep for now @@ -441,7 +432,6 @@ namespace GitHub.Services.Common activity != VssTraceActivity.Empty && !request.Headers.Contains(HttpHeaders.TfsSessionHeader)) { - // System.Console.WriteLine($"VssHttpMessageHandler.ApplyHeaders: Activity ID {activity.Id}"); request.Headers.Add(HttpHeaders.TfsSessionHeader, activity.Id.ToString("D")); } @@ -462,16 +452,13 @@ namespace GitHub.Services.Common ICredentials credentialsToken = token as ICredentials; if (credentialsToken != null) { - // System.Console.WriteLine("VssHttpMessageHandler.ApplyToken: Credentials token != null"); if (applyICredentialsToWebProxy) { - // System.Console.WriteLine("VssHttpMessageHandler.ApplyToken: Apply credentials to web proxy"); HttpClientHandler httpClientHandler = m_transportHandler as HttpClientHandler; if (httpClientHandler != null && httpClientHandler.Proxy != null) { - // System.Console.WriteLine("VssHttpMessageHandler.ApplyToken: Setting proxy crednetials"); httpClientHandler.Proxy.Credentials = credentialsToken; } } @@ -480,7 +467,6 @@ namespace GitHub.Services.Common } else { - // System.Console.WriteLine("VssHttpMessageHandler.ApplyToken: Applying credentials to request"); token.ApplyTo(new HttpRequestMessageWrapper(request)); } } @@ -493,8 +479,7 @@ namespace GitHub.Services.Common HttpClientHandler httpClientHandler = handler as HttpClientHandler; if (httpClientHandler != null) { - // System.Console.WriteLine($"VssHttpMessageHandler.ApplySettings: Default credentials = {defaultCredentials} AllowAutoRedirect = {settings.AllowAutoRedirect}"); - httpClientHandler.AllowAutoRedirect = true; //settings.AllowAutoRedirect; + httpClientHandler.AllowAutoRedirect = settings.AllowAutoRedirect; httpClientHandler.ClientCertificateOptions = ClientCertificateOption.Manual; //Setting httpClientHandler.UseDefaultCredentials to false in .Net Core, clears httpClientHandler.Credentials if //credentials is already set to defaultcredentials. Therefore httpClientHandler.Credentials must be @@ -565,7 +550,6 @@ namespace GitHub.Services.Common Uri uri, String authType) { - // System.Console.WriteLine($"CredentialWrapper.GetCredential: InnerCredentials = {InnerCredentials}"); return InnerCredentials != null ? InnerCredentials.GetCredential(uri, authType) : null; } } diff --git a/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs b/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs index 763aa9bf8..411ee3648 100644 --- a/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs +++ b/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs @@ -379,7 +379,6 @@ namespace GitHub.DistributedTask.WebApi /// /// /// - /// /// /// The cancellation token to cancel operation. [EditorBrowsable(EditorBrowsableState.Never)] @@ -388,7 +387,6 @@ namespace GitHub.DistributedTask.WebApi long requestId, Guid lockToken, TaskAgentJobRequest request, - Guid targetHostId, object userState = null, CancellationToken cancellationToken = default) { @@ -399,7 +397,6 @@ namespace GitHub.DistributedTask.WebApi List> queryParams = new List>(); queryParams.Add("lockToken", lockToken.ToString()); - queryParams.Add("targetHostId", targetHostId.ToString()); return SendAsync( httpMethod, @@ -720,7 +717,6 @@ namespace GitHub.DistributedTask.WebApi [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task GetJobMessageAsync( Guid scopeId, - Guid hostId, string planType, string planGroup, Guid planId, @@ -733,7 +729,6 @@ namespace GitHub.DistributedTask.WebApi List> queryParams = new List>(); queryParams.Add("scopeId", scopeId.ToString()); - queryParams.Add("hostId", hostId.ToString()); queryParams.Add("planType", planType); queryParams.Add("planGroup", planGroup); queryParams.Add("planId", planId.ToString()); @@ -762,7 +757,6 @@ namespace GitHub.DistributedTask.WebApi object userState = null, CancellationToken cancellationToken = default) { - // System.Console.WriteLine("TaskAgentHttpClientBase.CreateAgentSessionAsync"); HttpMethod httpMethod = new HttpMethod("POST"); Guid locationId = new Guid("134e239e-2df3-4794-a6f6-24f1f19ec8dc"); object routeValues = new { poolId = poolId }; diff --git a/src/Sdk/DTWebApi/WebApi/TaskAgentHttpClient.cs b/src/Sdk/DTWebApi/WebApi/TaskAgentHttpClient.cs index e21687329..c97fea0a4 100644 --- a/src/Sdk/DTWebApi/WebApi/TaskAgentHttpClient.cs +++ b/src/Sdk/DTWebApi/WebApi/TaskAgentHttpClient.cs @@ -64,7 +64,6 @@ namespace GitHub.DistributedTask.WebApi Guid lockToken, DateTime finishTime, TaskResult result, - Guid targetHostId, Object userState = null, CancellationToken cancellationToken = default(CancellationToken)) { @@ -75,7 +74,7 @@ namespace GitHub.DistributedTask.WebApi Result = result, }; - return UpdateAgentRequestAsync(poolId, requestId, lockToken, request, targetHostId, userState, cancellationToken); + return UpdateAgentRequestAsync(poolId, requestId, lockToken, request, userState, cancellationToken); } public Task> GetAgentsAsync( @@ -153,7 +152,6 @@ namespace GitHub.DistributedTask.WebApi CancellationToken cancellationToken = default(CancellationToken), Func> processResponse = null) { - // System.Console.WriteLine("TaskAgentHttpClient.SendAsync 1"); return SendAsync(method, null, locationId, routeValues, version, content, queryParameters, userState, cancellationToken, processResponse); } @@ -172,7 +170,6 @@ namespace GitHub.DistributedTask.WebApi using (VssTraceActivity.GetOrCreate().EnterCorrelationScope()) using (HttpRequestMessage requestMessage = await CreateRequestMessageAsync(method, additionalHeaders, locationId, routeValues, version, content, queryParameters, userState, cancellationToken).ConfigureAwait(false)) { - // System.Console.WriteLine("TaskAgentHttpClient.SendAsync 2"); return await SendAsync(requestMessage, userState, cancellationToken, processResponse).ConfigureAwait(false); } } @@ -183,7 +180,6 @@ namespace GitHub.DistributedTask.WebApi CancellationToken cancellationToken = default(CancellationToken), Func> processResponse = null) { - // System.Console.WriteLine("TaskAgentHttpClient.SendAsync 3"); if (processResponse == null) { processResponse = ReadContentAsAsync; diff --git a/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs b/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs index f1b7800cc..7cbcd80c9 100644 --- a/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs +++ b/src/Sdk/WebApi/WebApi/Location/ServerDataProvider.cs @@ -801,7 +801,6 @@ namespace GitHub.Services.WebApi.Location private async Task GetConnectionDataAsync(ConnectOptions connectOptions, int lastChangeId, CancellationToken cancellationToken) { - // System.Console.WriteLine("ServerDataProvider.GetConnectionDataAsync"); int timeoutRetries = 1; while (true) diff --git a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthAccessToken.cs b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthAccessToken.cs index 7dbd0d6ed..530d4c4d9 100644 --- a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthAccessToken.cs +++ b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthAccessToken.cs @@ -75,7 +75,6 @@ namespace GitHub.Services.OAuth internal override void ApplyTo(IHttpRequest request) { - // System.Console.WriteLine($"VssOAuthAccessToken.ApplyTo: Bearer {m_value}"); request.Headers.SetValue(Common.Internal.HttpHeaders.Authorization, $"Bearer {m_value}"); } diff --git a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthAccessTokenCredential.cs b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthAccessTokenCredential.cs index 7bbe68a96..03cf0c012 100644 --- a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthAccessTokenCredential.cs +++ b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthAccessTokenCredential.cs @@ -60,7 +60,6 @@ namespace GitHub.Services.OAuth Uri serverUrl, IHttpResponse response) { - // System.Console.WriteLine($"VssOAuthAccessTokenCredential.OnCreateTokenProvider"); return new VssOAuthAccessTokenProvider(this, serverUrl, null); } @@ -72,7 +71,6 @@ namespace GitHub.Services.OAuth Uri signInUrl) : base(credential, serverUrl, signInUrl) { - // System.Console.WriteLine($"VssOAuthAccessTokenProvider.ctor"); } public override Boolean GetTokenIsInteractive diff --git a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthCredential.cs b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthCredential.cs index b85e9870a..b5c4ea5c1 100644 --- a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthCredential.cs +++ b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthCredential.cs @@ -103,23 +103,17 @@ namespace GitHub.Services.OAuth /// True if the web response indicates an authorization challenge; otherwise, false public override Boolean IsAuthenticationChallenge(IHttpResponse webResponse) { - // System.Console.WriteLine($"VssOAuthCredential.IsAuthenticationChallenge"); if (webResponse == null) { - // System.Console.WriteLine($"VssOAuthCredential.IsAuthenticationChallenge: webResponse is null"); return false; } if (webResponse.StatusCode == HttpStatusCode.Found || webResponse.StatusCode == HttpStatusCode.Unauthorized) { - // System.Console.WriteLine($"VssOAuthCredential.IsAuthenticationChallenge: found or unauthorized"); - var result = webResponse.Headers.GetValues(Common.Internal.HttpHeaders.WwwAuthenticate).Any(x => x.IndexOf("Bearer", StringComparison.OrdinalIgnoreCase) >= 0); - // System.Console.WriteLine($"VssOAuthCredential.IsAuthenticationChallenge: {result}"); - return result; + return webResponse.Headers.GetValues(Common.Internal.HttpHeaders.WwwAuthenticate).Any(x => x.IndexOf("Bearer", StringComparison.OrdinalIgnoreCase) >= 0); } - // System.Console.WriteLine($"VssOAuthCredential.IsAuthenticationChallenge: false"); return false; } @@ -127,7 +121,6 @@ namespace GitHub.Services.OAuth Uri serverUrl, IHttpResponse response) { - // System.Console.WriteLine($"VssOAuthCredential.OnCreateTokenProvider"); return new VssOAuthTokenProvider(this, serverUrl); } diff --git a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenHttpClient.cs b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenHttpClient.cs index 27ec89e09..994675e41 100644 --- a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenHttpClient.cs +++ b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenHttpClient.cs @@ -54,7 +54,6 @@ namespace GitHub.Services.OAuth VssOAuthTokenParameters tokenParameters = null, CancellationToken cancellationToken = default(CancellationToken)) { - // todo: qqq VssTraceActivity traceActivity = VssTraceActivity.Current; using (HttpClient client = new HttpClient(CreateMessageHandler(this.AuthorizationUrl))) { diff --git a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs index 6acf83937..84122a494 100644 --- a/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs +++ b/src/Sdk/WebApi/WebApi/OAuth/VssOAuthTokenProvider.cs @@ -47,7 +47,6 @@ namespace GitHub.Services.OAuth VssOAuthTokenParameters tokenParameters) : base(credential, serverUrl, authorizationUrl) { - // System.Console.WriteLine($"VssOAuthTokenProvider.ctor"); m_grant = grant; m_tokenParameters = tokenParameters; m_clientCredential = clientCrential; @@ -60,7 +59,6 @@ namespace GitHub.Services.OAuth { get { - // System.Console.WriteLine($"VssOAuthTokenProvider.get_Grant"); return m_grant; } } @@ -72,7 +70,6 @@ namespace GitHub.Services.OAuth { get { - // System.Console.WriteLine($"VssOAuthTokenProvider.get_ClientCredential"); return m_clientCredential; } } @@ -84,7 +81,6 @@ namespace GitHub.Services.OAuth { get { - // System.Console.WriteLine($"VssOAuthTokenProvider.get_TokenParameters"); return m_tokenParameters; } } @@ -96,7 +92,6 @@ namespace GitHub.Services.OAuth { get { - // System.Console.WriteLine($"VssOAuthTokenProvider.get_GetTokenIsInteractive"); return false; } } @@ -105,7 +100,6 @@ namespace GitHub.Services.OAuth { get { - // System.Console.WriteLine($"VssOAuthTokenProvider.get_AuthenticationParameter"); if (this.ClientCredential == null) { return null; @@ -121,14 +115,12 @@ namespace GitHub.Services.OAuth { get { - // System.Console.WriteLine($"VssOAuthTokenProvider.get_AuthenticationScheme"); return "Bearer"; } } public async Task ValidateCredentialAsync(CancellationToken cancellationToken) { - // System.Console.WriteLine($"VssOAuthTokenProvider.ValidateCredentialAsync: Calling VssOAuthTokenHttpClient.GetTokenAsync"); var tokenHttpClient = new VssOAuthTokenHttpClient(this.SignInUrl); var tokenResponse = await tokenHttpClient.GetTokenAsync(this.Grant, this.ClientCredential, this.TokenParameters, cancellationToken); @@ -147,7 +139,6 @@ namespace GitHub.Services.OAuth IssuedToken failedToken, CancellationToken cancellationToken) { - // System.Console.WriteLine($"VssOAuthTokenProvider.OnGetTokenAsync"); if (this.SignInUrl == null || this.Grant == null || this.ClientCredential == null) @@ -160,7 +151,6 @@ namespace GitHub.Services.OAuth try { var tokenHttpClient = new VssOAuthTokenHttpClient(this.SignInUrl); - // System.Console.WriteLine($"VssOAuthTokenProvider.OnGetTokenAsync: Calling VssOAuthTokenHttpClient.GetTokenAsync; sign-in url {this.SignInUrl.AbsoluteUri}"); var tokenResponse = await tokenHttpClient.GetTokenAsync(this.Grant, this.ClientCredential, this.TokenParameters, cancellationToken).ConfigureAwait(false); if (!String.IsNullOrEmpty(tokenResponse.AccessToken)) { @@ -207,7 +197,6 @@ namespace GitHub.Services.OAuth protected virtual IssuedToken CreateIssuedToken(VssOAuthTokenResponse tokenResponse) { - // System.Console.WriteLine($"VssOAuthTokenProvider.CreateIssuedToken"); if (tokenResponse.ExpiresIn > 0) { return new VssOAuthAccessToken(tokenResponse.AccessToken, DateTime.UtcNow.AddSeconds(tokenResponse.ExpiresIn)); diff --git a/src/Sdk/WebApi/WebApi/VssConnection.cs b/src/Sdk/WebApi/WebApi/VssConnection.cs index 3c48811f8..38bfad8c7 100644 --- a/src/Sdk/WebApi/WebApi/VssConnection.cs +++ b/src/Sdk/WebApi/WebApi/VssConnection.cs @@ -100,7 +100,6 @@ namespace GitHub.Services.WebApi IDictionary parameters, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("VssConnection.ConnectAsync"); CheckForDisposed(); // Set the connectMode on the credential's FederatedPrompt if (Credentials.Federated != null && Credentials.Federated.Prompt != null) diff --git a/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs b/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs index 08d01a0cd..d5a9c8b11 100644 --- a/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs +++ b/src/Sdk/WebApi/WebApi/VssHttpClientBase.cs @@ -390,7 +390,6 @@ namespace GitHub.Services.WebApi Object userState = null, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("VssHttpClientBase.SendAsync 1"); return SendAsync(method, null, locationId, routeValues, version, content, queryParameters, userState, cancellationToken); } @@ -405,7 +404,6 @@ namespace GitHub.Services.WebApi Object userState = null, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("VssHttpClientBase.SendAsync 2"); using (VssTraceActivity.GetOrCreate().EnterCorrelationScope()) using (HttpRequestMessage requestMessage = await CreateRequestMessageAsync(method, additionalHeaders, locationId, routeValues, version, content, queryParameters, userState, cancellationToken).ConfigureAwait(false)) { @@ -424,7 +422,6 @@ namespace GitHub.Services.WebApi Object userState = null, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("VssHttpClientBase.SendAsync 3"); using (VssTraceActivity.GetOrCreate().EnterCorrelationScope()) using (HttpRequestMessage requestMessage = await CreateRequestMessageAsync(method, additionalHeaders, locationId, routeValues, version, content, queryParameters, userState, cancellationToken).ConfigureAwait(false)) { @@ -458,7 +455,6 @@ namespace GitHub.Services.WebApi Object userState = null, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("VssHttpClientBase.SendAsync 4"); using (VssTraceActivity.GetOrCreate().EnterCorrelationScope()) using (HttpRequestMessage requestMessage = await CreateRequestMessageAsync(method, locationId, routeValues, version, content, queryParameters, userState, cancellationToken).ConfigureAwait(false)) { @@ -477,7 +473,6 @@ namespace GitHub.Services.WebApi Object userState = null, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("VssHttpClientBase.SendAsync 5"); using (VssTraceActivity.GetOrCreate().EnterCorrelationScope()) using (HttpRequestMessage requestMessage = await CreateRequestMessageAsync(method, locationId, routeValues, version, content, queryParameters, userState, cancellationToken).ConfigureAwait(false)) { @@ -506,7 +501,6 @@ namespace GitHub.Services.WebApi CancellationToken cancellationToken = default(CancellationToken), String mediaType = c_jsonMediaType) { - // System.Console.WriteLine("VssHttpClientBase.CreateRequestMessageAsync 1"); return CreateRequestMessageAsync(method, null, locationId, routeValues, version, content, queryParameters, userState, cancellationToken, mediaType); } @@ -532,7 +526,6 @@ namespace GitHub.Services.WebApi CancellationToken cancellationToken = default(CancellationToken), String mediaType = c_jsonMediaType) { - // System.Console.WriteLine("VssHttpClientBase.CreateRequestMessageAsync 2"); // Lookup the location ApiResourceLocation location = await GetResourceLocationAsync(locationId, userState, cancellationToken).ConfigureAwait(false); if (location == null) @@ -562,7 +555,6 @@ namespace GitHub.Services.WebApi IEnumerable> queryParameters = null, String mediaType = c_jsonMediaType) { - // System.Console.WriteLine("VssHttpClientBase.CreateRequestMessageAsync 3"); return CreateRequestMessage(method, null, location, routeValues, version, content, queryParameters, mediaType); } @@ -586,7 +578,6 @@ namespace GitHub.Services.WebApi IEnumerable> queryParameters = null, String mediaType = c_jsonMediaType) { - // System.Console.WriteLine("VssHttpClientBase.CreateRequestMessageAsync 4"); CheckForDisposed(); // Negotiate the request version to send ApiResourceVersion requestVersion = NegotiateRequestVersion(location, version); @@ -758,14 +749,12 @@ namespace GitHub.Services.WebApi //from deadlocking... using (HttpResponseMessage response = await this.SendAsync(message, userState, cancellationToken).ConfigureAwait(false)) { - // System.Console.WriteLine("VssHttpClientBase.SendAsync 6"); return await ReadContentAsAsync(response, cancellationToken).ConfigureAwait(false); } } protected async Task ReadContentAsAsync(HttpResponseMessage response, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine($"VssHttpClientBase.ReadContentAsAsync {response.Headers}"); CheckForDisposed(); Boolean isJson = IsJsonResponse(response); bool mismatchContentType = false; @@ -777,20 +766,17 @@ namespace GitHub.Services.WebApi !typeof(Byte[]).GetTypeInfo().IsAssignableFrom(typeof(T).GetTypeInfo()) && !typeof(JObject).GetTypeInfo().IsAssignableFrom(typeof(T).GetTypeInfo())) { - // System.Console.WriteLine("VssHttpClientBase.ReadContentAsAsync: isJson 1"); // expect it to come back wrapped, if it isn't it is a bug! var wrapper = await ReadJsonContentAsync>(response, cancellationToken).ConfigureAwait(false); return wrapper.Value; } else if (isJson) { - // System.Console.WriteLine("VssHttpClientBase.ReadContentAsAsync: isJson 2"); return await ReadJsonContentAsync(response, cancellationToken).ConfigureAwait(false); } } catch (JsonReaderException) { - // System.Console.WriteLine("VssHttpClientBase.ReadContentAsAsync: mismatchContentType"); // We thought the content was JSON but failed to parse. // In this case, do nothing and utilize the HandleUnknownContentType call below mismatchContentType = true; @@ -816,7 +802,6 @@ namespace GitHub.Services.WebApi Object userState = null, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("VssHttpClientBase.SendAsync 7"); // the default in httpClient for HttpCompletionOption is ResponseContentRead so that is what we do here return this.SendAsync( message, @@ -831,7 +816,6 @@ namespace GitHub.Services.WebApi Object userState = null, CancellationToken cancellationToken = default(CancellationToken)) { - // System.Console.WriteLine("VssHttpClientBase.SendAsync 8"); CheckForDisposed(); if (message.Headers.UserAgent != null) { @@ -867,7 +851,6 @@ namespace GitHub.Services.WebApi //ConfigureAwait(false) enables the continuation to be run outside //any captured SyncronizationContext (such as ASP.NET's) which keeps things //from deadlocking... - // System.Console.WriteLine($"VssHttpClientBase.SendAsync 8: Calling Client.SendAsync {message}"); HttpResponseMessage response = await Client.SendAsync(message, completionOption, cancellationToken).ConfigureAwait(false); // Inject delay or failure for testing @@ -885,7 +868,6 @@ namespace GitHub.Services.WebApi [Obsolete("Use VssHttpClientBase.HandleResponseAsync instead")] protected virtual void HandleResponse(HttpResponseMessage response) { - // System.Console.WriteLine("VssHttpClientBase.HandleResponse 1"); } @@ -893,7 +875,6 @@ namespace GitHub.Services.WebApi HttpResponseMessage response, CancellationToken cancellationToken) { - // System.Console.WriteLine($"VssHttpClientBase.HandleResponse 2 status code {response.StatusCode} headers {response.Headers}"); response.Trace(); VssHttpEventSource.Log.HttpRequestStop(VssTraceActivity.Current, response); @@ -905,7 +886,6 @@ namespace GitHub.Services.WebApi } else if (ShouldThrowError(response)) { - // System.Console.WriteLine("VssHttpClientBase.HandleResponse: Should throw error"); Exception exToThrow = null; if (IsJsonResponse(response)) { @@ -929,7 +909,6 @@ namespace GitHub.Services.WebApi { message = response.ReasonPhrase; } - // System.Console.WriteLine($"VssHttpClientBase.HandleResponse: Exception message {message}"); exToThrow = new VssServiceResponseException(response.StatusCode, message, exToThrow); } diff --git a/src/dev.sh b/src/dev.sh index 13ccbc747..e7b075ca5 100755 --- a/src/dev.sh +++ b/src/dev.sh @@ -2,7 +2,7 @@ ############################################################################### # -# ./dev.sh build/layout/test/package [Debug/Release] [linux-x64|linux-x86|linux-arm64|linux-arm|osx-x64|win-x64|win-x86] [use-broker] +# ./dev.sh build/layout/test/package [Debug/Release] # ############################################################################### @@ -11,7 +11,6 @@ set -e DEV_CMD=$1 DEV_CONFIG=$2 DEV_TARGET_RUNTIME=$3 -DEV_USE_BROKER=$4 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" LAYOUT_DIR="$SCRIPT_DIR/../_layout" @@ -82,13 +81,6 @@ elif [[ "$CURRENT_PLATFORM" == 'darwin' ]]; then fi fi -if [ -n "$DEV_USE_BROKER" ]; then - USE_BROKER='-p:USE_BROKER="true"' -else - USE_BROKER='' -fi - - function failed() { local error=${1:-Undefined error} @@ -122,13 +114,13 @@ function heading() function build () { heading "Building ..." - dotnet msbuild -t:Build -p:PackageRuntime="${RUNTIME_ID}" -p:BUILDCONFIG="${BUILD_CONFIG}" -p:RunnerVersion="${RUNNER_VERSION}" $USE_BROKER ./dir.proj || failed build + dotnet msbuild -t:Build -p:PackageRuntime="${RUNTIME_ID}" -p:BUILDCONFIG="${BUILD_CONFIG}" -p:RunnerVersion="${RUNNER_VERSION}" ./dir.proj || failed build } function layout () { heading "Create layout ..." - dotnet msbuild -t:layout -p:PackageRuntime="${RUNTIME_ID}" -p:BUILDCONFIG="${BUILD_CONFIG}" -p:RunnerVersion="${RUNNER_VERSION}" $USE_BROKER ./dir.proj || failed build + dotnet msbuild -t:layout -p:PackageRuntime="${RUNTIME_ID}" -p:BUILDCONFIG="${BUILD_CONFIG}" -p:RunnerVersion="${RUNNER_VERSION}" ./dir.proj || failed build #change execution flag to allow running with sudo if [[ ("$CURRENT_PLATFORM" == "linux") || ("$CURRENT_PLATFORM" == "darwin") ]]; then