Chromium Code Reviews

Side by Side Diff: download_from_google_storage.py

Issue 784433003: Revert of Don't check bucket permissions if --no-auth. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Download files from Google Storage based on SHA1 sums.""" 6 """Download files from Google Storage based on SHA1 sums."""
7 7
8 8
9 import hashlib 9 import hashlib
10 import optparse 10 import optparse
(...skipping 92 matching lines...)
103 if status_code_match: 103 if status_code_match:
104 return (int(status_code_match.group(1)), out, err) 104 return (int(status_code_match.group(1)), out, err)
105 if ('You are attempting to access protected data with ' 105 if ('You are attempting to access protected data with '
106 'no configured credentials.' in err): 106 'no configured credentials.' in err):
107 return (403, out, err) 107 return (403, out, err)
108 if 'No such object' in err: 108 if 'No such object' in err:
109 return (404, out, err) 109 return (404, out, err)
110 return (code, out, err) 110 return (code, out, err)
111 111
112 112
113 def check_bucket_permissions(base_url, gsutil): 113 def check_bucket_permissions(bucket, gsutil):
114 if not bucket:
115 print >> sys.stderr, 'Missing bucket %s.'
116 return (None, 1)
117 base_url = 'gs://%s' % bucket
118
114 code, _, ls_err = gsutil.check_call('ls', base_url) 119 code, _, ls_err = gsutil.check_call('ls', base_url)
115 if code != 0: 120 if code != 0:
116 print >> sys.stderr, ls_err 121 print >> sys.stderr, ls_err
117 if code == 403: 122 if code == 403:
118 print >> sys.stderr, 'Got error 403 while authenticating to %s.' % base_url 123 print >> sys.stderr, 'Got error 403 while authenticating to %s.' % base_url
119 print >> sys.stderr, 'Try running "download_from_google_storage --config".' 124 print >> sys.stderr, 'Try running "download_from_google_storage --config".'
120 elif code == 404: 125 elif code == 404:
121 print >> sys.stderr, '%s not found.' % base_url 126 print >> sys.stderr, '%s not found.' % base_url
122 return (base_url, code) 127 return (base_url, code)
123 128
(...skipping 321 matching lines...)
445 options.output = input_filename[:-5] 450 options.output = input_filename[:-5]
446 else: 451 else:
447 parser.error('Unreachable state.') 452 parser.error('Unreachable state.')
448 453
449 # Check if output file already exists. 454 # Check if output file already exists.
450 if not options.directory and not options.force and not options.no_resume: 455 if not options.directory and not options.force and not options.no_resume:
451 if os.path.exists(options.output): 456 if os.path.exists(options.output):
452 parser.error('Output file %s exists and --no_resume is specified.' 457 parser.error('Output file %s exists and --no_resume is specified.'
453 % options.output) 458 % options.output)
454 459
455 base_url = 'gs://%s' % options.bucket
456
457 # Check we have a valid bucket with valid permissions. 460 # Check we have a valid bucket with valid permissions.
458 if not options.no_auth: 461 base_url, code = check_bucket_permissions(options.bucket, gsutil)
459 code = check_bucket_permissions(base_url, gsutil, options.no_auth) 462 if code:
460 if code: 463 return code
461 return code
462 464
463 return download_from_google_storage( 465 return download_from_google_storage(
464 input_filename, base_url, gsutil, options.num_threads, options.directory, 466 input_filename, base_url, gsutil, options.num_threads, options.directory,
465 options.recursive, options.force, options.output, options.ignore_errors, 467 options.recursive, options.force, options.output, options.ignore_errors,
466 options.sha1_file, options.verbose, options.auto_platform) 468 options.sha1_file, options.verbose, options.auto_platform)
467 469
468 470
469 if __name__ == '__main__': 471 if __name__ == '__main__':
470 sys.exit(main(sys.argv)) 472 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine