33# Licensed under the MIT License. See License.txt in the project root for license information.
44# --------------------------------------------------------------------------------------------
55
6- from datetime import datetime
76from azure .cli .core .profiles import ResourceType
87
98
109def create_acl_policy (cmd , client , policy_name , start = None , expiry = None , permission = None , ** kwargs ):
1110 """Create a stored access policy on the containing object"""
1211 t_access_policy = cmd .get_models ('_models#AccessPolicy' , resource_type = ResourceType .DATA_STORAGE_BLOB )
1312 acl = _get_acl (cmd , client , ** kwargs )
14- acl [policy_name ] = t_access_policy (permission if permission else '' ,
15- expiry if expiry else datetime .max ,
16- start if start else datetime .utcnow ())
13+ acl [policy_name ] = t_access_policy (permission , expiry , start )
1714 if hasattr (acl , 'public_access' ):
1815 kwargs ['public_access' ] = getattr (acl , 'public_access' )
1916
@@ -40,9 +37,13 @@ def set_acl_policy(cmd, client, policy_name, start=None, expiry=None, permission
4037 acl = _get_acl (cmd , client , ** kwargs )
4138 try :
4239 policy = acl [policy_name ]
43- policy .start = start if start else policy .start
44- policy .expiry = expiry if expiry else policy .expiry
45- policy .permission = permission or policy .permission
40+ if policy is None :
41+ t_access_policy = cmd .get_models ('_models#AccessPolicy' , resource_type = ResourceType .DATA_STORAGE_BLOB )
42+ acl [policy_name ] = t_access_policy (permission , expiry , start )
43+ else :
44+ policy .start = start if start else policy .start
45+ policy .expiry = expiry if expiry else policy .expiry
46+ policy .permission = permission or policy .permission
4647 if hasattr (acl , 'public_access' ):
4748 kwargs ['public_access' ] = getattr (acl , 'public_access' )
4849
@@ -99,6 +100,8 @@ def convert_acl_permissions(result):
99100 signed_identifiers [identifier .id ] = identifier .access_policy
100101 result = signed_identifiers
101102 for policy in sorted (result .keys ()):
103+ if result [policy ] is None :
104+ continue
102105 if getattr (result [policy ], 'permission' ) is None :
103106 setattr (result [policy ], 'permission' , '' )
104107 return result
0 commit comments