Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/azure-cli/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@ Release History
**Backup**

* Add support for cost management settings (#33757)
* `az backup restore files mount-rp`: Fetch ILR mount scripts through the dedicated list action for CHAP credential redaction.

**Cognitive Services**

Expand Down
13 changes: 11 additions & 2 deletions src/azure-cli/azure/cli/command_modules/backup/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
MoveRPAcrossTiersRequest, RecoveryPointRehydrationInfo, IaasVMRestoreWithRehydrationRequest, IdentityInfo, \
BackupStatusRequest, ListRecoveryPointsRecommendedForMoveRequest, IdentityBasedRestoreDetails, ScheduleRunType, \
UnlockDeleteRequest, ResourceGuardProxyBase, ResourceGuardProxyBaseResource, TargetDiskNetworkAccessSettings, \
SecuredVMDetails
SecuredVMDetails, InstantItemRecoveryOperationResultRequest
from azure.mgmt.recoveryservicesbackup.passivestamp.models import CrrJobRequest, CrossRegionRestoreRequest

import azure.cli.command_modules.backup._validators as validators
Expand Down Expand Up @@ -1730,7 +1730,16 @@ def restore_files_mount_rp(cmd, client, resource_group_name, vault_name, contain
result = client.provision(vault_name, resource_group_name, fabric_name, container_uri, item_uri, rp_name,
file_restore_request, cls=cust_help.get_pipeline_response)

client_scripts = cust_help.track_backup_ilr(cmd.cli_ctx, result, vault_name, resource_group_name)
operation_id = cust_help.track_backup_ilr(cmd.cli_ctx, result, vault_name, resource_group_name)
mount_script_request = InstantItemRecoveryOperationResultRequest(
provision_instant_item_recovery_operation_id=operation_id)
recovery_target = client.list_instant_item_recovery_operation_result(
resource_group_name=resource_group_name, vault_name=vault_name, fabric_name=fabric_name,
container_name=container_uri, protected_item_name=item_uri, recovery_point_id=rp_name,
body=mount_script_request)
client_scripts = recovery_target.client_scripts if recovery_target else None
if not client_scripts:
raise CLIError('Mount script details were not returned by the backup service.')

if client_scripts[0].os_type == os_windows:
_run_client_script_for_windows(client_scripts)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ def list_recovery_points(cmd, client, resource_group_name, vault_name, item, sta
else:
# Get recovery points
recovery_points = client.list(vault_name, resource_group_name, fabric_name,
container_uri, item_uri, filter_string)
container_uri, item_uri, filter=filter_string)
paged_recovery_points = helper.get_list_from_paged_response(recovery_points)

if tier:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -439,11 +439,14 @@ def get_target_path(resource_type, path, logical_name, data_directory_paths):
# Tracking Utilities
# pylint: disable=inconsistent-return-statements
def track_backup_ilr(cli_ctx, result, vault_name, resource_group):
operation_id = get_operation_id_from_header(result.http_response.headers['Azure-AsyncOperation'])
operation_status = track_backup_operation(cli_ctx, resource_group, result, vault_name)

if operation_status.properties:
recovery_target = operation_status.properties.recovery_target
return recovery_target.client_scripts
if operation_status.status != OperationStatusValues.succeeded.value:
raise CLIError('Provisioning access to the recovery point failed with status: {}.'.format(
operation_status.status))

return operation_id


# pylint: disable=inconsistent-return-statements
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,17 @@ interactions:
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault?api-version=2026-07-01
response:
body:
string: '{"location":"eastus2euap","name":"singhprab-csb-vault","etag":"W/\"datetime''2026-01-26T15%3A04%3A04.3196337Z''\"","properties":{"provisioningState":"Succeeded","privateEndpointStateForBackup":"None","privateEndpointStateForSiteRecovery":"None","backupStorageVersion":"V1","securitySettings":{"immutabilitySettings":{"state":"Disabled"},"softDeleteSettings":{"softDeleteRetentionPeriodInDays":14,"softDeleteState":"AlwaysON","enhancedSecurityState":"AlwaysON"},"multiUserAuthorization":"Disabled","sourceScanConfiguration":{"state":"Disabled"}},"redundancySettings":{"standardTierStorageRedundancy":"GeoRedundant","crossRegionRestore":"Enabled"},"regionOfChoiceSettings":{"status":"Disabled"},"secureScore":"Adequate","bcdrSecurityLevel":"Good","publicNetworkAccess":"Enabled","restoreSettings":{"crossSubscriptionRestoreSettings":{"crossSubscriptionRestoreState":"Enabled"}}},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault","type":"Microsoft.RecoveryServices/vaults","sku":{"name":"RS0","tier":"Standard"}}'
string: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group
''sgholapDMTesting-rg'' could not be found."}}'
headers:
cache-control:
- no-cache
content-length:
- '1115'
- '111'
content-type:
- application/json; charset=utf-8
date:
- Thu, 17 Sep 2026 10:28:57 GMT
- Thu, 24 Sep 2026 14:14:31 GMT
expires:
- '-1'
pragma:
Expand All @@ -38,110 +39,11 @@ interactions:
- CONFIG_NOCACHE
x-content-type-options:
- nosniff
x-ms-ratelimit-remaining-subscription-global-reads:
- '16499'
x-ms-failure-cause:
- gateway
x-msedge-ref:
- 'Ref A: 31A27CB090BD4CFF82093A3568058EB5 Ref B: PNQ231110906029 Ref C: 2026-09-17T10:28:56Z'
- 'Ref A: ABD0B8E0DD064054947C94689A559682 Ref B: SG2AA1070302054 Ref C: 2026-09-24T14:14:32Z'
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
CommandName:
- backup restore restore-disks
Connection:
- keep-alive
ParameterSetName:
- -g -v -c -i --rp-name --storage-account
User-Agent:
- AZURECLI/2.90.0 azsdk-python-core/1.39.0 Python/3.12.10 (Windows-11-10.0.26200-SP0)
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupProtectedItems?api-version=2026-07-01&$filter=backupManagementType%20eq%20%27AzureIaasVM%27%20and%20itemType%20eq%20%27VM%27
response:
body:
string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;singhprab-ccy-rg-1c;testcvm123/protectedItems/VM;iaasvmcontainerv2;singhprab-ccy-rg-1c;testcvm123","name":"VM;iaasvmcontainerv2;singhprab-ccy-rg-1c;testcvm123","type":"Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems","properties":{"friendlyName":"testcvm123","virtualMachineId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/singhprab-ccy-rg-1c/providers/Microsoft.Compute/virtualMachines/testcvm123","protectionStatus":"Healthy","protectionState":"Protected","healthStatus":"Passed","healthDetails":[{"code":400239,"title":"IaasVmHealthGreenDefault","message":"Backup
pre-check status of this virtual machine is OK.","recommendations":[]}],"lastBackupStatus":"Completed","lastBackupTime":"2026-09-17T08:04:23.9912077Z","protectedItemDataId":"1213862319043972","extendedProperties":{},"policyType":"V2","protectedItemType":"Microsoft.Compute/virtualMachines","backupManagementType":"AzureIaasVM","workloadType":"VM","containerName":"iaasvmcontainerv2;singhprab-ccy-rg-1c;testcvm123","sourceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/singhprab-ccy-rg-1c/providers/Microsoft.Compute/virtualMachines/testcvm123","policyId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupPolicies/EnhancedPolicy","policyName":"EnhancedPolicy","lastRecoveryPoint":"2026-09-17T08:06:30.6477338Z","vaultId":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault","isArchiveEnabled":false,"softDeleteRetentionPeriod":0,"sourceLocation":"eastus2euap","sourceSideScanInfo":{"sourceSideScanStatus":"NotConfigured","sourceSideScanSummary":"Unknown"}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;singhprab-csb-vault-rg;vm-test/protectedItems/VM;iaasvmcontainerv2;singhprab-csb-vault-rg;vm-test","name":"VM;iaasvmcontainerv2;singhprab-csb-vault-rg;vm-test","type":"Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems","properties":{"friendlyName":"vm-test","virtualMachineId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/singhprab-csb-vault-rg/providers/Microsoft.Compute/virtualMachines/vm-test","protectionStatus":"Healthy","protectionState":"Protected","healthStatus":"Passed","healthDetails":[{"code":400239,"title":"IaasVmHealthGreenDefault","message":"Backup
pre-check status of this virtual machine is OK.","recommendations":[]}],"lastBackupStatus":"Completed","lastBackupTime":"2026-09-17T01:08:38.5207066Z","protectedItemDataId":"1213860894808134","policyType":"V1","protectedItemType":"Microsoft.Compute/virtualMachines","backupManagementType":"AzureIaasVM","workloadType":"VM","containerName":"iaasvmcontainerv2;singhprab-csb-vault-rg;vm-test","sourceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/singhprab-csb-vault-rg/providers/Microsoft.Compute/virtualMachines/vm-test","policyId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupPolicies/DefaultPolicy","policyName":"DefaultPolicy","lastRecoveryPoint":"2026-09-17T01:08:56.6220368Z","vaultId":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault","isArchiveEnabled":false,"softDeleteRetentionPeriod":0,"sourceLocation":"eastus2euap","sourceSideScanInfo":{"sourceSideScanStatus":"NotConfigured","sourceSideScanSummary":"Unknown"}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;singhprab-ecy-aug25-drill-rg;singhprab-csb-vm/protectedItems/VM;iaasvmcontainerv2;singhprab-ecy-aug25-drill-rg;singhprab-csb-vm","name":"VM;iaasvmcontainerv2;singhprab-ecy-aug25-drill-rg;singhprab-csb-vm","type":"Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems","properties":{"friendlyName":"singhprab-csb-vm","virtualMachineId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/singhprab-ecy-aug25-drill-rg/providers/Microsoft.Compute/virtualMachines/singhprab-csb-vm","protectionStatus":"Healthy","protectionState":"ProtectionStopped","healthStatus":"Passed","lastBackupStatus":"","lastBackupTime":"2001-01-01T00:00:00Z","protectedItemDataId":"1213861779090887","policyType":"V1","protectedItemType":"Microsoft.Compute/virtualMachines","backupManagementType":"AzureIaasVM","workloadType":"VM","containerName":"iaasvmcontainerv2;singhprab-ecy-aug25-drill-rg;singhprab-csb-vm","sourceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/singhprab-ecy-aug25-drill-rg/providers/Microsoft.Compute/virtualMachines/singhprab-csb-vm","policyId":"","policyName":"","vaultId":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault","isArchiveEnabled":false,"softDeleteRetentionPeriod":0,"sourceLocation":"eastus2euap","sourceSideScanInfo":{"sourceSideScanStatus":"NotConfigured","sourceSideScanSummary":"Unknown"}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;singhprab-rg-1c;testcvm123/protectedItems/VM;iaasvmcontainerv2;singhprab-rg-1c;testcvm123","name":"VM;iaasvmcontainerv2;singhprab-rg-1c;testcvm123","type":"Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems","properties":{"friendlyName":"testcvm123","virtualMachineId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/singhprab-rg-1c/providers/Microsoft.Compute/virtualMachines/testcvm123","protectionStatus":"Unhealthy","protectionState":"Protected","healthStatus":"Passed","healthDetails":[{"code":400239,"title":"IaasVmHealthGreenDefault","message":"Backup
pre-check status of this virtual machine is OK.","recommendations":[]}],"lastBackupStatus":"Failed","lastBackupTime":"2026-09-16T20:08:15.642833Z","protectedItemDataId":"1213862310952975","extendedProperties":{},"policyType":"V2","protectedItemType":"Microsoft.Compute/virtualMachines","backupManagementType":"AzureIaasVM","workloadType":"VM","containerName":"iaasvmcontainerv2;singhprab-rg-1c;testcvm123","sourceResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/singhprab-rg-1c/providers/Microsoft.Compute/virtualMachines/testcvm123","policyId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupPolicies/EnhancedPolicy","policyName":"EnhancedPolicy","vaultId":"https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault","isArchiveEnabled":false,"softDeleteRetentionPeriod":0,"sourceLocation":"eastus2euap","sourceSideScanInfo":{"sourceSideScanStatus":"NotConfigured","sourceSideScanSummary":"Unknown"}}}]}'
headers:
cache-control:
- no-cache
content-length:
- '7910'
content-type:
- application/json; charset=utf-8
date:
- Thu, 17 Sep 2026 10:28:58 GMT
expires:
- '-1'
pragma:
- no-cache
strict-transport-security:
- max-age=31536000; includeSubDomains
x-cache:
- CONFIG_NOCACHE
x-content-type-options:
- nosniff
x-ms-operation-identifier:
- tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=352782de-cadf-4f14-ad97-08cd2617ef55/eastasia/71a54867-d82c-448d-9c80-57b656902440
x-ms-ratelimit-remaining-subscription-resource-requests:
- '249'
x-msedge-ref:
- 'Ref A: 2AF795237B1B47F9A8A3276AFE0F0D76 Ref B: PNQ231110909060 Ref C: 2026-09-17T10:28:57Z'
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
CommandName:
- backup restore restore-disks
Connection:
- keep-alive
ParameterSetName:
- -g -v -c -i --rp-name --storage-account
User-Agent:
- AZURECLI/2.90.0 azsdk-python-core/1.39.0 Python/3.12.10 (Windows-11-10.0.26200-SP0)
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupProtectionContainers?api-version=2026-07-01&$filter=backupManagementType%20eq%20%27AzureIaasVM%27%20and%20friendlyName%20eq%20%27testcvm123%27%20and%20status%20eq%20%27Registered%27
response:
body:
string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;singhprab-ccy-rg-1c;testcvm123","name":"IaasVMContainer;iaasvmcontainerv2;singhprab-ccy-rg-1c;testcvm123","type":"Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers","properties":{"virtualMachineId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/singhprab-ccy-rg-1c/providers/Microsoft.Compute/virtualMachines/testcvm123","virtualMachineVersion":"Compute","resourceGroup":"singhprab-ccy-rg-1c","friendlyName":"testcvm123","backupManagementType":"AzureIaasVM","registrationStatus":"Registered","healthStatus":"Healthy","containerType":"Microsoft.Compute/virtualMachines","protectableObjectType":"Microsoft.Compute/virtualMachines"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sgholapDMTesting-rg/providers/Microsoft.RecoveryServices/vaults/singhprab-csb-vault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;singhprab-rg-1c;testcvm123","name":"IaasVMContainer;iaasvmcontainerv2;singhprab-rg-1c;testcvm123","type":"Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers","properties":{"virtualMachineId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/singhprab-rg-1c/providers/Microsoft.Compute/virtualMachines/testcvm123","virtualMachineVersion":"Compute","resourceGroup":"singhprab-rg-1c","friendlyName":"testcvm123","backupManagementType":"AzureIaasVM","registrationStatus":"Registered","healthStatus":"Healthy","containerType":"Microsoft.Compute/virtualMachines","protectableObjectType":"Microsoft.Compute/virtualMachines"}}]}'
headers:
cache-control:
- no-cache
content-length:
- '1803'
content-type:
- application/json; charset=utf-8
date:
- Thu, 17 Sep 2026 10:28:59 GMT
expires:
- '-1'
pragma:
- no-cache
strict-transport-security:
- max-age=31536000; includeSubDomains
x-cache:
- CONFIG_NOCACHE
x-content-type-options:
- nosniff
x-ms-operation-identifier:
- tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=352782de-cadf-4f14-ad97-08cd2617ef55/eastasia/9b8909d5-fa89-472a-805e-a2d1d8c64097
x-ms-ratelimit-remaining-subscription-resource-requests:
- '249'
x-msedge-ref:
- 'Ref A: 8FA8F897A639486787C5CAA5AD2DEED8 Ref B: PNQ231110909034 Ref C: 2026-09-17T10:28:59Z'
status:
code: 200
message: OK
code: 404
message: Not Found
version: 1
Loading
Loading