Repository navigation
Update Resilience tools to GA SDK - #3968
Merged
Merged
Conversation
Migrate the Resiliency SDK integration and existing Drills API surfaces to GA. Add request validation, isolated fixtures, recording scenarios, HTTP contract tests, and documentation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
adishiritwick
requested review from
a team and
Vinay Gera (g2vinay)
as code owners
October 16, 2026 09:03
adishiritwick
requested review from
KarishmaGhiya,
Rick Winter (RickWinter),
Connie Yau (conniey),
msalaman,
Steven Vukelich (vukelich) and
Jeff Fisher (xirzec)
and
a balanced review from Copilot
October 16, 2026 09:03
|
Azure Pipelines: Successfully started running 1 pipeline(s). There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
|
Thank you for your contribution adishiritwick! We will review the pull request and get back to you soon. |
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Automated provisioning lacks required test outputs, and isolated fixtures lack compatible teardown.
2 open findings
What changed in this PR
Migrates Azure Resilience Management tools to the GA SDK and API, adding drill configuration capabilities and updating tests and documentation.
Changes:
- Adds monitoring configuration, operation selection, optional failover inputs, and selected-resource reprotection.
- Updates goal responses and restricts usage plans to Standard.
- Adds contract tests, isolated fixtures, recording sanitizers, and usage guidance.
| File | Description |
|---|---|
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/test-resources.bicep | Updates API and removes goal-template outputs. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/test-resources-post.ps1 | Updates goals and workflow readiness setup. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/test-resources-drills.bicep | Adds isolated drill infrastructure. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/test-resources-drills-post.ps1 | Configures isolated drill fixtures. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/remove-test-resources-pre.ps1 | Updates GA cleanup calls. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/UsagePlans/UsagePlanCreateCommandTests.cs | Tests Standard-only plan creation. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Services/ResilienceManagementServiceTests.cs | Tests GA goal mappings and SDK types. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Services/DrillsGaContractTests.cs | Adds drill request and response contract tests. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/ResilienceManagementRecordedTestsBase.cs | Adds shared recording sanitizers. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Recovery/Plans/RecoveryPlanValidateForOperationCommandTests.cs | Updates SDK operation types. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/Runs/DrillRunReprotectCommandTests.cs | Tests selected-resource reprotection. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/Runs/DrillRunFailoverCommandTests.cs | Tests optional failover inputs. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/Resources/DrillResourceGetCommandTests.cs | Tests response-validation error propagation. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/Resources/DrillAddOrUpdateResourcesCommandTests.cs | Tests drill-resource identifier validation. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/DrillValidateForExecutionCommandTests.cs | Tests operation and source combinations. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/DrillUpdateCommandTests.cs | Tests monitoring updates and clearing. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/DrillCreateCommandTests.cs | Tests GA configuration forwarding. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/DrillConfigurationTests.cs | Tests configuration validation and limits. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/DrillCreateRecordedTests.cs | Adds recorded creation and cleanup coverage. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/assets.json | Updates recording asset tag. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Services/ResilienceManagementService.cs | Implements GA mappings and drill requests. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Services/IResilienceManagementService.cs | Updates service contracts. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/UsagePlans/UsagePlanCreateOption.cs | Documents Standard-only support. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/Runs/DrillRunReprotectOption.cs | Adds resource selection. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/Runs/DrillRunFailoverOption.cs | Makes failover inputs optional. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/Resources/DrillAddOrUpdateResourcesOption.cs | Clarifies drill-resource IDs. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/DrillValidateForExecutionOption.cs | Adds operation selector. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/DrillUpdateOption.cs | Adds monitoring update options. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/DrillCreateOption.cs | Adds GA configuration options. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/UsagePlanKind.cs | Removes Basic plan type. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/GoalResourceInfo.cs | Adds zonal resiliency details. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/GoalAssignmentInfo.cs | Adds zonal resiliency requirement. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/DrillExecutionOperation.cs | Defines execution operations. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Recovery/Plans/RecoveryPlanValidateForOperationCommand.cs | Uses renamed SDK operation type. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/Runs/DrillRunReprotectCommand.cs | Validates and forwards resource selection. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/Runs/DrillRunFailoverCommand.cs | Supports service-default failover requests. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/Resources/DrillAddOrUpdateResourcesCommand.cs | Validates drill-resource ownership. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/DrillValidateForExecutionCommand.cs | Validates operation-specific inputs. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/DrillUpdateCommand.cs | Handles GA configuration updates. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/DrillCreateCommand.cs | Handles GA creation configuration. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/DrillConfigurationPatch.cs | Preserves sparse PATCH fields. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/DrillConfiguration.cs | Parses and validates configuration JSON. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/DrillActionValidation.cs | Shares recovery-resource validation. |
| tools/Azure.Mcp.Tools.ResilienceManagement/docs/sdk-ga-upgrade-usage-recovery-plan.md | Documents SDK migration. |
| servers/Azure.Mcp.Server/docs/e2eTestPrompts.md | Adds GA evaluation prompts. |
| servers/Azure.Mcp.Server/docs/azmcp-commands.md | Documents updated command inputs. |
| servers/Azure.Mcp.Server/changelog-entries/resiliency-drills-ga-sdk.yaml | Records features, fixes, and breaking changes. |
| Directory.Packages.props | Upgrades Resilience Management SDK. |
| .github/skills/resilience-management-operations/references/workflows.md | Updates operational workflows. |
| .github/skills/resilience-management-operations/references/tools.md | Updates tool capabilities and parameters. |
| .github/skills/resilience-management-operations/references/payloads.md | Documents GA configuration payloads. |
| .github/skills/resilience-management-operations/references/development.md | Documents fixture and validation requirements. |
🧠 Review effort: Balanced
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…ols with GA SDK - Drills fixture brings the recovery plan back to Ready (exclude new service-group members, finalize, checkReadiness) before and after the full failover/reprotect cycle; RO rejects failover unless the plan is Ready. - Remove --recoveryplan from drill create/update: recoveryPlanId is read-only in the GA SDK and never serialized; the service links the service group's plan. - Return the drill managed identity in drill get/create/update output. - Always emit hasCompleted for drill resync, validation, add-or-update, and mark-complete results. - Update docs, e2e prompts, skill reference, changelog, and tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Vinay Gera (g2vinay)
approved these changes
Oct 20, 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.


