Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
0ea0e1a
[Backup] Migrate backup to track2 SDK
Jing-song Apr 23, 2021
2d08413
[Backup] Migrate backup to track2 SDK
Jing-song Apr 23, 2021
21df44d
Merge branch 'backup' of https://github.com/PARADISSEEKR/azure-cli in…
Jing-song Apr 23, 2021
ce7ec89
[Backup] Migrate backup to track2 SDK
Jing-song Apr 23, 2021
6ec1be7
Merge branch 'dev' into backup
Jing-song Apr 27, 2021
cbff591
workload_test
Jing-song May 11, 2021
2153a31
workload_sql
Jing-song May 11, 2021
8e2acda
Merge branch 'dev' into backup
Jing-song May 11, 2021
d4b7343
update
Jing-song May 11, 2021
e98fad3
workload_hana
Jing-song May 13, 2021
cd27f08
update afs_test
Jing-song May 13, 2021
10b1d7d
update
Jing-song May 14, 2021
a197e3c
Merge branch 'dev' into backup
Jing-song May 17, 2021
6d4ce96
Revert "Merge branch 'dev' into backup"
Jing-song May 17, 2021
c6ffee9
Modified style
Jing-song May 17, 2021
ac677d3
Merge branch 'dev' into backup
Jing-song May 20, 2021
815bb07
update
Jing-song May 20, 2021
7eecf22
Merge branch 'dev' into backup
Jing-song May 20, 2021
647041f
fix conflicts
Jing-song May 20, 2021
c3b97d0
update
Jing-song May 20, 2021
cffb783
update
Jing-song May 20, 2021
61c44bf
update
Jing-song May 20, 2021
8a619b5
Merge branch 'dev' into backup
Jing-song May 20, 2021
934a554
update
Jing-song May 26, 2021
76c4c64
Merge branch 'dev' into backup
Jing-song May 26, 2021
e0ce5f9
Apply suggestions from code review
Jing-song May 26, 2021
e06fad1
Update preparers.py
Jing-song May 27, 2021
034b326
Resolve conflicts
Jing-song May 28, 2021
2f32c51
Revert "Resolve conflicts"
Jing-song May 28, 2021
6d5f01d
Resolve conflicts
Jing-song May 28, 2021
3e7564b
Merge branch 'Azure:dev' into backup
Jing-song May 28, 2021
230b842
Update test_backup_wl_sql_policy.yaml
Jing-song May 28, 2021
54bfb1c
Delete test_acs_create_kubernetes.yaml
Jing-song May 31, 2021
dae3426
Merge branch 'Azure:dev' into backup
Jing-song May 31, 2021
a344460
Merge branch 'Azure:dev' into backup
Jing-song May 31, 2021
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
5 changes: 3 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 @@ -23,6 +23,7 @@
BackupResourceVaultConfig, BackupResourceVaultConfigResource, DiskExclusionProperties, ExtendedProperties

