libv8 5.3.332.38.5 → 5.6.326.50.0beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/CHANGELOG.md +2 -0
- data/ext/libv8/builder.rb +2 -2
- data/lib/libv8/version.rb +1 -1
- data/patches/0001-Build-a-standalone-static-library.patch +4 -4
- data/patches/0002-Don-t-compile-unnecessary-stuff.patch +16 -11
- data/patches/0003-Use-the-fPIC-flag-for-the-static-library.patch +4 -4
- data/patches/{0005-Do-not-embed-debug-symbols-in-macOS-libraries.patch → 0004-Do-not-embed-debug-symbols-in-macOS-libraries.patch} +4 -4
- data/vendor/depot_tools/.gitignore +4 -0
- data/vendor/depot_tools/OWNERS +0 -2
- data/vendor/depot_tools/PRESUBMIT.py +20 -23
- data/vendor/depot_tools/README.gclient.md +3 -3
- data/vendor/depot_tools/README.git-cl.md +13 -12
- data/vendor/depot_tools/README.md +2 -3
- data/vendor/depot_tools/WATCHLISTS +0 -1
- data/vendor/depot_tools/appengine_mapper.py +23 -0
- data/vendor/depot_tools/apply_issue.py +2 -8
- data/vendor/depot_tools/bootstrap/win/README.md +1 -8
- data/vendor/depot_tools/bootstrap/win/git_bootstrap.py +6 -16
- data/vendor/depot_tools/bootstrap/win/git_version.txt +1 -1
- data/vendor/depot_tools/bootstrap/win/git_version_bleeding_edge.txt +1 -1
- data/vendor/depot_tools/checkout.py +20 -433
- data/vendor/depot_tools/cipd +73 -0
- data/vendor/depot_tools/cipd.bat +12 -0
- data/vendor/depot_tools/cipd.ps1 +57 -0
- data/vendor/depot_tools/cipd_client_version +1 -0
- data/vendor/depot_tools/clang_format.py +9 -6
- data/vendor/depot_tools/clang_format_merge_driver +8 -0
- data/vendor/depot_tools/clang_format_merge_driver.bat +11 -0
- data/vendor/depot_tools/clang_format_merge_driver.py +67 -0
- data/vendor/depot_tools/codereview.settings +3 -2
- data/vendor/depot_tools/commit_queue.py +1 -1
- data/vendor/depot_tools/cpplint.py +2 -0
- data/vendor/depot_tools/fetch.py +1 -54
- data/vendor/depot_tools/fetch_configs/android.py +2 -2
- data/vendor/depot_tools/fetch_configs/breakpad.py +2 -3
- data/vendor/depot_tools/fetch_configs/chromium.py +2 -3
- data/vendor/depot_tools/fetch_configs/crashpad.py +2 -2
- data/vendor/depot_tools/fetch_configs/dart.py +2 -3
- data/vendor/depot_tools/fetch_configs/dartino.py +2 -3
- data/vendor/depot_tools/fetch_configs/dartium.py +2 -3
- data/vendor/depot_tools/fetch_configs/depot_tools.py +3 -6
- data/vendor/depot_tools/fetch_configs/gyp.py +2 -3
- data/vendor/depot_tools/fetch_configs/infra.py +2 -2
- data/vendor/depot_tools/fetch_configs/infra_internal.py +2 -2
- data/vendor/depot_tools/fetch_configs/ios.py +2 -2
- data/vendor/depot_tools/fetch_configs/ios_internal.py +2 -3
- data/vendor/depot_tools/fetch_configs/mojo.py +2 -3
- data/vendor/depot_tools/fetch_configs/nacl.py +2 -3
- data/vendor/depot_tools/fetch_configs/naclports.py +2 -3
- data/vendor/depot_tools/fetch_configs/pdfium.py +2 -2
- data/vendor/depot_tools/fetch_configs/skia.py +2 -2
- data/vendor/depot_tools/fetch_configs/skia_buildbot.py +2 -2
- data/vendor/depot_tools/fetch_configs/syzygy.py +2 -2
- data/vendor/depot_tools/fetch_configs/v8.py +2 -3
- data/vendor/depot_tools/fetch_configs/webrtc.py +5 -3
- data/vendor/depot_tools/fetch_configs/webrtc_android.py +2 -2
- data/vendor/depot_tools/fetch_configs/webrtc_ios.py +2 -2
- data/vendor/depot_tools/fix_encoding.py +6 -6
- data/vendor/depot_tools/gclient.py +136 -368
- data/vendor/depot_tools/gclient_scm.py +108 -647
- data/vendor/depot_tools/gclient_utils.py +22 -86
- data/vendor/depot_tools/gerrit_client.py +105 -0
- data/vendor/depot_tools/gerrit_util.py +174 -67
- data/vendor/depot_tools/git-crrev-parse +6 -7
- data/vendor/depot_tools/git-gs +1 -1
- data/vendor/depot_tools/git_cache.py +68 -18
- data/vendor/depot_tools/git_cherry_pick_upload.py +4 -4
- data/vendor/depot_tools/git_cl.py +1028 -961
- data/vendor/depot_tools/git_common.py +2 -3
- data/vendor/depot_tools/git_drover.py +0 -1
- data/vendor/depot_tools/git_footers.py +3 -43
- data/vendor/depot_tools/git_rebase_update.py +9 -1
- data/vendor/depot_tools/git_squash_branch.py +1 -1
- data/vendor/depot_tools/infra/config/cq.cfg +8 -1
- data/vendor/depot_tools/infra/config/recipes.cfg +1 -1
- data/vendor/depot_tools/man/html/depot_tools.html +3 -11
- data/vendor/depot_tools/man/html/depot_tools_tutorial.html +9 -9
- data/vendor/depot_tools/man/html/git-cherry-pick-upload.html +2 -2
- data/vendor/depot_tools/man/html/git-drover.html +17 -17
- data/vendor/depot_tools/man/html/git-footers.html +2 -2
- data/vendor/depot_tools/man/html/git-freeze.html +4 -4
- data/vendor/depot_tools/man/html/git-hyper-blame.html +2 -2
- data/vendor/depot_tools/man/html/git-map-branches.html +2 -2
- data/vendor/depot_tools/man/html/git-map.html +2 -2
- data/vendor/depot_tools/man/html/git-mark-merge-base.html +2 -2
- data/vendor/depot_tools/man/html/git-nav-downstream.html +2 -2
- data/vendor/depot_tools/man/html/git-nav-upstream.html +2 -2
- data/vendor/depot_tools/man/html/git-new-branch.html +2 -2
- data/vendor/depot_tools/man/html/git-rebase-update.html +2 -2
- data/vendor/depot_tools/man/html/git-rename-branch.html +2 -2
- data/vendor/depot_tools/man/html/git-reparent-branch.html +2 -2
- data/vendor/depot_tools/man/html/git-retry.html +3 -3
- data/vendor/depot_tools/man/html/git-squash-branch.html +3 -3
- data/vendor/depot_tools/man/html/git-thaw.html +2 -2
- data/vendor/depot_tools/man/html/git-upstream-diff.html +3 -3
- data/vendor/depot_tools/man/man1/git-cherry-pick-upload.1 +4 -4
- data/vendor/depot_tools/man/man1/git-drover.1 +19 -19
- data/vendor/depot_tools/man/man1/git-footers.1 +4 -4
- data/vendor/depot_tools/man/man1/git-freeze.1 +6 -6
- data/vendor/depot_tools/man/man1/git-hyper-blame.1 +4 -4
- data/vendor/depot_tools/man/man1/git-map-branches.1 +4 -4
- data/vendor/depot_tools/man/man1/git-map.1 +4 -4
- data/vendor/depot_tools/man/man1/git-mark-merge-base.1 +4 -4
- data/vendor/depot_tools/man/man1/git-nav-downstream.1 +4 -4
- data/vendor/depot_tools/man/man1/git-nav-upstream.1 +4 -4
- data/vendor/depot_tools/man/man1/git-new-branch.1 +4 -4
- data/vendor/depot_tools/man/man1/git-rebase-update.1 +4 -4
- data/vendor/depot_tools/man/man1/git-rename-branch.1 +4 -4
- data/vendor/depot_tools/man/man1/git-reparent-branch.1 +4 -4
- data/vendor/depot_tools/man/man1/git-retry.1 +5 -5
- data/vendor/depot_tools/man/man1/git-squash-branch.1 +5 -5
- data/vendor/depot_tools/man/man1/git-thaw.1 +4 -4
- data/vendor/depot_tools/man/man1/git-upstream-diff.1 +5 -5
- data/vendor/depot_tools/man/man7/depot_tools.7 +5 -10
- data/vendor/depot_tools/man/man7/depot_tools_tutorial.7 +4 -4
- data/vendor/depot_tools/man/src/depot_tools.txt +1 -1
- data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +7 -7
- data/vendor/depot_tools/man/src/filter_demo_output.py +2 -2
- data/vendor/depot_tools/man/src/git-footers.demo.1.sh +1 -1
- data/vendor/depot_tools/man/src/git-retry.txt +1 -1
- data/vendor/depot_tools/man/src/git-squash-branch.txt +2 -2
- data/vendor/depot_tools/man/src/git-upstream-diff.txt +1 -1
- data/vendor/depot_tools/my_activity.py +6 -3
- data/vendor/depot_tools/my_reviews.py +1 -1
- data/vendor/depot_tools/ninja +2 -2
- data/vendor/depot_tools/ninja-linux32 +0 -0
- data/vendor/depot_tools/ninja-linux64 +0 -0
- data/vendor/depot_tools/ninja-mac +0 -0
- data/vendor/depot_tools/ninja.exe +0 -0
- data/vendor/depot_tools/owners.py +14 -3
- data/vendor/depot_tools/presubmit_canned_checks.py +46 -67
- data/vendor/depot_tools/presubmit_support.py +109 -371
- data/vendor/depot_tools/pylintrc +83 -56
- data/vendor/depot_tools/recipe_modules/OWNERS +1 -0
- data/vendor/depot_tools/recipe_modules/bot_update/__init__.py +18 -9
- data/vendor/depot_tools/recipe_modules/bot_update/api.py +56 -55
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic.json +3 -7
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic_output_manifest.json +3 -7
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic_with_branch_heads.json +3 -7
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/buildbot.json +52 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/clobber.json +19 -10
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/gerrit_no_rebase_patch_ref.json +19 -10
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/gerrit_no_reset.json +19 -10
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/no_shallow.json +19 -10
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/reset_root_solution_revision.json +19 -10
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange.json +3 -7
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange_oauth2.json +2 -54
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange_oauth2_buildbot.json +56 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/{forced.json → trychange_oauth2_json.json} +6 -9
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange_oauth2_json_win.json +54 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob.json +9 -9
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail.json +9 -9
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail_patch.json +9 -9
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail_patch_download.json +9 -9
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_gerrit_angle.json +20 -10
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_gerrit_angle_deprecated.json +59 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_v8.json +9 -9
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_v8_head_by_default.json +20 -10
- data/vendor/depot_tools/recipe_modules/bot_update/example.py +45 -63
- data/vendor/depot_tools/recipe_modules/bot_update/resources/bot_update.py +210 -807
- data/vendor/depot_tools/recipe_modules/bot_update/test_api.py +34 -45
- data/vendor/depot_tools/recipe_modules/cipd/api.py +59 -84
- data/vendor/depot_tools/recipe_modules/cipd/example.expected/basic.json +71 -117
- data/vendor/depot_tools/recipe_modules/cipd/example.expected/describe-failed.json +14 -60
- data/vendor/depot_tools/recipe_modules/cipd/example.expected/describe-many-instances.json +71 -117
- data/vendor/depot_tools/recipe_modules/cipd/example.expected/mac64.json +71 -117
- data/vendor/depot_tools/recipe_modules/cipd/example.expected/win64.json +71 -117
- data/vendor/depot_tools/recipe_modules/cipd/example.py +2 -12
- data/vendor/depot_tools/recipe_modules/cipd/test_api.py +0 -9
- data/vendor/depot_tools/recipe_modules/depot_tools/api.py +6 -0
- data/vendor/depot_tools/recipe_modules/depot_tools/example.expected/basic.json +7 -0
- data/vendor/depot_tools/recipe_modules/depot_tools/example.expected/win.json +7 -0
- data/vendor/depot_tools/recipe_modules/depot_tools/example.py +3 -0
- data/vendor/depot_tools/recipe_modules/gclient/__init__.py +4 -0
- data/vendor/depot_tools/recipe_modules/gclient/api.py +9 -22
- data/vendor/depot_tools/recipe_modules/gclient/config.py +18 -5
- data/vendor/depot_tools/recipe_modules/gclient/example.expected/basic.json +14 -14
- data/vendor/depot_tools/recipe_modules/gclient/example.expected/buildbot.json +211 -0
- data/vendor/depot_tools/recipe_modules/gclient/example.expected/revision.json +16 -14
- data/vendor/depot_tools/recipe_modules/gclient/example.expected/tryserver.json +16 -14
- data/vendor/depot_tools/recipe_modules/gclient/example.py +13 -11
- data/vendor/depot_tools/recipe_modules/gerrit/__init__.py +6 -0
- data/vendor/depot_tools/recipe_modules/gerrit/api.py +63 -0
- data/vendor/depot_tools/recipe_modules/gerrit/example.expected/basic.json +64 -0
- data/vendor/depot_tools/recipe_modules/gerrit/example.py +35 -0
- data/vendor/depot_tools/recipe_modules/gerrit/test_api.py +24 -0
- data/vendor/depot_tools/recipe_modules/git/__init__.py +4 -0
- data/vendor/depot_tools/recipe_modules/git/api.py +155 -142
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic_branch.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic_file_name.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic_hash.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic_ref.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic_submodule_update_force.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/can_fail_build.json +13 -13
- data/vendor/depot_tools/recipe_modules/git/example.expected/cannot_fail_build.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/cat-file_test.json +45 -19
- data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_delta.json +45 -19
- data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_failed.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_with_bad_output.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_with_bad_output_fails_build.json +8 -8
- data/vendor/depot_tools/recipe_modules/git/example.expected/curl_trace_file.json +44 -18
- data/vendor/depot_tools/recipe_modules/git/example.expected/git-cache-checkout.json +48 -22
- data/vendor/depot_tools/recipe_modules/git/example.expected/platform_win.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/rebase_failed.json +42 -16
- data/vendor/depot_tools/recipe_modules/git/example.expected/remote_not_origin.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.expected/set_got_revision.json +43 -17
- data/vendor/depot_tools/recipe_modules/git/example.py +9 -3
- data/vendor/depot_tools/recipe_modules/git_cl/__init__.py +4 -0
- data/vendor/depot_tools/recipe_modules/git_cl/api.py +8 -8
- data/vendor/depot_tools/recipe_modules/git_cl/example.py +1 -1
- data/vendor/depot_tools/recipe_modules/gsutil/__init__.py +4 -0
- data/vendor/depot_tools/recipe_modules/gsutil/api.py +196 -0
- data/vendor/depot_tools/recipe_modules/gsutil/example.expected/basic.json +186 -0
- data/vendor/depot_tools/recipe_modules/gsutil/example.py +77 -0
- data/vendor/depot_tools/recipe_modules/gsutil/resources/gsutil_smart_retry.py +69 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/__init__.py +3 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/api.py +20 -3
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/basic.json +3 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_buildbot_linux.json +3 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_buildbot_mac.json +3 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_buildbot_win.json +3 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_kitchen_linux.json +3 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_kitchen_mac.json +3 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_kitchen_win.json +3 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_swarmbucket_linux.json +3 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_swarmbucket_mac.json +3 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_swarmbucket_win.json +3 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/example.py +6 -1
- data/vendor/depot_tools/recipe_modules/infra_paths/path_config.py +4 -6
- data/vendor/depot_tools/recipe_modules/rietveld/__init__.py +5 -0
- data/vendor/depot_tools/recipe_modules/rietveld/api.py +12 -9
- data/vendor/depot_tools/recipe_modules/rietveld/example.expected/basic.json +2 -24
- data/vendor/depot_tools/recipe_modules/rietveld/example.expected/buildbot.json +30 -0
- data/vendor/depot_tools/recipe_modules/rietveld/example.py +12 -6
- data/vendor/depot_tools/recipe_modules/tryserver/__init__.py +4 -0
- data/vendor/depot_tools/recipe_modules/tryserver/api.py +46 -70
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/set_failure_hash_with_no_steps.json +8 -0
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/{with_svn_patch.json → with_gerrit_patch.json} +1 -31
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_gerrit_patch_deprecated.json +39 -0
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_git_patch.json +2 -2
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_git_patch_luci.json +8 -0
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_rietveld_patch.json +3 -3
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_rietveld_patch_new.json +3 -3
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_wrong_patch.json +1 -1
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_wrong_patch_new.json +1 -1
- data/vendor/depot_tools/recipe_modules/tryserver/example.py +35 -5
- data/vendor/depot_tools/recipes.py +52 -28
- data/vendor/depot_tools/repo +216 -69
- data/vendor/depot_tools/rietveld.py +20 -15
- data/vendor/depot_tools/roll_dep.py +1 -1
- data/vendor/depot_tools/scm.py +11 -826
- data/vendor/depot_tools/subprocess2.py +5 -5
- data/vendor/depot_tools/third_party/cq_client/README.depot_tools.md +2 -0
- data/vendor/depot_tools/third_party/cq_client/README.md +5 -1
- data/vendor/depot_tools/third_party/cq_client/cq.pb.go +183 -104
- data/vendor/depot_tools/third_party/cq_client/cq.proto +43 -27
- data/vendor/depot_tools/third_party/cq_client/cq_pb2.py +95 -29
- data/vendor/depot_tools/third_party/cq_client/testdata/cq_both.cfg +67 -0
- data/vendor/depot_tools/third_party/cq_client/testdata/cq_gerrit.cfg +1 -2
- data/vendor/depot_tools/third_party/cq_client/testdata/cq_rietveld.cfg +0 -3
- data/vendor/depot_tools/third_party/upload.py +44 -24
- data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +0 -5
- metadata +38 -93
- data/patches/0004-Reinterpret-thread-hash-for-FreeBSD-too.patch +0 -25
- data/vendor/depot_tools/git-auto-svn +0 -6
- data/vendor/depot_tools/git_auto_svn.py +0 -122
- data/vendor/depot_tools/man/html/git-auto-svn.html +0 -837
- data/vendor/depot_tools/man/man1/git-auto-svn.1 +0 -113
- data/vendor/depot_tools/man/src/_git-auto-svn_desc.helper.txt +0 -1
- data/vendor/depot_tools/man/src/git-auto-svn.txt +0 -69
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/off.json +0 -43
- data/vendor/depot_tools/recipe_modules/cipd/example.expected/install-failed.json +0 -31
- data/vendor/depot_tools/recipe_modules/cipd/resources/bootstrap.py +0 -218
- data/vendor/depot_tools/recipe_modules/tryserver/test_api.py +0 -7
- data/vendor/depot_tools/third_party/gsutil/CHECKSUM +0 -1
- data/vendor/depot_tools/third_party/gsutil/COPYING +0 -202
- data/vendor/depot_tools/third_party/gsutil/LICENSE.third_party +0 -295
- data/vendor/depot_tools/third_party/gsutil/MANIFEST.in +0 -5
- data/vendor/depot_tools/third_party/gsutil/README +0 -38
- data/vendor/depot_tools/third_party/gsutil/README.chromium +0 -25
- data/vendor/depot_tools/third_party/gsutil/README.pkg +0 -49
- data/vendor/depot_tools/third_party/gsutil/ReleaseNotes.txt +0 -825
- data/vendor/depot_tools/third_party/gsutil/VERSION +0 -1
- data/vendor/depot_tools/third_party/gsutil/gslib/README +0 -5
- data/vendor/depot_tools/third_party/gsutil/gslib/__init__.py +0 -22
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/__init__.py +0 -15
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/acls.py +0 -234
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/anon.py +0 -57
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/command_opts.py +0 -116
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/dev.py +0 -139
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/metadata.py +0 -186
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/naming.py +0 -173
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/prod.py +0 -160
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/projects.py +0 -130
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/subdirs.py +0 -110
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/support.py +0 -86
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/versioning.py +0 -242
- data/vendor/depot_tools/third_party/gsutil/gslib/addlhelp/wildcards.py +0 -170
- data/vendor/depot_tools/third_party/gsutil/gslib/bucket_listing_ref.py +0 -175
- data/vendor/depot_tools/third_party/gsutil/gslib/command.py +0 -725
- data/vendor/depot_tools/third_party/gsutil/gslib/command_runner.py +0 -102
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/__init__.py +0 -15
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/cat.py +0 -131
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/chacl.py +0 -523
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/config.py +0 -662
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/cp.py +0 -1819
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/disablelogging.py +0 -101
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/enablelogging.py +0 -149
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/getacl.py +0 -82
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/getcors.py +0 -121
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/getdefacl.py +0 -86
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/getlogging.py +0 -137
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/getversioning.py +0 -116
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/getwebcfg.py +0 -122
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/help.py +0 -218
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/ls.py +0 -578
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/mb.py +0 -172
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/mv.py +0 -159
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/perfdiag.py +0 -903
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/rb.py +0 -113
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/rm.py +0 -237
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/setacl.py +0 -138
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/setcors.py +0 -145
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/setdefacl.py +0 -105
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/setmeta.py +0 -420
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/setversioning.py +0 -114
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/setwebcfg.py +0 -190
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/update.py +0 -305
- data/vendor/depot_tools/third_party/gsutil/gslib/commands/version.py +0 -150
- data/vendor/depot_tools/third_party/gsutil/gslib/exception.py +0 -76
- data/vendor/depot_tools/third_party/gsutil/gslib/help_provider.py +0 -81
- data/vendor/depot_tools/third_party/gsutil/gslib/name_expansion.py +0 -550
- data/vendor/depot_tools/third_party/gsutil/gslib/no_op_auth_plugin.py +0 -30
- data/vendor/depot_tools/third_party/gsutil/gslib/plurality_checkable_iterator.py +0 -56
- data/vendor/depot_tools/third_party/gsutil/gslib/project_id.py +0 -67
- data/vendor/depot_tools/third_party/gsutil/gslib/storage_uri_builder.py +0 -56
- data/vendor/depot_tools/third_party/gsutil/gslib/thread_pool.py +0 -79
- data/vendor/depot_tools/third_party/gsutil/gslib/util.py +0 -167
- data/vendor/depot_tools/third_party/gsutil/gslib/wildcard_iterator.py +0 -498
- data/vendor/depot_tools/third_party/gsutil/gsutil +0 -384
- data/vendor/depot_tools/third_party/gsutil/gsutil.spec.in +0 -75
- data/vendor/depot_tools/third_party/gsutil/oauth2_plugin/__init__.py +0 -22
- data/vendor/depot_tools/third_party/gsutil/oauth2_plugin/oauth2_client.py +0 -630
- data/vendor/depot_tools/third_party/gsutil/oauth2_plugin/oauth2_client_test.py +0 -374
- data/vendor/depot_tools/third_party/gsutil/oauth2_plugin/oauth2_helper.py +0 -103
- data/vendor/depot_tools/third_party/gsutil/oauth2_plugin/oauth2_plugin.py +0 -24
- data/vendor/depot_tools/third_party/gsutil/pkg_util.py +0 -60
- data/vendor/depot_tools/third_party/gsutil/plugins/__init__.py +0 -0
- data/vendor/depot_tools/third_party/gsutil/plugins/sso_auth.py +0 -105
@@ -1,160 +0,0 @@
|
|
1
|
-
# Copyright 2012 Google Inc. All Rights Reserved.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
from gslib.help_provider import HELP_NAME
|
16
|
-
from gslib.help_provider import HELP_NAME_ALIASES
|
17
|
-
from gslib.help_provider import HELP_ONE_LINE_SUMMARY
|
18
|
-
from gslib.help_provider import HelpProvider
|
19
|
-
from gslib.help_provider import HELP_TEXT
|
20
|
-
from gslib.help_provider import HelpType
|
21
|
-
from gslib.help_provider import HELP_TYPE
|
22
|
-
|
23
|
-
_detailed_help_text = ("""
|
24
|
-
<B>OVERVIEW</B>
|
25
|
-
If you use gsutil in large production tasks (such as uploading or
|
26
|
-
downloading many GB of data each night), there are a number of things
|
27
|
-
you can do to help ensure success. Specifically, this section discusses
|
28
|
-
how to script large production tasks around gsutil's resumable transfer
|
29
|
-
mechanism.
|
30
|
-
|
31
|
-
|
32
|
-
<B>BACKGROUND ON RESUMABLE TRANSFERS</B>
|
33
|
-
First, it's helpful to understand gsutil's resumable transfer mechanism,
|
34
|
-
and how your script needs to be implemented around this mechanism to work
|
35
|
-
reliably. gsutil uses the resumable transfer support in the boto library
|
36
|
-
when you attempt to upload or download a file larger than a configurable
|
37
|
-
threshold (by default, this threshold is 1MB). When a transfer fails
|
38
|
-
partway through (e.g., because of an intermittent network problem),
|
39
|
-
boto uses a randomized binary exponential backoff-and-retry strategy:
|
40
|
-
wait a random period between [0..1] seconds and retry; if that fails,
|
41
|
-
wait a random period between [0..2] seconds and retry; and if that
|
42
|
-
fails, wait a random period between [0..4] seconds, and so on, up to a
|
43
|
-
configurable number of times (the default is 6 times). Thus, the retry
|
44
|
-
actually spans a randomized period up to 1+2+4+8+16+32=63 seconds.
|
45
|
-
|
46
|
-
If the transfer fails each of these attempts with no intervening
|
47
|
-
progress, gsutil gives up on the transfer, but keeps a "tracker" file
|
48
|
-
for it in a configurable location (the default location is ~/.gsutil/,
|
49
|
-
in a file named by a combination of the SHA1 hash of the name of the
|
50
|
-
bucket and object being transferred and the last 16 characters of the
|
51
|
-
file name). When transfers fail in this fashion, you can rerun gsutil
|
52
|
-
at some later time (e.g., after the networking problem has been
|
53
|
-
resolved), and the resumable transfer picks up where it left off.
|
54
|
-
|
55
|
-
|
56
|
-
<B>SCRIPTING DATA TRANSFER TASKS</B>
|
57
|
-
To script large production data transfer tasks around this mechanism,
|
58
|
-
you can implement a script that runs periodically, determines which file
|
59
|
-
transfers have not yet succeeded, and runs gsutil to copy them. Below,
|
60
|
-
we offer a number of suggestions about how this type of scripting should
|
61
|
-
be implemented:
|
62
|
-
|
63
|
-
1. When resumable transfers fail without any progress 6 times in a row
|
64
|
-
over the course of up to 63 seconds, it probably won't work to simply
|
65
|
-
retry the transfer immediately. A more successful strategy would be to
|
66
|
-
have a cron job that runs every 30 minutes, determines which transfers
|
67
|
-
need to be run, and runs them. If the network experiences intermittent
|
68
|
-
problems, the script picks up where it left off and will eventually
|
69
|
-
succeed (once the network problem has been resolved).
|
70
|
-
|
71
|
-
2. If your business depends on timely data transfer, you should consider
|
72
|
-
implementing some network monitoring. For example, you can implement
|
73
|
-
a task that attempts a small download every few minutes and raises an
|
74
|
-
alert if the attempt fails for several attempts in a row (or more or less
|
75
|
-
frequently depending on your requirements), so that your IT staff can
|
76
|
-
investigate problems promptly. As usual with monitoring implementations,
|
77
|
-
you should experiment with the alerting thresholds, to avoid false
|
78
|
-
positive alerts that cause your staff to begin ignoring the alerts.
|
79
|
-
|
80
|
-
3. There are a variety of ways you can determine what files remain to be
|
81
|
-
transferred. We recommend that you avoid attempting to get a complete
|
82
|
-
listing of a bucket containing many objects (e.g., tens of thousands
|
83
|
-
or more). One strategy is to structure your object names in a way that
|
84
|
-
represents your transfer process, and use gsutil prefix wildcards to
|
85
|
-
request partial bucket listings. For example, if your periodic process
|
86
|
-
involves downloading the current day's objects, you could name objects
|
87
|
-
using a year-month-day-object-ID format and then find today's objects by
|
88
|
-
using a command like gsutil ls gs://bucket/2011-09-27-*. Note that it
|
89
|
-
is more efficient to have a non-wildcard prefix like this than to use
|
90
|
-
something like gsutil ls gs://bucket/*-2011-09-27. The latter command
|
91
|
-
actually requests a complete bucket listing and then filters in gsutil,
|
92
|
-
while the former asks Google Storage to return the subset of objects
|
93
|
-
whose names start with everything up to the *.
|
94
|
-
|
95
|
-
For data uploads, another technique would be to move local files from a "to
|
96
|
-
be processed" area to a "done" area as your script successfully copies files
|
97
|
-
to the cloud. You can do this in parallel batches by using a command like:
|
98
|
-
|
99
|
-
gsutil -m cp -R to_upload/subdir_$i gs://bucket/subdir_$i
|
100
|
-
|
101
|
-
where i is a shell loop variable. Make sure to check the shell $status
|
102
|
-
variable is 0 after each gsutil cp command, to detect if some of the copies
|
103
|
-
failed, and rerun the affected copies.
|
104
|
-
|
105
|
-
With this strategy, the file system keeps track of all remaining work to
|
106
|
-
be done.
|
107
|
-
|
108
|
-
4. If you have really large numbers of objects in a single bucket
|
109
|
-
(say hundreds of thousands or more), you should consider tracking your
|
110
|
-
objects in a database instead of using bucket listings to enumerate
|
111
|
-
the objects. For example this database could track the state of your
|
112
|
-
downloads, so you can determine what objects need to be downloaded by
|
113
|
-
your periodic download script by querying the database locally instead
|
114
|
-
of performing a bucket listing.
|
115
|
-
|
116
|
-
5. Make sure you don't delete partially downloaded files after a transfer
|
117
|
-
fails: gsutil picks up where it left off (and performs an MD5 check of
|
118
|
-
the final downloaded content to ensure data integrity), so deleting
|
119
|
-
partially transferred files will cause you to lose progress and make
|
120
|
-
more wasteful use of your network. You should also make sure whatever
|
121
|
-
process is waiting to consume the downloaded data doesn't get pointed
|
122
|
-
at the partially downloaded files. One way to do this is to download
|
123
|
-
into a staging directory and then move successfully downloaded files to
|
124
|
-
a directory where consumer processes will read them.
|
125
|
-
|
126
|
-
6. If you have a fast network connection, you can speed up the transfer of
|
127
|
-
large numbers of files by using the gsutil -m (multi-threading /
|
128
|
-
multi-processing) option. Be aware, however, that gsutil doesn't attempt to
|
129
|
-
keep track of which files were downloaded successfully in cases where some
|
130
|
-
files failed to download. For example, if you use multi-threaded transfers
|
131
|
-
to download 100 files and 3 failed to download, it is up to your scripting
|
132
|
-
process to determine which transfers didn't succeed, and retry them. A
|
133
|
-
periodic check-and-run approach like outlined earlier would handle this case.
|
134
|
-
|
135
|
-
If you use parallel transfers (gsutil -m) you might want to experiment with
|
136
|
-
the number of threads being used (via the parallel_thread_count setting
|
137
|
-
in the .boto config file). By default, gsutil uses 24 threads. Depending
|
138
|
-
on your network speed, available memory, CPU load, and other conditions,
|
139
|
-
this may or may not be optimal. Try experimenting with higher or lower
|
140
|
-
numbers of threads, to find the best number of threads for your environment.
|
141
|
-
""")
|
142
|
-
|
143
|
-
|
144
|
-
class CommandOptions(HelpProvider):
|
145
|
-
"""Additional help about using gsutil for production tasks."""
|
146
|
-
|
147
|
-
help_spec = {
|
148
|
-
# Name of command or auxiliary help info for which this help applies.
|
149
|
-
HELP_NAME : 'prod',
|
150
|
-
# List of help name aliases.
|
151
|
-
HELP_NAME_ALIASES : ['production', 'resumable', 'resumable upload',
|
152
|
-
'resumable transfer', 'resumable download',
|
153
|
-
'scripts', 'scripting'],
|
154
|
-
# Type of help:
|
155
|
-
HELP_TYPE : HelpType.ADDITIONAL_HELP,
|
156
|
-
# One line summary of this help.
|
157
|
-
HELP_ONE_LINE_SUMMARY : 'Scripting production data transfers with gsutil',
|
158
|
-
# The full help text.
|
159
|
-
HELP_TEXT : _detailed_help_text,
|
160
|
-
}
|
@@ -1,130 +0,0 @@
|
|
1
|
-
# Copyright 2012 Google Inc. All Rights Reserved.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
from gslib.help_provider import HELP_NAME
|
16
|
-
from gslib.help_provider import HELP_NAME_ALIASES
|
17
|
-
from gslib.help_provider import HELP_ONE_LINE_SUMMARY
|
18
|
-
from gslib.help_provider import HelpProvider
|
19
|
-
from gslib.help_provider import HELP_TEXT
|
20
|
-
from gslib.help_provider import HelpType
|
21
|
-
from gslib.help_provider import HELP_TYPE
|
22
|
-
|
23
|
-
_detailed_help_text = ("""
|
24
|
-
<B>OVERVIEW</B>
|
25
|
-
This section discusses how to work with projects in Google Cloud Storage.
|
26
|
-
|
27
|
-
For more information about using the Google APIs Console to administer
|
28
|
-
project memberships (which are automatically included in ACLs for buckets
|
29
|
-
you create) see https://code.google.com/apis/console#:storage:access.
|
30
|
-
|
31
|
-
|
32
|
-
<B>PROJECT MEMBERS AND PERMISSIONS</B>
|
33
|
-
There are three groups of users associated with each project:
|
34
|
-
|
35
|
-
- Project Owners are allowed to list, create, and delete buckets,
|
36
|
-
and can also perform administrative tasks like adding and removing team
|
37
|
-
members and changing billing. The project owners group is the owner
|
38
|
-
of all buckets within a project, regardless of who may be the original
|
39
|
-
bucket creator.
|
40
|
-
|
41
|
-
- Project Editors are allowed to list, create, and delete buckets.
|
42
|
-
|
43
|
-
- All Project Team Members are allowed to list buckets within a project.
|
44
|
-
|
45
|
-
These projects make it easy to set up a bucket and start uploading objects
|
46
|
-
with access control appropriate for a project at your company, as the three
|
47
|
-
group memberships can be configured by your administrative staff. Control
|
48
|
-
over projects and their associated memberships is provided by the Google
|
49
|
-
APIs Console (https://code.google.com/apis/console).
|
50
|
-
|
51
|
-
|
52
|
-
<B>HOW PROJECT MEMBERSHIP IS REFLECTED IN BUCKET ACLS</B>
|
53
|
-
When you create a bucket without specifying an ACL the bucket is given a
|
54
|
-
"project-private" ACL, which grants the permissions described in the previous
|
55
|
-
section. Here's an example of such an ACL:
|
56
|
-
|
57
|
-
<AccessControlList>
|
58
|
-
<Owner>
|
59
|
-
<ID>
|
60
|
-
00b4903a9740e42c29800f53bd5a9a62a2f96eb3f64a4313a115df3f3a776bf7
|
61
|
-
</ID>
|
62
|
-
</Owner>
|
63
|
-
<Entries>
|
64
|
-
<Entry>
|
65
|
-
<Scope type="GroupById">
|
66
|
-
<ID>
|
67
|
-
00b4903a9740e42c29800f53bd5a9a62a2f96eb3f64a4313a115df3f3a776bf7
|
68
|
-
</ID>
|
69
|
-
</Scope>
|
70
|
-
<Permission>
|
71
|
-
FULL_CONTROL
|
72
|
-
</Permission>
|
73
|
-
</Entry>
|
74
|
-
<Entry>
|
75
|
-
<Scope type="GroupById">
|
76
|
-
<ID>
|
77
|
-
00b4903a977fd817e9da167bc81306489181a110456bb635f466d71cf90a0d51
|
78
|
-
</ID>
|
79
|
-
</Scope>
|
80
|
-
<Permission>
|
81
|
-
FULL_CONTROL
|
82
|
-
</Permission>
|
83
|
-
</Entry>
|
84
|
-
<Entry>
|
85
|
-
<Scope type="GroupById">
|
86
|
-
<ID>
|
87
|
-
00b4903a974898cc8fc309f2f2835308ba3d3df1b889d3fc7e33e187d52d8e71
|
88
|
-
</ID>
|
89
|
-
</Scope>
|
90
|
-
<Permission>
|
91
|
-
READ
|
92
|
-
</Permission>
|
93
|
-
</Entry>
|
94
|
-
</Entries>
|
95
|
-
</AccessControlList>
|
96
|
-
|
97
|
-
The three "GroupById" scopes are the canonical IDs for the Project Owners,
|
98
|
-
Project Editors, and All Project Team Members groups.
|
99
|
-
|
100
|
-
You can edit the bucket ACL if you want to (see "gsutil help setacl"),
|
101
|
-
but for many cases you'll never need to, and instead can change group
|
102
|
-
membership via the APIs console.
|
103
|
-
|
104
|
-
<B>IDENTIFYING PROJECTS WHEN CREATING AND LISTING BUCKETS</B>
|
105
|
-
When you create a bucket or list your buckets, you need to provide the
|
106
|
-
project ID that want to create or list (using the gsutil mb -p option or
|
107
|
-
the gsutil ls -p option, respectively). The project's name shown in the
|
108
|
-
Google APIs Console is a user-friendly name that you can choose; this is
|
109
|
-
not the project ID required by the gsutil mb and ls commands. To find the
|
110
|
-
project ID, go to the Storage Access pane in the Google APIs Console. Your
|
111
|
-
project ID is listed under Identifying your project.
|
112
|
-
""")
|
113
|
-
|
114
|
-
|
115
|
-
class CommandOptions(HelpProvider):
|
116
|
-
"""Additional help about Access Control Lists."""
|
117
|
-
|
118
|
-
help_spec = {
|
119
|
-
# Name of command or auxiliary help info for which this help applies.
|
120
|
-
HELP_NAME : 'projects',
|
121
|
-
# List of help name aliases.
|
122
|
-
HELP_NAME_ALIASES : ['apis console', 'console', 'dev console', 'project',
|
123
|
-
'proj', 'project-id'],
|
124
|
-
# Type of help:
|
125
|
-
HELP_TYPE : HelpType.ADDITIONAL_HELP,
|
126
|
-
# One line summary of this help.
|
127
|
-
HELP_ONE_LINE_SUMMARY : 'Working with projects',
|
128
|
-
# The full help text.
|
129
|
-
HELP_TEXT : _detailed_help_text,
|
130
|
-
}
|
@@ -1,110 +0,0 @@
|
|
1
|
-
# Copyright 2012 Google Inc. All Rights Reserved.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
from gslib.help_provider import HELP_NAME
|
16
|
-
from gslib.help_provider import HELP_NAME_ALIASES
|
17
|
-
from gslib.help_provider import HELP_ONE_LINE_SUMMARY
|
18
|
-
from gslib.help_provider import HelpProvider
|
19
|
-
from gslib.help_provider import HELP_TEXT
|
20
|
-
from gslib.help_provider import HelpType
|
21
|
-
from gslib.help_provider import HELP_TYPE
|
22
|
-
|
23
|
-
_detailed_help_text = ("""
|
24
|
-
<B>OVERVIEW</B>
|
25
|
-
This section provides details about how subdirectories work in gsutil.
|
26
|
-
Most users probably don't need to know these details, and can simply use
|
27
|
-
the commands (like cp -R) that work with subdirectories. We provide this
|
28
|
-
additional documentation to help users understand how gsutil handles
|
29
|
-
subdirectories differently than most GUI / web-based tools (e.g., why
|
30
|
-
those other tools create "dir_$folder$" objects), and also to explain cost and
|
31
|
-
performance implications of the gsutil approach, for those interested in such
|
32
|
-
details.
|
33
|
-
|
34
|
-
gsutil provides the illusion of a hierarchical file tree atop the "flat"
|
35
|
-
name space supported by the Google Cloud Storage service. To the service,
|
36
|
-
the object gs://bucket/abc/def/ghi.txt is just an object that happens to have
|
37
|
-
"/" characters in its name. There are no "abc" or "abc/def" directories;
|
38
|
-
just a single object with the given name.
|
39
|
-
|
40
|
-
gsutil achieves the hierarchical file tree illusion by applying a variety of
|
41
|
-
rules, to try to make naming work the way users would expect. For example, in
|
42
|
-
order to determine whether to treat a destination URI as an object name or the
|
43
|
-
root of a directory under which objects should be copied gsutil uses these
|
44
|
-
rules:
|
45
|
-
|
46
|
-
1. If the destination object ends with a "/" gsutil treats it as a directory.
|
47
|
-
For example, if you run the command:
|
48
|
-
|
49
|
-
gsutil cp file gs://bucket/abc/
|
50
|
-
|
51
|
-
gsutil will create the object gs://bucket/abc/file.
|
52
|
-
|
53
|
-
2. If you attempt to copy multiple source files to a destination URI, gsutil
|
54
|
-
treats the destination URI as a directory. For example, if you run
|
55
|
-
the command:
|
56
|
-
|
57
|
-
gsutil cp -R dir gs://bucket/abc
|
58
|
-
|
59
|
-
gsutil will create objects like gs://bucket/abc/dir/file1, etc. (assuming
|
60
|
-
file1 is a file under the source dir).
|
61
|
-
|
62
|
-
3. If neither of the above rules applies, gsutil performs a bucket listing to
|
63
|
-
determine if the target of the operation is a prefix match to the
|
64
|
-
specified string. For example, if you run the command:
|
65
|
-
|
66
|
-
gsutil cp file gs://bucket/abc
|
67
|
-
|
68
|
-
gsutil will make a bucket listing request for the named bucket, using
|
69
|
-
delimiter="/" and prefix="abc". It will then examine the bucket listing
|
70
|
-
results and determine whether there are objects in the bucket whose path
|
71
|
-
starts with gs://bucket/abc/, to determine whether to treat the target as
|
72
|
-
an object name or a directory name. In turn this impacts the name of the
|
73
|
-
object you create: If the above check indicates there is an "abc" directory
|
74
|
-
you will end up with the object gs://bucket/abc/file; otherwise you will
|
75
|
-
end up with the object gs://bucket/abc. (See "HOW NAMES ARE CONSTRUCTED"
|
76
|
-
under "gsutil help cp" for more details.)
|
77
|
-
|
78
|
-
This rule-based approach stands in contrast to the way many tools work, which
|
79
|
-
create objects to mark the existence of folders (such as "dir_$folder$").
|
80
|
-
gsutil understands several conventions used by such tools but does not
|
81
|
-
require such marker objects to implement naming behavior consistent with
|
82
|
-
UNIX commands.
|
83
|
-
|
84
|
-
A downside of the gsutil approach is it requires an extra bucket listing
|
85
|
-
before performing the needed cp or mv command. However those listings are
|
86
|
-
relatively inexpensive, because they use delimiter and prefix parameters to
|
87
|
-
limit result data. Moreover, gsutil makes only one bucket listing request
|
88
|
-
per cp/mv command, and thus amortizes the bucket listing cost across all
|
89
|
-
transferred objects (e.g., when performing a recursive copy of a directory
|
90
|
-
to the cloud).
|
91
|
-
""")
|
92
|
-
|
93
|
-
|
94
|
-
class CommandOptions(HelpProvider):
|
95
|
-
"""Additional help about subdirectory handling in gsutil."""
|
96
|
-
|
97
|
-
help_spec = {
|
98
|
-
# Name of command or auxiliary help info for which this help applies.
|
99
|
-
HELP_NAME : 'subdirs',
|
100
|
-
# List of help name aliases.
|
101
|
-
HELP_NAME_ALIASES : ['dirs', 'directory', 'directories', 'folder',
|
102
|
-
'folders', 'hierarchy', 'subdir', 'subdirectory',
|
103
|
-
'subdirectories'],
|
104
|
-
# Type of help:
|
105
|
-
HELP_TYPE : HelpType.ADDITIONAL_HELP,
|
106
|
-
# One line summary of this help.
|
107
|
-
HELP_ONE_LINE_SUMMARY : 'How subdirectories work in gsutil',
|
108
|
-
# The full help text.
|
109
|
-
HELP_TEXT : _detailed_help_text,
|
110
|
-
}
|
@@ -1,86 +0,0 @@
|
|
1
|
-
# Copyright 2012 Google Inc. All Rights Reserved.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
from gslib.help_provider import HELP_NAME
|
16
|
-
from gslib.help_provider import HELP_NAME_ALIASES
|
17
|
-
from gslib.help_provider import HELP_ONE_LINE_SUMMARY
|
18
|
-
from gslib.help_provider import HelpProvider
|
19
|
-
from gslib.help_provider import HELP_TEXT
|
20
|
-
from gslib.help_provider import HelpType
|
21
|
-
from gslib.help_provider import HELP_TYPE
|
22
|
-
|
23
|
-
_detailed_help_text = ("""
|
24
|
-
<B>TECHNICAL SUPPORT</B>
|
25
|
-
If you have any questions or encounter any problems with Google Cloud Storage,
|
26
|
-
please first read the FAQ at https://developers.google.com/storage/docs/faq.
|
27
|
-
If you still need help, please post your question to the gs-discussion forum
|
28
|
-
(https://developers.google.com/storage/forum) or to Stack Overflow with the
|
29
|
-
Google Cloud Storage tag
|
30
|
-
(http://stackoverflow.com/questions/tagged/google-cloud-storage). Our support
|
31
|
-
team actively monitors these forums and we'll do our best to respond. To help
|
32
|
-
us diagnose any issues you encounter, please provide these details in addition
|
33
|
-
to the description of your problem:
|
34
|
-
|
35
|
-
- The resource you are attempting to access (bucket name, object name)
|
36
|
-
- The operation you attempted (GET, PUT, etc.)
|
37
|
-
- The time and date (including timezone) at which you encountered the problem
|
38
|
-
- The tool or library you use to interact with Google Cloud Storage
|
39
|
-
- If you can use gsutil to reproduce your issue, specify the -D option to
|
40
|
-
display your request's HTTP details. Provide these details with your post
|
41
|
-
to the forum as they can help us further troubleshoot your issue.
|
42
|
-
|
43
|
-
Warning: The gsutil -D, -d, and -DD options will also print the authentication
|
44
|
-
header with authentication credentials for your Google Cloud Storage account.
|
45
|
-
Make sure to remove any "Authorization:" headers before you post HTTP details
|
46
|
-
to the forum.
|
47
|
-
|
48
|
-
If you make any local modifications to gsutil, please make sure to use
|
49
|
-
a released copy of gsutil (instead of your locally modified copy) when
|
50
|
-
providing the gsutil -D output noted above. We cannot support versions
|
51
|
-
of gsutil that include local modifications. (However, we're open to user
|
52
|
-
contributions; see "gsutil help dev".)
|
53
|
-
|
54
|
-
As an alternative to posting to the gs-discussion forum, we also
|
55
|
-
actively monitor http://stackoverflow.com for questions tagged with
|
56
|
-
"google-cloud-storage".
|
57
|
-
|
58
|
-
|
59
|
-
<B>BILLING AND ACCOUNT QUESTIONS</B>
|
60
|
-
For questions about billing or account issues, please visit
|
61
|
-
http://code.google.com/apis/console-help/#billing. If you want to cancel
|
62
|
-
billing, you can do so on the Billing pane of the Google APIs Console. For
|
63
|
-
more information, see
|
64
|
-
http://code.google.com/apis/console-help/#BillingCancelled. Caution: When you
|
65
|
-
disable billing, you also disable the Google Cloud Storage service. Make sure
|
66
|
-
you want to disable the Google Cloud Storage service before you disable
|
67
|
-
billing.
|
68
|
-
""")
|
69
|
-
|
70
|
-
|
71
|
-
class CommandOptions(HelpProvider):
|
72
|
-
"""Additional help about tech and billing support."""
|
73
|
-
|
74
|
-
help_spec = {
|
75
|
-
# Name of command or auxiliary help info for which this help applies.
|
76
|
-
HELP_NAME : 'support',
|
77
|
-
# List of help name aliases.
|
78
|
-
HELP_NAME_ALIASES : ['techsupport', 'tech support', 'technical support',
|
79
|
-
'billing', 'faq', 'questions'],
|
80
|
-
# Type of help:
|
81
|
-
HELP_TYPE : HelpType.ADDITIONAL_HELP,
|
82
|
-
# One line summary of this help.
|
83
|
-
HELP_ONE_LINE_SUMMARY : 'How to get Google Cloud Storage support',
|
84
|
-
# The full help text.
|
85
|
-
HELP_TEXT : _detailed_help_text,
|
86
|
-
}
|