Skip to content

Commit 1dbba38

Browse files
Add new optional parameter --cvm-os-disk-encryption-set-id in az backup restore restore-disks
1 parent 5c3cf2f commit 1dbba38

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

src/azure-cli/azure/cli/command_modules/backup/_params.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,7 @@ def load_arguments(self, _):
403403
c.argument('tenant_id', help='ID of the tenant if the Resource Guard protecting the vault exists in a different tenant.')
404404
c.argument('disk_access_option', arg_type=get_enum_type(allowed_disk_access_options), help='Specify the disk access option for target disks.')
405405
c.argument('target_disk_access_id', help='Specify the target disk access ID when --disk-access-option is set to EnablePrivateAccessForAllDisks')
406+
c.argument('cvm_os_disk_encryption_set_id', options_list=['--cvm-os-disk-encryption-set-id'], help='Disk Encryption Set Id to be used for OS disk encryption of Confidential VMs. This is applicable only for secured VMs with managed disks.')
406407

407408
with self.argument_context('backup restore restore-azurefileshare') as c:
408409
c.argument('resolve_conflict', resolve_conflict_type)

src/azure-cli/azure/cli/command_modules/backup/custom.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
BackupResourceVaultConfig, BackupResourceVaultConfigResource, DiskExclusionProperties, ExtendedProperties, \
2828
MoveRPAcrossTiersRequest, RecoveryPointRehydrationInfo, IaasVMRestoreWithRehydrationRequest, IdentityInfo, \
2929
BackupStatusRequest, ListRecoveryPointsRecommendedForMoveRequest, IdentityBasedRestoreDetails, ScheduleRunType, \
30-
UnlockDeleteRequest, ResourceGuardProxyBase, ResourceGuardProxyBaseResource, TargetDiskNetworkAccessSettings
30+
UnlockDeleteRequest, ResourceGuardProxyBase, ResourceGuardProxyBaseResource, TargetDiskNetworkAccessSettings, SecuredVMDetails
3131
from azure.mgmt.recoveryservicesbackup.passivestamp.models import CrrJobRequest, CrossRegionRestoreRequest
3232

3333
import azure.cli.command_modules.backup._validators as validators
@@ -1405,7 +1405,7 @@ def restore_disks(cmd, client, resource_group_name, vault_name, container_name,
14051405
mi_user_assigned=None, target_zone=None, restore_mode='AlternateLocation', target_vm_name=None,
14061406
target_vnet_name=None, target_vnet_resource_group=None, target_subnet_name=None,
14071407
target_subscription_id=None, storage_account_resource_group=None, restore_to_edge_zone=None,
1408-
tenant_id=None, disk_access_option=None, target_disk_access_id=None):
1408+
tenant_id=None, disk_access_option=None, target_disk_access_id=None, cvm_os_disk_encryption_set_id=None):
14091409
vault = vaults_cf(cmd.cli_ctx).get(resource_group_name, vault_name)
14101410
vault_location = vault.location
14111411
vault_identity = vault.identity
@@ -1540,6 +1540,12 @@ def restore_disks(cmd, client, resource_group_name, vault_name, container_name,
15401540
cust_help.get_resource_guard_operation_request(
15411541
cmd.cli_ctx, resource_group_name, vault_name, "RecoveryServicesRestore")]
15421542

1543+
if cvm_os_disk_encryption_set_id is not None:
1544+
trigger_restore_request.properties.secured_vm_details = SecuredVMDetails(
1545+
secured_vmos_disk_encryption_set_id=cvm_os_disk_encryption_set_id
1546+
)
1547+
logger.warning("Using secured VM OS disk encryption set ID: {}".format(trigger_restore_request.properties.secured_vm_details))
1548+
15431549
# Trigger restore
15441550
result = client.begin_trigger(vault_name, resource_group_name, fabric_name, container_uri, item_uri, rp_name,
15451551
trigger_restore_request, cls=cust_help.get_pipeline_response, polling=False).result()

src/azure-cli/azure/cli/command_modules/backup/custom_base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ def restore_disks(cmd, client, resource_group_name, vault_name, container_name,
420420
mi_user_assigned=None, target_zone=None, restore_mode='AlternateLocation', target_vm_name=None,
421421
target_vnet_name=None, target_vnet_resource_group=None, target_subnet_name=None,
422422
target_subscription_id=None, storage_account_resource_group=None, restore_to_edge_zone=None,
423-
tenant_id=None, disk_access_option=None, target_disk_access_id=None):
423+
tenant_id=None, disk_access_option=None, target_disk_access_id=None, cvm_os_disk_encryption_set_id=None):
424424

425425
if rehydration_duration < 10 or rehydration_duration > 30:
426426
raise InvalidArgumentValueError('--rehydration-duration must have a value between 10 and 30 (both inclusive).')
@@ -438,7 +438,7 @@ def restore_disks(cmd, client, resource_group_name, vault_name, container_name,
438438
mi_system_assigned, mi_user_assigned, target_zone, restore_mode, target_vm_name,
439439
target_vnet_name, target_vnet_resource_group, target_subnet_name,
440440
target_subscription_id, storage_account_resource_group, restore_to_edge_zone,
441-
tenant_id, disk_access_option, target_disk_access_id)
441+
tenant_id, disk_access_option, target_disk_access_id, cvm_os_disk_encryption_set_id)
442442

443443

444444
def enable_for_azurefileshare(cmd, client, resource_group_name, vault_name, policy_name, storage_account,

0 commit comments

Comments
 (0)