CSIT Trending: Input files
[csit.git] / resources / tools / presentation / input_data_files.py
index 1923dad..6abb325 100644 (file)
@@ -23,13 +23,12 @@ from os import rename, remove
 from os.path import join, getsize
 from shutil import move
 from zipfile import ZipFile, is_zipfile, BadZipfile
-
 from httplib import responses
 from requests import get, codes, RequestException, Timeout, TooManyRedirects, \
     HTTPError, ConnectionError
 
 from errors import PresentationError
-
+from utils import execute_command
 
 # Chunk size used for file download
 CHUNK_SIZE = 512
@@ -81,6 +80,14 @@ def download_data_files(spec):
             try:
                 response = get(url, stream=True)
                 code = response.status_code
+
+                # temporary workaround, remove when output.log.xml is not needed
+                if code != codes["OK"] and \
+                        spec.input["file-name"].endswith(".gz"):
+                    url = '.'.join(url.split('.')[:-1]) + ".log.gz"
+                    response = get(url, stream=True)
+                    code = response.status_code
+
                 if code != codes["OK"]:
                     logging.warning(
                         "Jenkins: {0}: {1}.".format(code, responses[code]))
@@ -144,9 +151,7 @@ def download_data_files(spec):
 
                 elif spec.input["file-name"].endswith(".gz"):
                     rename(new_name, new_name[:-3])
-                    with open(new_name[:-3], 'r') as xml_file:
-                        with gzip.open(new_name, 'wb') as gz_file:
-                            gz_file.write(xml_file.read())
+                    execute_command("gzip --keep {0}".format(new_name[:-3]))
                     new_name = new_name[:-3]
                     status = "downloaded"
                     logging.info("{0}: {1}".format(code, responses[code]))

©2016 FD.io a Linux Foundation Collaborative Project. All Rights Reserved.
Linux Foundation is a registered trademark of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.
Please see our privacy policy and terms of use.