summarylogtreecommitdiffstats
path: root/gsutil-use-google-cloud-sdk.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gsutil-use-google-cloud-sdk.patch')
-rw-r--r--gsutil-use-google-cloud-sdk.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/gsutil-use-google-cloud-sdk.patch b/gsutil-use-google-cloud-sdk.patch
new file mode 100644
index 000000000000..89549951f765
--- /dev/null
+++ b/gsutil-use-google-cloud-sdk.patch
@@ -0,0 +1,54 @@
+diff --git a/gsutil.py b/gsutil.py
+index 8bfed540e..cca9d4b50 100755
+--- a/gsutil.py
++++ b/gsutil.py
+@@ -82,45 +82,10 @@ def temporary_directory(base):
+ shutil.rmtree(tmpdir)
+
+ def ensure_gsutil(version, target, clean):
+- bin_dir = os.path.join(target, 'gsutil_%s' % version)
+- gsutil_bin = os.path.join(bin_dir, 'gsutil', 'gsutil')
+- gsutil_flag = os.path.join(bin_dir, 'gsutil', 'install.flag')
+- # We assume that if gsutil_flag exists, then we have a good version
+- # of the gsutil package.
+- if not clean and os.path.isfile(gsutil_flag):
+- # Everything is awesome! we're all done here.
+- return gsutil_bin
+-
+- if not os.path.exists(target):
+- os.makedirs(target)
+- with temporary_directory(target) as instance_dir:
+- # Clean up if we're redownloading a corrupted gsutil.
+- cleanup_path = os.path.join(instance_dir, 'clean')
+- try:
+- os.rename(bin_dir, cleanup_path)
+- except (OSError, IOError):
+- cleanup_path = None
+- if cleanup_path:
+- shutil.rmtree(cleanup_path)
+-
+- download_dir = os.path.join(instance_dir, 'download')
+- target_zip_filename = download_gsutil(version, instance_dir)
+- with zipfile.ZipFile(target_zip_filename, 'r') as target_zip:
+- target_zip.extractall(download_dir)
+-
+- try:
+- os.rename(download_dir, bin_dir)
+- except (OSError, IOError):
+- # Something else did this in parallel.
+- pass
+- # Final check that the gsutil bin exists. This should never fail.
+- if not os.path.isfile(gsutil_bin):
+- raise InvalidGsutilError()
+- # Drop a flag file.
+- with open(gsutil_flag, 'w') as f:
+- f.write('This flag file is dropped by gsutil.py')
+-
+- return gsutil_bin
++ candidate = '/opt/google-cloud-sdk/platform/gsutil/gsutil'
++ if os.path.exists(candidate):
++ return candidate
++ raise RuntimeError('Please install google-cloud-sdk package to use gsutil')
+
+
+ def run_gsutil(force_version, fallback, target, args, clean=False):