Skip to content

Commit

Permalink
[Storage] Fix Azure#9158: Cannot generate a working SAS key from a po…
Browse files Browse the repository at this point in the history
…licy (Azure#16549)

* add warning

* fix typo

* applied to blob
  • Loading branch information
Juliehzl authored Jan 22, 2021
1 parent 1c8caad commit b4c666c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/azure-cli/azure/cli/command_modules/storage/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
validate_azcopy_remove_arguments, as_user_validator, parse_storage_account,
validate_delete_retention_days, validate_container_delete_retention_days,
validate_file_delete_retention_days,
validate_fs_public_access, validate_logging_version, validate_or_policy)
validate_fs_public_access, validate_logging_version, validate_or_policy, validate_policy)


def load_arguments(self, _): # pylint: disable=too-many-locals, too-many-statements, too-many-lines
Expand Down Expand Up @@ -593,7 +593,7 @@ def load_arguments(self, _): # pylint: disable=too-many-locals, too-many-statem
validator=as_user_validator,
help="Indicates that this command return the SAS signed with the user delegation key. "
"The expiry parameter and '--auth-mode login' are required if this argument is specified. ")
c.argument('id', options_list='--policy-name',
c.argument('id', options_list='--policy-name', validator=validate_policy,
help='The name of a stored access policy within the container\'s ACL.',
completer=get_storage_acl_name_completion_list(t_base_blob_service, 'container_name',
'get_container_acl'))
Expand Down Expand Up @@ -1047,7 +1047,7 @@ def load_arguments(self, _): # pylint: disable=too-many-locals, too-many-statem
from .completers import get_storage_acl_name_completion_list
t_container_permissions = self.get_sdk('blob.models#ContainerPermissions')
c.register_sas_arguments()
c.argument('id', options_list='--policy-name',
c.argument('id', options_list='--policy-name', validator=validate_policy,
help='The name of a stored access policy within the container\'s ACL.',
completer=get_storage_acl_name_completion_list(t_container_permissions, 'container_name',
'get_container_acl'))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1569,3 +1569,9 @@ def validate_not_none(cmd, namespace):
from azure.cli.core.azclierror import InvalidArgumentValueError
raise InvalidArgumentValueError('Argument {} should be specified'.format('/'.join(options_list)))
return validate_not_none


def validate_policy(namespace):
if namespace.id is not None:
logger.warning("\nPlease do not specify --expiry and --permissions if they are already specified in your "
"policy.")

0 comments on commit b4c666c

Please sign in to comment.