Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(364)

Side by Side Diff: third_party/gsutil/gslib/commands/defacl.py

Issue 1380943003: Roll version of gsutil to 4.15. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: rebase Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/gsutil/gslib/commands/cp.py ('k') | third_party/gsutil/gslib/commands/mb.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 # Copyright 2011 Google Inc. All Rights Reserved. 2 # Copyright 2011 Google Inc. All Rights Reserved.
3 # 3 #
4 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License. 5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at 6 # You may obtain a copy of the License at
7 # 7 #
8 # http://www.apache.org/licenses/LICENSE-2.0 8 # http://www.apache.org/licenses/LICENSE-2.0
9 # 9 #
10 # Unless required by applicable law or agreed to in writing, software 10 # Unless required by applicable law or agreed to in writing, software
(...skipping 12 matching lines...) Expand all
23 from gslib.cloud_api import ServiceException 23 from gslib.cloud_api import ServiceException
24 from gslib.command import Command 24 from gslib.command import Command
25 from gslib.command import SetAclExceptionHandler 25 from gslib.command import SetAclExceptionHandler
26 from gslib.command import SetAclFuncWrapper 26 from gslib.command import SetAclFuncWrapper
27 from gslib.command_argument import CommandArgument 27 from gslib.command_argument import CommandArgument
28 from gslib.cs_api_map import ApiSelector 28 from gslib.cs_api_map import ApiSelector
29 from gslib.exception import CommandException 29 from gslib.exception import CommandException
30 from gslib.help_provider import CreateHelpText 30 from gslib.help_provider import CreateHelpText
31 from gslib.storage_url import StorageUrlFromString 31 from gslib.storage_url import StorageUrlFromString
32 from gslib.third_party.storage_apitools import storage_v1_messages as apitools_m essages 32 from gslib.third_party.storage_apitools import storage_v1_messages as apitools_m essages
33 from gslib.translation_helper import PRIVATE_DEFAULT_OBJ_ACL
33 from gslib.util import NO_MAX 34 from gslib.util import NO_MAX
34 from gslib.util import Retry 35 from gslib.util import Retry
35 from gslib.util import UrlsAreForSingleProvider 36 from gslib.util import UrlsAreForSingleProvider
36 37
37 _SET_SYNOPSIS = """ 38 _SET_SYNOPSIS = """
38 gsutil defacl set file-or-canned_acl_name url... 39 gsutil defacl set file-or-canned_acl_name url...
39 """ 40 """
40 41
41 _GET_SYNOPSIS = """ 42 _GET_SYNOPSIS = """
42 gsutil defacl get url 43 gsutil defacl get url
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 Add the user john.doe@example.com to the default object ACL on bucket 95 Add the user john.doe@example.com to the default object ACL on bucket
95 example-bucket with READ access: 96 example-bucket with READ access:
96 97
97 gsutil defacl ch -u john.doe@example.com:READ gs://example-bucket 98 gsutil defacl ch -u john.doe@example.com:READ gs://example-bucket
98 99
99 Add the group admins@example.com to the default object ACL on bucket 100 Add the group admins@example.com to the default object ACL on bucket
100 example-bucket with OWNER access: 101 example-bucket with OWNER access:
101 102
102 gsutil defacl ch -g admins@example.com:O gs://example-bucket 103 gsutil defacl ch -g admins@example.com:O gs://example-bucket
103 104
104 Grant the owners of project example-project-123 READ access to new objects 105 Remove the group admins@example.com from the default object ACL on bucket
105 created in the bucket example-bucket: 106 example-bucket:
106 107
107 gsutil acl ch -p owners-example-project-123:R gs://example-bucket 108 gsutil defacl ch -d admins@example.com gs://example-bucket
109
110 Add the owners of project example-project-123 to the default object ACL on
111 bucket example-bucket with READ access:
112
113 gsutil defacl ch -p owners-example-project-123:R gs://example-bucket
108 114
109 NOTE: You can replace 'owners' with 'viewers' or 'editors' to grant access 115 NOTE: You can replace 'owners' with 'viewers' or 'editors' to grant access
110 to a project's viewers/editors respectively. 116 to a project's viewers/editors respectively.
111 117
112 <B>CH OPTIONS</B> 118 <B>CH OPTIONS</B>
113 The "ch" sub-command has the following options 119 The "ch" sub-command has the following options
114 120
115 -d Remove all roles associated with the matching entity. 121 -d Remove all roles associated with the matching entity.
116 122
117 -f Normally gsutil stops at the first error. The -f option causes 123 -f Normally gsutil stops at the first error. The -f option causes
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 current_acl = bucket.defaultObjectAcl 267 current_acl = bucket.defaultObjectAcl
262 268
263 modification_count = 0 269 modification_count = 0
264 for change in self.changes: 270 for change in self.changes:
265 modification_count += change.Execute( 271 modification_count += change.Execute(
266 url, current_acl, 'defacl', self.logger) 272 url, current_acl, 'defacl', self.logger)
267 if modification_count == 0: 273 if modification_count == 0:
268 self.logger.info('No changes to %s', url) 274 self.logger.info('No changes to %s', url)
269 return 275 return
270 276
277 if not current_acl:
278 # Use a sentinel value to indicate a private (no entries) default
279 # object ACL.
280 current_acl.append(PRIVATE_DEFAULT_OBJ_ACL)
281
271 try: 282 try:
272 preconditions = Preconditions(meta_gen_match=bucket.metageneration) 283 preconditions = Preconditions(meta_gen_match=bucket.metageneration)
273 bucket_metadata = apitools_messages.Bucket(defaultObjectAcl=current_acl) 284 bucket_metadata = apitools_messages.Bucket(defaultObjectAcl=current_acl)
274 self.gsutil_api.PatchBucket(url.bucket_name, bucket_metadata, 285 self.gsutil_api.PatchBucket(url.bucket_name, bucket_metadata,
275 preconditions=preconditions, 286 preconditions=preconditions,
276 provider=url.scheme, fields=['id']) 287 provider=url.scheme, fields=['id'])
277 except BadRequestException as e: 288 except BadRequestException as e:
278 # Don't retry on bad requests, e.g. invalid email address. 289 # Don't retry on bad requests, e.g. invalid email address.
279 raise CommandException('Received bad request from server: %s' % str(e)) 290 raise CommandException('Received bad request from server: %s' % str(e))
280 except AccessDeniedException: 291 except AccessDeniedException:
(...skipping 14 matching lines...) Expand all
295 elif action_subcommand == 'set': 306 elif action_subcommand == 'set':
296 func = self._SetDefAcl 307 func = self._SetDefAcl
297 elif action_subcommand in ('ch', 'change'): 308 elif action_subcommand in ('ch', 'change'):
298 func = self._ChDefAcl 309 func = self._ChDefAcl
299 else: 310 else:
300 raise CommandException(('Invalid subcommand "%s" for the %s command.\n' 311 raise CommandException(('Invalid subcommand "%s" for the %s command.\n'
301 'See "gsutil help defacl".') % 312 'See "gsutil help defacl".') %
302 (action_subcommand, self.command_name)) 313 (action_subcommand, self.command_name))
303 func() 314 func()
304 return 0 315 return 0
OLDNEW
« no previous file with comments | « third_party/gsutil/gslib/commands/cp.py ('k') | third_party/gsutil/gslib/commands/mb.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698