Skip to content

Onboarding ESAN for DPP Workloads - #9938

Merged
Ethan Yang (necusjz) merged 11 commits into
Azure:mainfrom
priyansh17:user/priyansh/esanWorkloadOnboarding
Sep 9, 2026
Merged

Onboarding ESAN for DPP Workloads #9938
Ethan Yang (necusjz) merged 11 commits into
Azure:mainfrom
priyansh17:user/priyansh/esanWorkloadOnboarding

Conversation

@priyansh17

@priyansh17 Priyansh Choudhary (priyansh17) commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

🤖 PR Validation — ⚠️ Review suggested

Breaking Changes
⚠️ None
⚠️Azure CLI Extensions Breaking Change Test
⚠️dataprotection
rule cmd_name rule_message suggest_message
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1006 - ParaAdd dataprotection backup-instance initialize-backupconfig cmd dataprotection backup-instance initialize-backupconfig added parameter resource_selectors
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance initialize-backupconfig cmd dataprotection backup-instance initialize-backupconfig update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1006 - ParaAdd dataprotection backup-instance initialize-restoreconfig cmd dataprotection backup-instance initialize-restoreconfig added parameter resource_identifiers
⚠️ 1006 - ParaAdd dataprotection backup-instance initialize-restoreconfig cmd dataprotection backup-instance initialize-restoreconfig added parameter resource_name_overrides
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance initialize-restoreconfig cmd dataprotection backup-instance initialize-restoreconfig update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance list-from-resourcegraph cmd dataprotection backup-instance list-from-resourcegraph update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance restore initialize-for-data-recovery cmd dataprotection backup-instance restore initialize-for-data-recovery update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance restore initialize-for-data-recovery-as-files cmd dataprotection backup-instance restore initialize-for-data-recovery-as-files update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance restore initialize-for-item-recovery cmd dataprotection backup-instance restore initialize-for-item-recovery update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance update-msi-permissions cmd dataprotection backup-instance update-msi-permissions update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-policy get-default-policy-template cmd dataprotection backup-policy get-default-policy-template update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection job list-from-resourcegraph cmd dataprotection job list-from-resourcegraph update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']

This checklist is used to make sure that common guidelines for a pull request are followed.

Related command

General Guidelines

  • Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
  • Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
  • My extension version conforms to the Extension version schema

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.json automatically.
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.

@azure-client-tools-bot-prd

azure-client-tools-bot-prd Bot commented Jun 15, 2026

