Use Helix JobDetails QueueAlias/DockerTag for resubmission#17017
Merged
mmitche merged 1 commit intoJun 17, 2026
Merged
Conversation
The Helix service now returns QueueAlias and DockerTag directly on JobDetails (dotnet-helix-service commit 2a5f5fe, now in production). Replace the temporary operatingSystem-property parsing workaround in the JobMonitor with direct reads of these fields, and remove the now-unused ParseQueueId/regex helpers. Add the regenerated QueueAlias/DockerTag properties to the generated Helix client model. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates Helix JobMonitor resubmission to use the newly exposed JobDetails.QueueAlias and JobDetails.DockerTag fields from the Helix service, removing the prior workaround that re-parsed the operatingSystem property to reconstruct resubmission queue targeting.
Changes:
- Removed the JobMonitor “operatingSystem parsing” workaround and now pass through
details.QueueId,details.QueueAlias, anddetails.DockerTagdirectly when resubmitting jobs. - Extended the generated Helix client
JobDetailsmodel to includeQueueAliasandDockerTag. - Updated
HelixServiceTeststo validate the new pass-through behavior instead ofoperatingSystemparsing behavior.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| src/Microsoft.DotNet.Helix/JobMonitor/Services/HelixService.cs | Removes the temporary resubmission target-queue parsing logic and uses JobDetails.QueueAlias/DockerTag directly. |
| src/Microsoft.DotNet.Helix/Client/CSharp/generated-code/Models/JobDetails.cs | Adds QueueAlias and DockerTag properties to match the updated service response. |
| src/Microsoft.DotNet.Helix/Sdk.Tests/Microsoft.DotNet.Helix.Sdk.Tests/HelixServiceTests.cs | Replaces operatingSystem-based tests with tests asserting the new JobDetails fields are passed through to JobCreationRequest. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Member
Author
|
The generated files do need to be re-generated rather than edited by hand. However, there are issues with the generator due to upgrades to various packages in the repo. Will be resolved in a separate PR. |
premun
approved these changes
Jun 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Helix service now returns
QueueAliasandDockerTagdirectly onJobDetails(dotnet-helix-service2a5f5fe, now in production). This PR removes the temporary workaround in the JobMonitor that recovered the resubmission target queue by re-parsing the verbatim(alias)queueId@dockerTagstring out of theoperatingSystemproperty (tracked by #16964).Changes
JobMonitor/Services/HelixService.cs: resubmission now readsdetails.QueueId/details.QueueAlias/details.DockerTagdirectly; removedResolveTargetQueueSpec,TargetQueueSpec,ParseQueueId, thes_queueAliasRegexfield, and the now-unusedSystem.Text.RegularExpressionsimport.Client/.../generated-code/Models/JobDetails.cs: added theQueueAliasandDockerTagproperties now exposed by the service API.Sdk.Tests/.../HelixServiceTests.cs: replaced the fouroperatingSystem-parsing tests with pass-through tests for the new fields.Notes
JobDetailsfields were added by hand rather than viadotnet build /t:GenerateSwaggerCodebecause the in-tree SwaggerGenerator currently fails against the live OpenAPI doc (Microsoft.OpenApi3.6.0 nullability NREs plus a Handlebars.Net 1.x→2.x templating incompatibility). Fixing the generator will be handled in a separate PR.All
HelixServiceTests(9) pass.