diff --git a/src/Runner.Common/RunServer.cs b/src/Runner.Common/RunServer.cs index 84327446c..582054133 100644 --- a/src/Runner.Common/RunServer.cs +++ b/src/Runner.Common/RunServer.cs @@ -1,14 +1,14 @@ -using GitHub.DistributedTask.WebApi; -using System; +using System; using System.Collections.Generic; using System.Runtime.Serialization; 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 GitHub.DistributedTask.Pipelines; +using GitHub.DistributedTask.WebApi; +using GitHub.Runner.Common.Util; +using GitHub.Runner.Sdk; +using GitHub.Services.Common; +using GitHub.Services.WebApi; namespace GitHub.Runner.Common { @@ -17,7 +17,7 @@ namespace GitHub.Runner.Common { Task ConnectAsync(Uri serverUrl, VssCredentials credentials); - Task GetJobMessageAsync(Guid scopeId, Guid hostId, string planType, string planGroup, Guid planId, IList instanceRefsJson); + Task GetJobMessageAsync(string id); } public sealed class RunServer : RunnerService, IRunServer @@ -28,7 +28,6 @@ namespace GitHub.Runner.Common public async Task ConnectAsync(Uri serverUrl, VssCredentials credentials) { - // System.Console.WriteLine("RunServer.ConnectAsync"); _connection = await EstablishVssConnection(serverUrl, credentials, TimeSpan.FromSeconds(100)); _taskAgentClient = _connection.GetClient(); _hasConnection = true; @@ -36,7 +35,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; @@ -69,52 +67,10 @@ namespace GitHub.Runner.Common } } - public Task GetJobMessageAsync( - Guid scopeId, - Guid hostId, - string planType, - string planGroup, - Guid planId, - IList instanceRefsJson) + public Task GetJobMessageAsync(string id) { - // System.Console.WriteLine("RunServer.GetMessageAsync"); CheckConnection(); - return _taskAgentClient.GetJobMessageAsync(scopeId, hostId, planType, planGroup, planId, StringUtil.ConvertToJson(instanceRefsJson, Newtonsoft.Json.Formatting.None)); + return _taskAgentClient.GetJobMessageAsync(id); } } - - // todo: move to SDK? - [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 Guid ScopeId { get; set; } - [DataMember(Name = "hostId")] - public Guid HostId { get; set; } - [DataMember(Name = "planType")] - public string PlanType { get; set; } - [DataMember(Name = "planGroup")] - public string PlanGroup { get; set; } - [DataMember(Name = "planId")] - public Guid PlanId { 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; } - } } diff --git a/src/Runner.Listener/MessageRef.cs b/src/Runner.Listener/MessageRef.cs new file mode 100644 index 000000000..1806c33fe --- /dev/null +++ b/src/Runner.Listener/MessageRef.cs @@ -0,0 +1,11 @@ +using System.Runtime.Serialization; + +namespace GitHub.Runner.Listener +{ + [DataContract] + public sealed class MessageRef + { + [DataMember(Name = "id")] + public string Id { get; set; } + } +} \ No newline at end of file diff --git a/src/Runner.Listener/Runner.cs b/src/Runner.Listener/Runner.cs index c48060bb7..a3c7eab3b 100644 --- a/src/Runner.Listener/Runner.cs +++ b/src/Runner.Listener/Runner.cs @@ -453,7 +453,7 @@ namespace GitHub.Runner.Listener { Trace.Info($"Received job message of length {message.Body.Length} from service, with hash '{IOUtil.GetSha256Hash(message.Body)}'"); var jobMessage = StringUtil.ConvertFromJson(message.Body); - jobDispatcher.Run(Guid.Empty, jobMessage, runOnce); + jobDispatcher.Run(jobMessage, runOnce); if (runOnce) { Trace.Info("One time used runner received job message."); @@ -480,10 +480,9 @@ namespace GitHub.Runner.Listener // todo: add retries var runServer = HostContext.CreateService(); await runServer.ConnectAsync(new Uri(settings.ServerUrl), creds); - var jobMessage = await runServer.GetJobMessageAsync(messageRef.ScopeId, messageRef.HostId, messageRef.PlanType, messageRef.PlanGroup, messageRef.PlanId, messageRef.InstanceRefs); + var jobMessage = await runServer.GetJobMessageAsync(messageRef.Id); - // todo: Trace.Info($"Received job message of length {message.Body.Length} from service, with hash '{IOUtil.GetSha256Hash(message.Body)}'"); - jobDispatcher.Run(messageRef.HostId, jobMessage, runOnce); + jobDispatcher.Run(jobMessage, runOnce); if (runOnce) { Trace.Info("One time used runner received job message."); diff --git a/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs b/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs index 411ee3648..9cc08d74f 100644 --- a/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs +++ b/src/Sdk/DTGenerated/Generated/TaskAgentHttpClientBase.cs @@ -707,20 +707,12 @@ namespace GitHub.DistributedTask.WebApi /// /// [Preview API] /// - /// - /// - /// - /// - /// + /// Message ID /// /// The cancellation token to cancel operation. [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task GetJobMessageAsync( - Guid scopeId, - string planType, - string planGroup, - Guid planId, - string instanceRefsJson, + string id, object userState = null, CancellationToken cancellationToken = default) { @@ -728,11 +720,7 @@ namespace GitHub.DistributedTask.WebApi Guid locationId = new Guid("25adab70-1379-4186-be8e-b643061ebe3a"); List> queryParams = new List>(); - queryParams.Add("scopeId", scopeId.ToString()); - queryParams.Add("planType", planType); - queryParams.Add("planGroup", planGroup); - queryParams.Add("planId", planId.ToString()); - queryParams.Add("instanceRefsJson", instanceRefsJson); + queryParams.Add("id", id); return SendAsync( httpMethod,