Repository navigation
[ElasticSan] Support for 2026-05-01-preview service version - #10462
Amanda Nguyen (amnguye) wants to merge 12 commits into
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
🟡 Changes recommended
Legacy identity removal is broken, additional breaking changes are undocumented, and major new command paths lack coverage.
7 open findings
Legacy identity None option has no supported migration path · New Add V2 Elastic SAN scenario coverage · New Add test coverage for snapshot update · New Document removed generic update support for Elastic SAN commands · New Document capacity units as TiB instead of TB · New Document total size units as TiB instead of TB · New Volume list help incorrectly describes soft-deleted volume groups · New
What changed in this PR
Updates Elastic SAN commands to the 2026-05-01-preview API and adds V2 capacity, performance, soft-delete, identity, and snapshot capabilities.
Changes:
- Adds Elastic SAN V2 capacity and performance settings.
- Expands volume and volume-group lifecycle controls.
- Adds snapshot update support and updates extension metadata.
| File | Description |
|---|---|
src/elastic-san/setup.py |
Bumps extension version. |
src/elastic-san/HISTORY.rst |
Documents release features and breaking changes. |
src/elastic-san/azext_elastic_san/custom.py |
Adapts legacy volume-group identity arguments. |
.../volume/snapshot/_wait.py |
Updates snapshot wait schema and API. |
.../volume/snapshot/_update.py |
Adds snapshot update command. |
.../volume/snapshot/_show.py |
Updates snapshot retrieval schema. |
.../volume/snapshot/_list.py |
Updates snapshot listing schema. |
.../volume/snapshot/_delete.py |
Migrates snapshot deletion API. |
.../volume/snapshot/_create.py |
Migrates snapshot creation API. |
.../volume/snapshot/__init__.py |
Exports snapshot update. |
.../volume/_wait.py |
Updates volume wait response schema. |
.../volume/_update.py |
Adds managed-by updates. |
.../volume/_show.py |
Supports managed-by lists. |
.../volume/_list.py |
Adds soft-deleted volume access. |
.../volume/_delete.py |
Adds permanent deletion. |
.../volume/_create.py |
Adds managed-by creation. |
.../volume_group/_wait.py |
Adds new volume-group response fields. |
.../volume_group/_update.py |
Switches updates to PATCH and adds settings. |
.../volume_group/_test_restore.py |
Migrates restore validation API. |
.../volume_group/_test_backup.py |
Migrates backup validation API. |
.../volume_group/_show.py |
Exposes retention and QoS fields. |
.../volume_group/_list.py |
Adds soft-delete and new fields. |
.../volume_group/_delete.py |
Migrates volume-group deletion API. |
.../volume_group/_create.py |
Adds retention, encryption, and QoS settings. |
.../elastic_san/_wait.py |
Adds V2 response fields. |
.../elastic_san/_update.py |
Uses PATCH and adds V2 updates. |
.../elastic_san/_show.py |
Exposes V2 capacity metrics. |
.../elastic_san/_list.py |
Exposes V2 fields in listings. |
.../elastic_san/_list_sku.py |
Adds zone capability metadata. |
.../elastic_san/_delete.py |
Migrates SAN deletion API. |
.../elastic_san/_create.py |
Adds V2 creation parameters. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
Please fix CI issues |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
NoriZC Do we also have to create separate branches for these preview releases as well for CLI extensions? |
|
Yong Zhang (@yonzhan) NoriZC Is there anything else we need to do before approval and merging? |
|
Amanda Nguyen (@amnguye) Not passing: the deterministic generated-source ownership blocker remains. All seven Copilot feedback items are invalid at this head: identity removal and generic updates are implemented in registered custom commands; V2 create/update assertions and recording are present; snapshot update is not shipped; capacity and volume-list help are corrected. No additional semantic defect was confirmed in the bounded review. To addressTick each item as you address it.
Review detailsUpstream CIGreen: 6 checks completed, 5 passed, 0 failed, 0 pending. This is upstream evidence, not an Agent regression-test result. Test validation
Risk assessment89/100 · Critical The Critical rating is driven by security-sensitive behavior, public CLI behavior, dependency or supply chain and 1 additional signal(s).
Ask the Agent Tick a box to queue an action. Requires write access to this repository.
|
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
There was a problem hiding this comment.
Review comments are inline on the changed lines. See the X Engineering Agent Report.
|
|
||
| _aaz_info = { | ||
| "version": "2025-09-01", | ||
| "version": "2026-05-01-preview", |
There was a problem hiding this comment.
Link the durable generated command-model source
The deterministic ownership check found generated output changes without an open or merged Azure/aaz PR containing the durable command-model change. Make that source change, link its PR, and regenerate aaz/. Verify from a clean checkout that regeneration reproduces this change and the source PR is open or merged.
X Engineering Agent · Reviewer · React with +1 or -1 to train the reviewer
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |



🤖 PR Validation —⚠️ Review suggested
This PR adds warning or check suppressions. Fix the underlying warning where possible and justify each remaining suppression in a code comment or the PR description.
1 added suppression
src/elastic-san/azext_elastic_san/custom.pyclass _InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): # pylint: disable=too-few-public-methodsThis checklist is used to make sure that common guidelines for a pull request are followed.
Related command
General Guidelines
azdev style <YOUR_EXT>locally? (pip install azdevrequired)python scripts/ci/test_index.py -qlocally? (pip install azdevrequired)For new extensions:
About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update
src/index.jsonautomatically.You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify
src/index.json.