Copy link
Copy Markdown
❌Azure CLI Extensions Breaking Change Test
❌dataprotection
rule cmd_name rule_message suggest_message
1010 - ParaPropUpdate dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter datasource_location: updated property options from ['--datasource-location', '-l'] to ['--datasource-location'] please change property options from ['--datasource-location'] to ['--datasource-location', '-l'] for parameter datasource_location of cmd dataprotection backup-instance initialize
1010 - ParaPropUpdate dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter snapshot_resource_group_name: updated property options from ['--snapshot-resource-group-name', '--snapshot-rg'] to ['--snapshot-resource-group-name'] please change property options from ['--snapshot-resource-group-name'] to ['--snapshot-resource-group-name', '--snapshot-rg'] for parameter snapshot_resource_group_name of cmd dataprotection backup-instance initialize
1010 - ParaPropUpdate dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter use_system_assigned_identity: updated property options from ['--mi-system-assigned', '--use-system-assigned-identity', '--use-system-identity'] to ['--use-system-assigned-identity'] please change property options from ['--use-system-assigned-identity'] to ['--mi-system-assigned', '--use-system-assigned-identity', '--use-system-identity'] for parameter use_system_assigned_identity of cmd dataprotection backup-instance initialize
1010 - ParaPropUpdate dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter user_assigned_identity_arm_url: updated property options from ['--mi-user-assigned', '--uami', '--user-assigned-identity-arm-url'] to ['--user-assigned-identity-arm-url'] please change property options from ['--user-assigned-identity-arm-url'] to ['--mi-user-assigned', '--uami', '--user-assigned-identity-arm-url'] for parameter user_assigned_identity_arm_url of cmd dataprotection backup-instance initialize
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter backup_configuration: removed property type=custom_type
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter datasource_id: removed property type=string
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter datasource_location: removed property type=custom_type
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter datasource_type: removed property choices=['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService']
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter friendly_name: removed property type=string
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter policy_id: removed property type=string
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter secret_store_type: removed property choices=['AzureKeyVault']
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter secret_store_uri: removed property type=string
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter snapshot_resource_group_name: removed property type=string
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter tags: removed property nargs=*
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter use_system_assigned_identity: removed property choices=['false', 'true']
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter use_system_assigned_identity: removed property nargs=?
⚠️ 1009 - ParaPropRemove dataprotection backup-instance initialize cmd dataprotection backup-instance initialize update parameter user_assigned_identity_arm_url: removed property type=string
⚠️ 1006 - ParaAdd dataprotection backup-instance initialize-backupconfig cmd dataprotection backup-instance initialize-backupconfig added parameter resource_selectors
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance initialize-backupconfig cmd dataprotection backup-instance initialize-backupconfig update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1006 - ParaAdd dataprotection backup-instance initialize-restoreconfig cmd dataprotection backup-instance initialize-restoreconfig added parameter resource_identifiers
⚠️ 1006 - ParaAdd dataprotection backup-instance initialize-restoreconfig cmd dataprotection backup-instance initialize-restoreconfig added parameter resource_name_overrides
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance initialize-restoreconfig cmd dataprotection backup-instance initialize-restoreconfig update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance list-from-resourcegraph cmd dataprotection backup-instance list-from-resourcegraph update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance restore initialize-for-data-recovery cmd dataprotection backup-instance restore initialize-for-data-recovery update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance restore initialize-for-data-recovery-as-files cmd dataprotection backup-instance restore initialize-for-data-recovery-as-files update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance restore initialize-for-item-recovery cmd dataprotection backup-instance restore initialize-for-item-recovery update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-instance update-msi-permissions cmd dataprotection backup-instance update-msi-permissions update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection backup-policy get-default-policy-template cmd dataprotection backup-policy get-default-policy-template update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']
⚠️ 1010 - ParaPropUpdate dataprotection job list-from-resourcegraph cmd dataprotection job list-from-resourcegraph update parameter datasource_type: updated property choices from ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureKubernetesService'] to ['AzureBlob', 'AzureCosmosDB', 'AzureDataLakeStorage', 'AzureDatabaseForMySQL', 'AzureDatabaseForPostgreSQL', 'AzureDatabaseForPostgreSQLFlexibleServer', 'AzureDisk', 'AzureElasticSAN', 'AzureKubernetesService']

@yonzhan

Copy link
Copy Markdown
Collaborator

ESAN

…nd restore scripts, update permissions, and refine help documentation
…estore request, add JSON validation in backup initialization, and implement tests for backup/restore configurations
@priyansh17
Priyansh Choudhary (priyansh17) force-pushed the user/priyansh/esanWorkloadOnboarding branch from 7f46d2b to d07636e Compare August 19, 2026 09:12
…API version for backup/restore, enhance validation, and implement tests for backup/restore workflows
@priyansh17
Priyansh Choudhary (priyansh17) marked this pull request as ready for review August 19, 2026 14:39
Copilot AI lite review requested due to automatic review settings August 19, 2026 14:39
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bumps the dataprotection extension version and onboards Azure Elastic SAN (AzureElasticSAN / Elastic SAN volume groups) into the extension, including manifests, CLI surface area for backup/restore configuration, and supporting tests/docs. It also pins relevant backup-instance operations to the 2026-06-01 DataProtection API version.

Changes:

  • Add AzureElasticSAN datasource onboarding (manifest + datasource type registration + restore criteria plumbing + MSI permissions support).
  • Add docs and tests covering Elastic SAN backup/restore configuration and initialization flows.
  • Update selected AAZ-generated backup-instance operations to use API version 2026-06-01.

Reviewed changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/dataprotection/setup.py Bump extension version to 1.12.0.
src/dataprotection/README.md Add Elastic SAN backup/restore example scripts.
src/dataprotection/HISTORY.rst Add 1.12.0 release notes for AzureElasticSAN support.
src/dataprotection/azext_dataprotection/tests/latest/test_dataprotection_update_msi_permissions.py Add skipped regression scaffolds for eSAN MSI permissions paths.
src/dataprotection/azext_dataprotection/tests/latest/test_dataprotection_esan.py Add non-live CLI logic tests for eSAN onboarding.
src/dataprotection/azext_dataprotection/tests/latest/test_dataprotection_configs.py Add unit-style tests for eSAN backup/restore config initialization and validation.
src/dataprotection/azext_dataprotection/tests/latest/test_dataprotection_backup_and_restore_workloads.py Add a live-only end-to-end eSAN backup/restore scenario.
src/dataprotection/azext_dataprotection/manual/Manifests/config.py Register AzureElasticSAN as a supported datasource type.
src/dataprotection/azext_dataprotection/manual/Manifests/AzureElasticSAN.py Add the Elastic SAN workload manifest and default policy template.
src/dataprotection/azext_dataprotection/manual/helpers.py Add eSAN restore-criteria handling and permission help text mapping.
src/dataprotection/azext_dataprotection/manual/custom.py Implement eSAN backupconfig/restoreconfig initialization and wire item-level restore criteria.
src/dataprotection/azext_dataprotection/manual/_params.py Add CLI parameters for eSAN backup/restore config and related help text.
src/dataprotection/azext_dataprotection/manual/_help.py Add help examples referencing AzureElasticSAN.
src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/restore/_trigger.py Pin restore trigger API version to 2026-06-01.
src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_validate_for_restore.py Pin validate-for-restore API version to 2026-06-01.
src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_validate_for_backup.py Pin validate-for-backup API version to 2026-06-01.
src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_update.py Pin update API version + extend schema for generic backup datasource params selectors.
src/dataprotection/azext_dataprotection/aaz/latest/dataprotection/backup_instance/_create.py Pin create API version + extend schema for generic backup datasource params selectors.
Suppressed comments (1)

