Skip to content

Commit 3bdf16a

Browse files
akshayneemaAkshay Neema
and
Akshay Neema
authored
[Backup] az backup vault backup-properties: Add new parameter --hybrid-backup-security-features to support setting the security features for hybrid backups (Azure#21736)
* added enhanced security feature support in rsv * added linter exclusion Co-authored-by: Akshay Neema <[email protected]>
1 parent 46fbdea commit 3bdf16a

File tree

5 files changed

+442
-189
lines changed

5 files changed

+442
-189
lines changed

linter_exclusions.yml

+3
Original file line numberDiff line numberDiff line change
@@ -857,6 +857,9 @@ backup vault backup-properties set:
857857
cross_region_restore_flag:
858858
rule_exclusions:
859859
- option_length_too_long
860+
hybrid_backup_security_features:
861+
rule_exclusions:
862+
- option_length_too_long
860863
backup vault encryption update:
861864
parameters:
862865
infrastructure_encryption:

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

+1
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ def load_arguments(self, _):
102102
c.argument('backup_storage_redundancy', arg_type=get_enum_type(['GeoRedundant', 'LocallyRedundant', 'ZoneRedundant']), help='Set backup storage properties for a Recovery Services vault.')
103103
c.argument('soft_delete_feature_state', arg_type=get_enum_type(['Enable', 'Disable']), help='Set soft-delete feature state for a Recovery Services Vault.')
104104
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.')
105+
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.')
105106

106107
# Identity
107108
with self.argument_context('backup vault identity assign') as c:

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

+8-5
Original file line numberDiff line numberDiff line change
@@ -384,17 +384,20 @@ def show_encryption(client, resource_group_name, vault_name):
384384

385385

386386
def set_backup_properties(cmd, client, vault_name, resource_group_name, backup_storage_redundancy=None,
387-
soft_delete_feature_state=None, cross_region_restore_flag=None):
388-
if soft_delete_feature_state:
387+
soft_delete_feature_state=None, cross_region_restore_flag=None,
388+
hybrid_backup_security_features=None):
389+
if soft_delete_feature_state or hybrid_backup_security_features:
389390
logger.warning("""
390391
--backup-storage-redundancy and --cross-region-restore-flag parameters will be ignored if provided.
391392
""")
392-
soft_delete_feature_state += "d"
393393
vault_config_client = backup_resource_vault_config_cf(cmd.cli_ctx)
394394
vault_config_response = vault_config_client.get(vault_name, resource_group_name)
395-
enhanced_security_state = vault_config_response.properties.enhanced_security_state
395+
soft_delete_feature_state = vault_config_response.properties.soft_delete_feature_state if (
396+
soft_delete_feature_state is None) else soft_delete_feature_state + "d"
397+
hybrid_backup_security_features = vault_config_response.properties.enhanced_security_state if (
398+
hybrid_backup_security_features is None) else hybrid_backup_security_features + "d"
396399
vault_config = BackupResourceVaultConfig(soft_delete_feature_state=soft_delete_feature_state,
397-
enhanced_security_state=enhanced_security_state)
400+
enhanced_security_state=hybrid_backup_security_features)
398401
vault_config_resource = BackupResourceVaultConfigResource(properties=vault_config)
399402
return vault_config_client.update(vault_name, resource_group_name, vault_config_resource)
400403

src/azure-cli/azure/cli/command_modules/backup/tests/latest/recordings/test_backup_vault.yaml

+422-184
Large diffs are not rendered by default.

src/azure-cli/azure/cli/command_modules/backup/tests/latest/test_backup_commands.py

+8
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,14 @@ def test_backup_vault(self, resource_group, resource_group_location, vault1, vau
143143
self.check('properties.storageModelType', new_storage_model)
144144
])
145145

146+
self.cmd('backup vault backup-properties set -g {rg} -n {vault1} --hybrid-backup-security-features Disable', checks=[
147+
self.check("properties.enhancedSecurityState", 'Disabled'),
148+
])
149+
150+
self.cmd('backup vault backup-properties set -g {rg} -n {vault1} --hybrid-backup-security-features Enable', checks=[
151+
self.check("properties.enhancedSecurityState", 'Enabled'),
152+
])
153+
146154
self.cmd('backup vault delete -n {vault4} -g {rg} -y')
147155

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

0 commit comments

Comments
 (0)