"""A script to download files required for Remoting integration tests from GCS.
The script expects 2 parameters:
input_files: a file containing the full path in GCS to each file that is to
be downloaded.
output_folder: the folder to which the specified files should be downloaded.
This scripts expects that its execution is done on a machine where the
credentials are correctly setup to obtain the required permissions for
downloading files from the specified GCS buckets.
"""
import argparse
import ntpath
import os
import subprocess
import sys
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--files',
help='File specifying files to be downloaded .')
parser.add_argument(
'-o', '--output_folder',
help='Folder where specified files should be downloaded .')
if len(sys.argv) < 3:
parser.print_help()
sys.exit(1)
args = parser.parse_args()
if not args.files or not args.output_folder:
parser.print_help()
sys.exit(1)
with open(args.files) as f:
for line in f:
output_file = os.path.join(args.output_folder, ntpath.basename(line))
cp_cmd = ['gsutil.py', 'cp', line, output_file]
try:
subprocess.check_call(cp_cmd)
except subprocess.CalledProcessError as e:
print(e.output)
sys.exit(1)
if __name__ == '__main__':
main()