src/dataprotection/README.md:127

  • This restore-config example selects multiple source volumes, but the eSAN scenario test notes that a backup instance is single-volume. Unless multi-volume instances are actually supported, the restore-config example should be updated to match the single-volume model.
az dataprotection backup-instance initialize-restoreconfig \
    --datasource-type AzureElasticSAN \
    --resource-identifiers source-vol1 source-vol2 \
    --resource-name-overrides '{"source-vol1":"restored-vol1","source-vol2":"restored-vol2"}' > esan_restore_config.json

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/dataprotection/azext_dataprotection/manual/_params.py
Comment thread src/dataprotection/azext_dataprotection/manual/_help.py Outdated
Comment thread src/dataprotection/azext_dataprotection/manual/custom.py
Comment thread src/dataprotection/azext_dataprotection/manual/helpers.py Outdated
Comment thread src/dataprotection/README.md Outdated
…store configurations, enhance help documentation, and improve error handling
@priyansh17 Priyansh Choudhary (priyansh17) changed the title [draft] Onboarding ESAN for DPP Workloads Onboarding ESAN for DPP Workloads Sep 7, 2026
…orkloadOnboarding

# Conflicts:
#	src/dataprotection/HISTORY.rst
#	src/dataprotection/setup.py
…on 2026-06-01 bump

The eSAN change bumped backup-instance create/update/validate-for-backup/validate-for-restore/restore-trigger operations to api-version=2026-06-01. Update the recorded request URIs in the 8 affected backup-instance cassettes so VCR playback matches the version the CLI now sends; polling, show, delete and non-bumped operations are left at their recorded versions.
…non-blob datasource types don't require az login

The initialize-backupconfig command was registered with client_factory=cf_blob_container_mgmt, which eagerly builds a storage management client (requiring an authenticated account) before the handler runs. This made AzureElasticSAN/AzureKubernetesService unit tests fail with 'Please run az login'. Build the blob client lazily inside the AzureBlob/AzureDataLakeStorage branch only when --include-all-containers is used, so eSAN/AKS paths no longer require login.
…orkloadOnboarding

# Conflicts:
#	src/dataprotection/HISTORY.rst
#	src/dataprotection/setup.py
Comment thread src/dataprotection/azext_dataprotection/manual/custom.py
Comment thread src/dataprotection/azext_dataprotection/manual/custom.py
@priyansh17

Copy link
Copy Markdown
Contributor Author

Adds the 2026-06-01 DataProtection API command models for the Azure Elastic SAN (eSAN) backup/restore onboarding, keeping the aaz command models in sync with the changes made in the azure-cli-extensions dataprotection extension
Azure/aaz#1083

…r aaz reproducibility (eSAN)

The eSAN change hand-edited the api-version and resource_selectors in these aaz-generated commands but left the _aaz_info version metadata stale, so regenerating reverted the customizations. Regenerate create/update/validate-for-backup/validate-for-restore/restore-trigger from the 2026-06-01 command model (Azure/aaz#1083) so _aaz_info, api-version, and schema are consistent and the commands reproduce cleanly. No runtime change for create/validate/restore (already called 2026-06-01); update moves 2026-03-01 to 2026-06-01 where resource_selectors is valid.
@necusjz
Ethan Yang (necusjz) merged commit b88440d into Azure:main Sep 9, 2026
24 checks passed
@azclibot

Copy link
Copy Markdown
Collaborator

[Release] Update index.json for extension [ dataprotection-1.12.0 ] : https://dev.azure.com/msazure/One/_build/results?buildId=180237654&view=results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants