Small runner code cleanup. (#3773)

This commit is contained in:
Tingluo Huang
2025-03-28 16:25:12 -04:00
committed by GitHub
parent e86c9487ab
commit 2cb1f9431a
4 changed files with 20 additions and 20 deletions

View File

@@ -88,7 +88,12 @@ namespace GitHub.Runner.Common
public Task ForceRefreshConnection(VssCredentials credentials) public Task ForceRefreshConnection(VssCredentials credentials)
{ {
return ConnectAsync(_brokerUri, credentials); if (!string.IsNullOrEmpty(_brokerUri?.AbsoluteUri))
{
return ConnectAsync(_brokerUri, credentials);
}
return Task.CompletedTask;
} }
public bool ShouldRetryException(Exception ex) public bool ShouldRetryException(Exception ex)

View File

@@ -29,6 +29,7 @@ namespace GitHub.Runner.Listener
private TaskAgentSession _session; private TaskAgentSession _session;
private IRunnerServer _runnerServer; private IRunnerServer _runnerServer;
private IBrokerServer _brokerServer; private IBrokerServer _brokerServer;
private ICredentialManager _credMgr;
private readonly Dictionary<string, int> _sessionCreationExceptionTracker = new(); private readonly Dictionary<string, int> _sessionCreationExceptionTracker = new();
private bool _accessTokenRevoked = false; private bool _accessTokenRevoked = false;
private readonly TimeSpan _sessionCreationRetryInterval = TimeSpan.FromSeconds(30); private readonly TimeSpan _sessionCreationRetryInterval = TimeSpan.FromSeconds(30);
@@ -43,6 +44,7 @@ namespace GitHub.Runner.Listener
_term = HostContext.GetService<ITerminal>(); _term = HostContext.GetService<ITerminal>();
_runnerServer = HostContext.GetService<IRunnerServer>(); _runnerServer = HostContext.GetService<IRunnerServer>();
_brokerServer = HostContext.GetService<IBrokerServer>(); _brokerServer = HostContext.GetService<IBrokerServer>();
_credMgr = HostContext.GetService<ICredentialManager>();
} }
public async Task<CreateSessionResult> CreateSessionAsync(CancellationToken token) public async Task<CreateSessionResult> CreateSessionAsync(CancellationToken token)
@@ -63,8 +65,7 @@ namespace GitHub.Runner.Listener
// Create connection. // Create connection.
Trace.Info("Loading Credentials"); Trace.Info("Loading Credentials");
var credMgr = HostContext.GetService<ICredentialManager>(); _creds = _credMgr.LoadCredentials();
_creds = credMgr.LoadCredentials();
var agent = new TaskAgentReference var agent = new TaskAgentReference
{ {
@@ -329,7 +330,7 @@ namespace GitHub.Runner.Listener
} }
} }
public async Task RefreshListenerTokenAsync(CancellationToken cancellationToken) public async Task RefreshListenerTokenAsync()
{ {
await RefreshBrokerConnectionAsync(); await RefreshBrokerConnectionAsync();
} }
@@ -432,17 +433,10 @@ namespace GitHub.Runner.Listener
private async Task RefreshBrokerConnectionAsync() private async Task RefreshBrokerConnectionAsync()
{ {
var configManager = HostContext.GetService<IConfigurationManager>(); Trace.Info("Reload credentials.");
_settings = configManager.LoadSettings(); _creds = _credMgr.LoadCredentials();
await _brokerServer.ConnectAsync(new Uri(_settings.ServerUrlV2), _creds);
if (string.IsNullOrEmpty(_settings.ServerUrlV2)) Trace.Info("Connection to Broker Server recreated.");
{
throw new InvalidOperationException("ServerUrlV2 is not set");
}
var credMgr = HostContext.GetService<ICredentialManager>();
VssCredentials creds = credMgr.LoadCredentials();
await _brokerServer.ConnectAsync(new Uri(_settings.ServerUrlV2), creds);
} }
} }
} }

View File

@@ -33,7 +33,7 @@ namespace GitHub.Runner.Listener
Task<TaskAgentMessage> GetNextMessageAsync(CancellationToken token); Task<TaskAgentMessage> GetNextMessageAsync(CancellationToken token);
Task DeleteMessageAsync(TaskAgentMessage message); Task DeleteMessageAsync(TaskAgentMessage message);
Task RefreshListenerTokenAsync(CancellationToken token); Task RefreshListenerTokenAsync();
void OnJobStatus(object sender, JobStatusEventArgs e); void OnJobStatus(object sender, JobStatusEventArgs e);
} }
@@ -44,6 +44,7 @@ namespace GitHub.Runner.Listener
private ITerminal _term; private ITerminal _term;
private IRunnerServer _runnerServer; private IRunnerServer _runnerServer;
private IBrokerServer _brokerServer; private IBrokerServer _brokerServer;
private ICredentialManager _credMgr;
private TaskAgentSession _session; private TaskAgentSession _session;
private TimeSpan _getNextMessageRetryInterval; private TimeSpan _getNextMessageRetryInterval;
private bool _accessTokenRevoked = false; private bool _accessTokenRevoked = false;
@@ -64,6 +65,7 @@ namespace GitHub.Runner.Listener
_term = HostContext.GetService<ITerminal>(); _term = HostContext.GetService<ITerminal>();
_runnerServer = HostContext.GetService<IRunnerServer>(); _runnerServer = HostContext.GetService<IRunnerServer>();
_brokerServer = hostContext.GetService<IBrokerServer>(); _brokerServer = hostContext.GetService<IBrokerServer>();
_credMgr = hostContext.GetService<ICredentialManager>();
} }
public async Task<CreateSessionResult> CreateSessionAsync(CancellationToken token) public async Task<CreateSessionResult> CreateSessionAsync(CancellationToken token)
@@ -78,8 +80,7 @@ namespace GitHub.Runner.Listener
// Create connection. // Create connection.
Trace.Info("Loading Credentials"); Trace.Info("Loading Credentials");
var credMgr = HostContext.GetService<ICredentialManager>(); _creds = _credMgr.LoadCredentials();
_creds = credMgr.LoadCredentials();
var agent = new TaskAgentReference var agent = new TaskAgentReference
{ {
@@ -411,7 +412,7 @@ namespace GitHub.Runner.Listener
} }
} }
public async Task RefreshListenerTokenAsync(CancellationToken cancellationToken) public async Task RefreshListenerTokenAsync()
{ {
await _runnerServer.RefreshConnectionAsync(RunnerConnectionType.MessageQueue, TimeSpan.FromSeconds(60)); await _runnerServer.RefreshConnectionAsync(RunnerConnectionType.MessageQueue, TimeSpan.FromSeconds(60));
await _brokerServer.ForceRefreshConnection(_creds); await _brokerServer.ForceRefreshConnection(_creds);

View File

@@ -633,7 +633,7 @@ namespace GitHub.Runner.Listener
else if (string.Equals(message.MessageType, TaskAgentMessageTypes.ForceTokenRefresh)) else if (string.Equals(message.MessageType, TaskAgentMessageTypes.ForceTokenRefresh))
{ {
Trace.Info("Received ForceTokenRefreshMessage"); Trace.Info("Received ForceTokenRefreshMessage");
await _listener.RefreshListenerTokenAsync(messageQueueLoopTokenSource.Token); await _listener.RefreshListenerTokenAsync();
} }
else if (string.Equals(message.MessageType, RunnerRefreshConfigMessage.MessageType)) else if (string.Equals(message.MessageType, RunnerRefreshConfigMessage.MessageType))
{ {