Skip to content
Merged
29 changes: 21 additions & 8 deletions src/azure-cli-testsdk/azure/cli/testsdk/preparers.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,34 +148,47 @@ def _get_resource_group(self, **kwargs):

# pylint: disable=too-many-instance-attributes
class KeyVaultPreparer(NoTrafficRecordingPreparer, SingleValueReplacer):
def __init__(self, name_prefix='clitest', sku='standard', location='westus', parameter_name='key_vault',
resource_group_parameter_name='resource_group', skip_delete=True,
dev_setting_name='AZURE_CLI_TEST_DEV_KEY_VAULT_NAME', key='kv'):
super(KeyVaultPreparer, self).__init__(name_prefix, 24)
def __init__(self, name_prefix='clitest', sku='standard', location='westus', enable_soft_delete=True,
parameter_name='key_vault', resource_group_parameter_name='resource_group', skip_delete=False,
dev_setting_name='AZURE_CLI_TEST_DEV_KEY_VAULT_NAME', key='kv', name_len=24, additional_params=None):
super(KeyVaultPreparer, self).__init__(name_prefix, name_len)
self.cli_ctx = get_dummy_cli()
self.location = location
self.sku = sku
self.enable_soft_delete = enable_soft_delete
self.resource_group_parameter_name = resource_group_parameter_name
self.skip_delete = skip_delete
self.parameter_name = parameter_name
self.key = key
self.additional_params = additional_params
self.dev_setting_name = os.environ.get(dev_setting_name, None)

def create_resource(self, name, **kwargs):
if not self.dev_setting_name:
group = self._get_resource_group(**kwargs)
template = 'az keyvault create -n {} -g {} -l {} --sku {}'
template = 'az keyvault create -n {} -g {} -l {} --sku {} '
if self.enable_soft_delete:
template += '--enable-soft-delete --retention-days 7 '
if self.additional_params:
template += self.additional_params
self.live_only_execute(self.cli_ctx, template.format(name, group, self.location, self.sku))
self.test_class_instance.kwargs[self.key] = name
return {self.parameter_name: name}

self.test_class_instance.kwargs[self.key] = name
self.test_class_instance.kwargs[self.key] = self.dev_setting_name
return {self.parameter_name: self.dev_setting_name}

def remove_resource(self, name, **kwargs):
if not self.skip_delete and not self.dev_setting_name:
group = self._get_resource_group(**kwargs)
self.live_only_execute(self.cli_ctx, 'az keyvault delete -n {} -g {} --yes'.format(name, group))
self.live_only_execute(self.cli_ctx, 'az keyvault purge -n {} -l {}'.format(name, self.location))
self.live_only_execute(self.cli_ctx, 'az keyvault delete -n {} -g {}'.format(name, group))
if self.enable_soft_delete:
from azure.core.exceptions import HttpResponseError
try:
self.live_only_execute(self.cli_ctx, 'az keyvault purge -n {} -l {}'.format(name, self.location))
except HttpResponseError:
# purge operation will fail with HttpResponseError when --enable-purge-protection
pass

def _get_resource_group(self, **kwargs):
try:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
class AmsEncryptionTests(ScenarioTest):
@ResourceGroupPreparer(location='centralus')
@StorageAccountPreparer(parameter_name='storage_account_for_create')
@KeyVaultPreparer(location='centralus')
@KeyVaultPreparer(location='centralus', additional_params='--enable-purge-protection')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The refactoring of KeyVaultPreparer could be split into another PR.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's part of re-recording creating keyvault in other modules.

def test_ams_encryption_set_show(self, resource_group, storage_account_for_create, key_vault):
amsname = self.create_random_name(prefix='ams', length=12)

Expand All @@ -28,7 +28,6 @@ def test_ams_encryption_set_show(self, resource_group, storage_account_for_creat
self.check('location', 'Central US')
])

self.cmd('keyvault create --name {keyVault} -g {rg} --enable-soft-delete --enable-purge-protection')
key_vault_result = self.cmd('keyvault key create --name {keyName} --vault-name {keyVault}')

self.kwargs['keyVaultId'] = key_vault_result.get_output_in_json()['key']['kid']
Expand All @@ -45,4 +44,3 @@ def test_ams_encryption_set_show(self, resource_group, storage_account_for_creat
])

self.cmd('az ams account delete -n {amsname} -g {rg}')
self.cmd('az keyvault delete -n {keyVault} -g {rg}')

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions src/azure-cli/azure/cli/command_modules/appservice/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -1899,6 +1899,11 @@
text: az webapp log deployment list --name MyWebApp --resource-group MyResourceGroup
"""

helps['functionapp log'] = """
type: group
short-summary: Manage function app logs.
"""

helps['functionapp log deployment'] = """
type: group
short-summary: Manage function app deployment logs.
Expand Down

Large diffs are not rendered by default.

Loading