From 2f4557ee5bc0049fd7dafdf3deb6ca9d8fa4e44e Mon Sep 17 00:00:00 2001 From: Zunli Hu Date: Mon, 17 Feb 2020 11:15:24 +0800 Subject: [PATCH 1/3] add validator=process_resource_group --- src/azure-cli/azure/cli/command_modules/storage/_params.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/storage/_params.py b/src/azure-cli/azure/cli/command_modules/storage/_params.py index 6495313f9a8..3b984964767 100644 --- a/src/azure-cli/azure/cli/command_modules/storage/_params.py +++ b/src/azure-cli/azure/cli/command_modules/storage/_params.py @@ -663,7 +663,7 @@ def load_arguments(self, _): # pylint: disable=too-many-locals, too-many-statem for item in ['create', 'delete', 'exists', 'list', 'show', 'update']: with self.argument_context('storage share-rm {}'.format(item), resource_type=ResourceType.MGMT_STORAGE) as c: - c.argument('resource_group_name', required=False) + c.argument('resource_group_name', required=False, validator=process_resource_group) c.argument('account_name', storage_account_type) c.argument('share_name', share_name_type, options_list=('--name', '-n'), id_part='child_name_2') c.argument('share_quota', type=int, options_list='--quota') From f25e6d0c480efcced8a02c7d4aedbcda164c60a1 Mon Sep 17 00:00:00 2001 From: Zunli Hu Date: Mon, 17 Feb 2020 15:41:59 +0800 Subject: [PATCH 2/3] refine storage account validator --- src/azure-cli/azure/cli/command_modules/storage/_params.py | 2 +- .../azure/cli/command_modules/storage/_validators.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/storage/_params.py b/src/azure-cli/azure/cli/command_modules/storage/_params.py index 3b984964767..6495313f9a8 100644 --- a/src/azure-cli/azure/cli/command_modules/storage/_params.py +++ b/src/azure-cli/azure/cli/command_modules/storage/_params.py @@ -663,7 +663,7 @@ def load_arguments(self, _): # pylint: disable=too-many-locals, too-many-statem for item in ['create', 'delete', 'exists', 'list', 'show', 'update']: with self.argument_context('storage share-rm {}'.format(item), resource_type=ResourceType.MGMT_STORAGE) as c: - c.argument('resource_group_name', required=False, validator=process_resource_group) + c.argument('resource_group_name', required=False) c.argument('account_name', storage_account_type) c.argument('share_name', share_name_type, options_list=('--name', '-n'), id_part='child_name_2') c.argument('share_quota', type=int, options_list='--quota') diff --git a/src/azure-cli/azure/cli/command_modules/storage/_validators.py b/src/azure-cli/azure/cli/command_modules/storage/_validators.py index 8d306d2ec36..566ddd28633 100644 --- a/src/azure-cli/azure/cli/command_modules/storage/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/storage/_validators.py @@ -65,13 +65,15 @@ def _cancel_timer_event_handler(_, **__): # region PARAMETER VALIDATORS -def parse_storage_account(namespace): +def parse_storage_account(cmd, namespace): """Parse storage account which can be either account name or account id""" from msrestazure.tools import parse_resource_id, is_valid_resource_id if namespace.account_name and is_valid_resource_id(namespace.account_name): namespace.resource_group_name = parse_resource_id(namespace.account_name)['resource_group'] namespace.account_name = parse_resource_id(namespace.account_name)['name'] + elif not namespace.resource_group_name: + namespace.resource_group_name = _query_account_rg(cmd.cli_ctx, namespace.account_name)[0] def process_resource_group(cmd, namespace): From cb51bd905a48ff65a2ea762deb803ae1b0e5484e Mon Sep 17 00:00:00 2001 From: Zunli Hu Date: Mon, 17 Feb 2020 17:15:52 +0800 Subject: [PATCH 3/3] add more validate --- src/azure-cli/azure/cli/command_modules/storage/_validators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/storage/_validators.py b/src/azure-cli/azure/cli/command_modules/storage/_validators.py index 566ddd28633..1ea16360db7 100644 --- a/src/azure-cli/azure/cli/command_modules/storage/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/storage/_validators.py @@ -72,7 +72,7 @@ def parse_storage_account(cmd, namespace): if namespace.account_name and is_valid_resource_id(namespace.account_name): namespace.resource_group_name = parse_resource_id(namespace.account_name)['resource_group'] namespace.account_name = parse_resource_id(namespace.account_name)['name'] - elif not namespace.resource_group_name: + elif namespace.account_name and not namespace.resource_group_name: namespace.resource_group_name = _query_account_rg(cmd.cli_ctx, namespace.account_name)[0]