FV3-JEDI
fv3jedi_testdata_downloader.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 
3 import os
4 import sys
5 import stat
6 import tarfile
7 import urllib.request
8 
9 bucket_name = "jedi-test-files"
10 
11 download_file_name = sys.argv[1]
12 testfiles_name = sys.argv[2]
13 testfiles_path = sys.argv[3]
14 download_base_url = sys.argv[4]
15 md5check = sys.argv[5]
16 
17 def DownloadUntar(download_base_url, download_file_name, testfiles_path, testfiles_name):
18  urllib.request.urlretrieve( download_base_url+"/"+download_file_name, testfiles_path+"/"+testfiles_name)
19  tar_file = tarfile.open(testfiles_path+"/"+testfiles_name)
20  tar_file.extractall(testfiles_path)
21  tar_file.close()
22 
23 if md5check == "1" :
24  # if .tar.gz and .tar.gz.md5 exist then download s3 md5 and compare with local md5
25  print ("checking md5sum")
26  if os.path.isfile(testfiles_path+"/"+testfiles_name) and os.path.isfile(testfiles_path+"/"+testfiles_name+".md5") :
27  print("local files found")
28 
29  # dl md5 save it as *.md5.dl
30  urllib.request.urlretrieve( download_base_url+"/"+download_file_name+".md5", testfiles_path+"/"+testfiles_name+".md5.dl")
31 
32  # compare *md5.dl with md5 local
33  with open(testfiles_path+"/"+testfiles_name+".md5", 'r') as f:
34  md5_local = f.read()
35  with open(testfiles_path+"/"+testfiles_name+".md5.dl", 'r') as f:
36  md5_dl = f.read()
37  if md5_local == md5_dl :
38  print("no update in dataset")
39  else:
40  print("update found; download new dataset")
41  DownloadUntar(download_base_url, download_file_name, testfiles_path, testfiles_name)
42  urllib.request.urlretrieve( download_base_url+"/"+download_file_name+".md5", testfiles_path+"/"+testfiles_name+".md5")
43  else:
44  print("local file not found; download from S3")
45  print("downloading "+ download_base_url+"/"+download_file_name)
46  DownloadUntar(download_base_url, download_file_name, testfiles_path, testfiles_name)
47  urllib.request.urlretrieve( download_base_url+"/"+download_file_name+".md5", testfiles_path+"/"+testfiles_name+".md5")
48 
49 else:
50  # downloading release data from DASH
51  if os.path.isfile(testfiles_path+"/"+testfiles_name):
52  print("local RELEASE file found")
53  else:
54  print ("dowloading RELEASE data from "+download_base_url+"/"+download_file_name)
55  DownloadUntar(download_base_url, download_file_name, testfiles_path, testfiles_name)
fv3jedi_testdata_downloader.DownloadUntar
def DownloadUntar(download_base_url, download_file_name, testfiles_path, testfiles_name)
Definition: fv3jedi_testdata_downloader.py:17