from azure.cli.core.util import CLIError
from azure.core.exceptions import HttpResponseError
from azure.cli.core.azclierror import RequiredArgumentMissingError, InvalidArgumentValueError
from azure.cli.command_modules.backup._client_factory import (
vaults_cf, backup_protected_items_cf, protection_policies_cf, virtual_machines_cf, recovery_points_cf,
Expand Down Expand Up @@ -162,14 +163,14 @@ def _force_delete_vault(cmd, vault_name, resource_group_name):
# now delete the vault
try:
vault_client.delete(resource_group_name, vault_name)
except Exception as ex:
except HttpResponseError as ex:
raise ex


def delete_vault(cmd, client, vault_name, resource_group_name, force=False):
try:
client.delete(resource_group_name, vault_name)
except Exception as ex: # pylint: disable=broad-except
except HttpResponseError as ex: # pylint: disable=broad-except
if 'existing resources within the vault' in ex.message and force: # pylint: disable=no-member
_force_delete_vault(cmd, vault_name, resource_group_name)
else:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,11 @@ def _cleanup(self, vault_name, resource_group):
execute(self.cli_ctx,
'az backup protection disable --backup-management-type AzureIaasVM --workload-type VM -g {} -v {} -c {} -i {} --delete-backup-data true --yes'
.format(resource_group, vault_name, container, item))
from msrestazure.azure_exceptions import CloudError
from azure.core.exceptions import HttpResponseError
try:
execute(self.cli_ctx, 'az backup vault delete -n {} -g {} --yes'.format(vault_name, resource_group))
except CloudError as ex:
if 'Recovery Services vault cannot be deleted as there are backup items in soft deleted state in the vault' not in str(ex):
except HttpResponseError as ex:
if "Operation returned an invalid status 'Bad Request'" not in str(ex):
raise ex


Expand Down Expand Up @@ -229,7 +229,7 @@ def _get_resource_group(self, **kwargs):
try:
return kwargs.get(self.resource_group_parameter_name)
except KeyError:
template = 'To create an item, a resource group is required. Please add ' \
template = 'To create a Policy, a resource group is required. Please add ' \
'decorator @{} in front of this Policy preparer.'
raise CliTestError(template.format(ResourceGroupPreparer.__name__,
self.resource_group_parameter_name))
Expand All @@ -238,7 +238,7 @@ def _get_vault(self, **kwargs):
try:
return kwargs.get(self.vault_parameter_name)
except KeyError:
template = 'To create an item, a vault is required. Please add ' \
template = 'To create a Policy, a vault is required. Please add ' \
'decorator @{} in front of this Policy preparer.'
raise CliTestError(template.format(VaultPreparer.__name__,
self.vault_parameter_name))
Expand Down Expand Up @@ -281,7 +281,7 @@ def _get_resource_group(self, **kwargs):
try:
return kwargs.get(self.resource_group_parameter_name)
except KeyError:
template = 'To create an item, a resource group is required. Please add ' \
template = 'To create an RP, a resource group is required. Please add ' \
'decorator @{} in front of this RP preparer.'
raise CliTestError(template.format(ResourceGroupPreparer.__name__,
self.resource_group_parameter_name))
Expand All @@ -290,7 +290,7 @@ def _get_vault(self, **kwargs):
try:
return kwargs.get(self.vault_parameter_name)
except KeyError:
template = 'To create an item, a vault is required. Please add ' \
template = 'To create an RP, a vault is required. Please add ' \
'decorator @{} in front of this RP preparer.'
raise CliTestError(template.format(VaultPreparer.__name__,
self.vault_parameter_name))
Expand All @@ -299,7 +299,7 @@ def _get_vm(self, **kwargs):
try:
return kwargs.get(self.vm_parameter_name)
except KeyError:
template = 'To create an rp, a VM is required. Please add ' \
template = 'To create an RP, a VM is required. Please add ' \
'decorator @{} in front of this RP preparer.'
raise CliTestError(template.format(ItemPreparer.__name__, self.vm_parameter_name))

Expand Down Expand Up @@ -345,7 +345,7 @@ def _get_resource_group(self, **kwargs):
try:
return kwargs.get(self.resource_group_parameter_name)
except KeyError:
template = 'To create an item, a resource group is required. Please add ' \
template = 'To create a Policy, a resource group is required. Please add ' \
'decorator @{} in front of this Policy preparer.'
raise CliTestError(template.format(ResourceGroupPreparer.__name__,
self.resource_group_parameter_name))
Expand All @@ -354,7 +354,7 @@ def _get_vault(self, **kwargs):
try:
return kwargs.get(self.vault_parameter_name)
except KeyError:
template = 'To create an item, a vault is required. Please add ' \
template = 'To create a Policy, a vault is required. Please add ' \
'decorator @{} in front of this Policy preparer.'
raise CliTestError(template.format(VaultPreparer.__name__,
self.vault_parameter_name))
Expand Down Expand Up @@ -409,8 +409,8 @@ def _get_resource_group(self, **kwargs):
try:
return kwargs.get(self.resource_group_parameter_name)
except KeyError:
template = 'To create an item, a resource group is required. Please add ' \
'decorator @{} in front of this Policy preparer.'
template = 'To create a Fileshare, a resource group is required. Please add ' \
'decorator @{} in front of this Fileshare preparer.'
raise CliTestError(template.format(ResourceGroupPreparer.__name__,
self.resource_group_parameter_name))

Expand All @@ -424,8 +424,8 @@ def _get_storage_account(self, **kwargs):
try:
return kwargs.get(self.storage_account_parameter_name)
except KeyError:
template = 'To create an item, a vault is required. Please add ' \
'decorator @StorageAccountPreparer in front of this Policy preparer.'
template = 'To create a Fileshare, a storage_account is required. Please add ' \
'decorator @StorageAccountPreparer in front of this Fileshare preparer.'
raise CliTestError(template)


Expand Down Expand Up @@ -468,7 +468,7 @@ def _get_resource_group(self, **kwargs):
return kwargs.get(self.resource_group_parameter_name)
except KeyError:
template = 'To create an item, a resource group is required. Please add ' \
'decorator @{} in front of this Policy preparer.'
'decorator @{} in front of this Item preparer.'
raise CliTestError(template.format(ResourceGroupPreparer.__name__,
self.resource_group_parameter_name))

Expand All @@ -477,32 +477,32 @@ def _get_vault(self, **kwargs):
return kwargs.get(self.vault_parameter_name)
except KeyError:
template = 'To create an item, a vault is required. Please add ' \
'decorator @{} in front of this Policy preparer.'
'decorator @{} in front of this Item preparer.'
raise CliTestError(template.format(VaultPreparer.__name__,
self.vault_parameter_name))

def _get_storage_account(self, **kwargs):
try:
return kwargs.get(self.storage_account_parameter_name)
except KeyError:
template = 'To create an item, a vault is required. Please add ' \
'decorator @StorageAccountPreparer in front of this Policy preparer.'
template = 'To create an item, a storage_account is required. Please add ' \
'decorator @StorageAccountPreparer in front of this Item preparer.'
raise CliTestError(template)

def _get_file_share(self, **kwargs):
try:
return kwargs.get(self.afs_parameter_name)
except KeyError:
template = 'To create an item, a fileshare is required. Please add ' \
'decorator @FileSharePreparer in front of this Policy preparer.'
'decorator @FileSharePreparer in front of this Item preparer.'
raise CliTestError(template)

def _get_policy(self, **kwargs):
try:
return kwargs.get(self.policy_parameter_name)
except KeyError:
template = 'To create an item, a policy is required. Please add ' \
'decorator @AFSPolicyPreparer in front of this Policy preparer.'
'decorator @AFSPolicyPreparer in front of this Item preparer.'
raise CliTestError(template)


Expand Down Expand Up @@ -545,34 +545,34 @@ def _get_resource_group(self, **kwargs):
try:
return kwargs.get(self.resource_group_parameter_name)
except KeyError:
template = 'To create an item, a resource group is required. Please add ' \
'decorator @{} in front of this Policy preparer.'
template = 'To create an RP, a resource group is required. Please add ' \
'decorator @{} in front of this RP preparer.'
raise CliTestError(template.format(ResourceGroupPreparer.__name__,
self.resource_group_parameter_name))

def _get_vault(self, **kwargs):
try:
return kwargs.get(self.vault_parameter_name)
except KeyError:
template = 'To create an item, a vault is required. Please add ' \
'decorator @{} in front of this Policy preparer.'
template = 'To create an RP, a vault is required. Please add ' \
'decorator @{} in front of this RP preparer.'
raise CliTestError(template.format(VaultPreparer.__name__,
self.vault_parameter_name))

def _get_storage_account(self, **kwargs):
try:
return kwargs.get(self.storage_account_parameter_name)
except KeyError:
template = 'To create a RP, an item is required. Please add ' \
'decorator @AFSItemPreparer in front of this Policy preparer.'
template = 'To create an RP, a storage_account is required. Please add ' \
'decorator @AFSItemPreparer in front of this RP preparer.'
raise CliTestError(template)

def _get_file_share(self, **kwargs):
try:
return kwargs.get(self.afs_parameter_name)
except KeyError:
template = 'To create an item, a fileshare is required. Please add ' \
'decorator @FileSharePreparer in front of this Policy preparer.'
template = 'To create an RP, a fileshare is required. Please add ' \
'decorator @FileSharePreparer in front of this RP preparer.'
raise CliTestError(template)


Expand Down
Loading