Skip to content
Merged
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
3 changes: 3 additions & 0 deletions linter_exclusions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -857,6 +857,9 @@ backup vault backup-properties set:
cross_region_restore_flag:
rule_exclusions:
- option_length_too_long
hybrid_backup_security_features:
rule_exclusions:
- option_length_too_long
backup vault encryption update:
parameters:
infrastructure_encryption:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ def load_arguments(self, _):
c.argument('backup_storage_redundancy', arg_type=get_enum_type(['GeoRedundant', 'LocallyRedundant', 'ZoneRedundant']), help='Set backup storage properties for a Recovery Services vault.')
c.argument('soft_delete_feature_state', arg_type=get_enum_type(['Enable', 'Disable']), help='Set soft-delete feature state for a Recovery Services Vault.')
c.argument('cross_region_restore_flag', arg_type=get_enum_type(['True', 'False']), help='Set cross-region-restore feature state for a Recovery Services Vault. Default: False.')
c.argument('hybrid_backup_security_features', arg_type=get_enum_type(['Enable', 'Disable']), help='Use this field to set the security features for hybrid backups in a Recovery Services Vault.')

# Identity
with self.argument_context('backup vault identity assign') as c:
Expand Down
13 changes: 8 additions & 5 deletions src/azure-cli/azure/cli/command_modules/backup/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -384,17 +384,20 @@ def show_encryption(client, resource_group_name, vault_name):


def set_backup_properties(cmd, client, vault_name, resource_group_name, backup_storage_redundancy=None,
soft_delete_feature_state=None, cross_region_restore_flag=None):
if soft_delete_feature_state:
soft_delete_feature_state=None, cross_region_restore_flag=None,
hybrid_backup_security_features=None):
if soft_delete_feature_state or hybrid_backup_security_features:
logger.warning("""
--backup-storage-redundancy and --cross-region-restore-flag parameters will be ignored if provided.
""")
soft_delete_feature_state += "d"
vault_config_client = backup_resource_vault_config_cf(cmd.cli_ctx)
vault_config_response = vault_config_client.get(vault_name, resource_group_name)
enhanced_security_state = vault_config_response.properties.enhanced_security_state
soft_delete_feature_state = vault_config_response.properties.soft_delete_feature_state if (
soft_delete_feature_state is None) else soft_delete_feature_state + "d"
hybrid_backup_security_features = vault_config_response.properties.enhanced_security_state if (
hybrid_backup_security_features is None) else hybrid_backup_security_features + "d"
vault_config = BackupResourceVaultConfig(soft_delete_feature_state=soft_delete_feature_state,
enhanced_security_state=enhanced_security_state)
enhanced_security_state=hybrid_backup_security_features)
vault_config_resource = BackupResourceVaultConfigResource(properties=vault_config)
return vault_config_client.update(vault_name, resource_group_name, vault_config_resource)

Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,14 @@ def test_backup_vault(self, resource_group, resource_group_location, vault1, vau
self.check('properties.storageModelType', new_storage_model)
])

self.cmd('backup vault backup-properties set -g {rg} -n {vault1} --hybrid-backup-security-features Disable', checks=[
self.check("properties.enhancedSecurityState", 'Disabled'),
])

self.cmd('backup vault backup-properties set -g {rg} -n {vault1} --hybrid-backup-security-features Enable', checks=[
self.check("properties.enhancedSecurityState", 'Enabled'),
])

self.cmd('backup vault delete -n {vault4} -g {rg} -y')

self.cmd('backup vault list', checks=[
Expand Down