What does this PR do?
Updating MCP tools to GA SDK of Resilience.
resiliency_drill_createresiliency_drill_updateresiliency_drill_validate-for-executionresiliency_drill_resource_add-or-updateresiliency_drill_run_failoverresiliency_drill_run_reprotectresiliency_usageplan_createPer-prompt evidence
Scores are shown to the evaluator's six-decimal precision.
resiliency_drill_createCreate a zonal resilience drill named <drill_name> in service group <service_group> using subscription <subscription>, region <region>, resource group <resource_group>, automated built-in roles, and recovery plan <recovery_plan_name>resiliency_drill_createCreate a regional resilience drill named <drill_name> in service group <service_group> using subscription <subscription>, region <region>, and manual RBAC setupresiliency_drill_createCreate a resilience drill for service group <service_group>resiliency_drill_createCreate a zonal resilience drill in service group <service_group> with Health Model monitoring for <health_model_id> using a system-assigned identityresiliency_drill_createConfigure a new resilience drill with goal-assignment identity and Availability and Latency SLI monitoringresiliency_drill_updateUpdate resilience drill <drill_name> in service group <service_group> to use manual RBAC setupresiliency_drill_updateAssociate recovery plan <recovery_plan_name> with resilience drill <drill_name> in service group <service_group>resiliency_drill_updateChange the Health Model monitored by resilience drill <drill_name> in service group <service_group> to <health_model_id> without changing its identityresiliency_drill_updateClear SLI monitoring on resilience drill <drill_name> in service group <service_group> while preserving its other configurationresiliency_drill_updateMove the supporting resources of resilience drill <drill_name> in service group <service_group> to subscription <subscription> and region <region>resiliency_drill_validate-for-executionValidate resilience drill <drill_name> in service group <service_group> for execution from source location <source_location>resiliency_drill_validate-for-executionPreflight resilience drill <drill_name> in service group <service_group> to confirm it is ready to run from source locations <source_locations>resiliency_drill_validate-for-executionValidate resilience drill <drill_name> in service group <service_group> for Reprotect without specifying source locationsresiliency_drill_validate-for-executionPreflight resilience drill <drill_name> in service group <service_group> using default validation from source location <source_location>resiliency_drill_resource_add-or-updateAdd resource <resource_id> to resilience drill <drill_name> in service group <service_group> with a fault duration of <fault_duration_minutes> minutesresiliency_drill_resource_add-or-updateUpdate or exclude the resources of resilience drill <drill_name> in service group <service_group>resiliency_drill_run_failoverStart failover for drill run <drill_run_name> of drill <drill_name> in service group <service_group>, using source location <source_location>resiliency_drill_run_failoverStart failover for drill run <drill_run_name> of resilience drill <drill_name> in service group <service_group> using service defaults with no failover payloadresiliency_drill_run_failoverFail over drill run <drill_run_name> from physical zone <source_location> and pause for manual input instead of automatic failoverresiliency_drill_run_failoverFail over selected resources <resource_ids> in drill run <drill_run_name> from physical zones <source_locations>, and automatically continue after fault injectionresiliency_drill_run_reprotectReprotect failed-over resources in drill run <drill_run_name> for drill <drill_name> in service group <service_group>resiliency_drill_run_reprotectReprotect only recovery resources <resource_ids> in drill run <drill_run_name> of resilience drill <drill_name> in service group <service_group>resiliency_drill_run_reprotectStart reprotection for all qualified resources in drill run <drill_run_name> without specifying a resource selectionresiliency_usageplan_createCreate a resilience usage plan <usage_plan_name> with plan type Standard in resource group <resource_group_name>resiliency_usageplan_createSet up a Standard resilience usage plan named <usage_plan_name> in resource group <resource_group_name>resiliency_usageplan_createUpdate resilience usage plan <usage_plan_name> in resource group <resource_group_name> to use the Standard plan typePre-merge Checklist
servers/Azure.Mcp.Server/README.mdand/orservers/Fabric.Mcp.Server/README.mddocumentationREADME.mdchanges running the script./eng/scripts/Process-PackageReadMe.ps1. See Package READMEToolDescriptionEvaluatorand obtained a score of0.4or more and a top 3 ranking for all related test promptsconsolidated-tools.jsonbreaking-changelabelservers/Azure.Mcp.Server/docs/azmcp-commands.md./eng/scripts/Update-AzCommandsMetadata.ps1to update tool metadata inazmcp-commands.md(required for CI)servers/Azure.Mcp.Server/docs/e2eTestPrompts.mdcrypto mining, spam, data exfiltration, etc.)/azp run mcp - pullrequest - liveto run Live Test Pipeline