# HG changeset patch # User Catherine Wise # Date 1390433763 -39600 # Node ID c659bd6342ae96db0fa33a477e621e33096f0462 # Parent 4c25b2ce827ebbb86144ae5cc83c313dccf0fb5a Fix deps. diff -r 4c25b2ce827e -r c659bd6342ae TrustStoreGalaxyImport.py --- a/TrustStoreGalaxyImport.py Thu Jan 23 10:21:58 2014 +1100 +++ b/TrustStoreGalaxyImport.py Thu Jan 23 10:36:03 2014 +1100 @@ -14,6 +14,40 @@ for child in elem.children: printNice(child, f, depth+1) +def ungzip(download, outputFile): + is_gzipped, is_valid = check_gzip(download) + + if is_gzipped and not is_valid: + print "File is compressed (gzip) but not valid." + sys.exit(4) + elif is_gzipped and is_valid: + # We need to uncompress the temp_name file, but BAM files must remain compressed in the BGZF format + CHUNK_SIZE = 2**20 # 1Mb + fd, uncompressed = tempfile.mkstemp(prefix='data_id_upload_gunzip_', dir=os.path.dirname(outputFile), text=False ) + gzipped_file = gzip.GzipFile(download, 'rb') + while 1: + try: + chunk = gzipped_file.read(CHUNK_SIZE) + except IOError: + os.close(fd) + os.remove(uncompressed) + print 'Problem decompressing gzipped data', dataset, json_file + sys.exit(4) + if not chunk: + break + os.write(fd, chunk) + os.close(fd) + gzipped_file.close() + + shutil.copy(uncompressed, outputFile) + try: + os.remove(uncompressed) + os.remove(download) + except OSError: + pass + else: + shutil.copy(download, outputFile) + if __name__ == '__main__': kms_url = sys.argv[1] @@ -29,6 +63,9 @@ if len(sys.argv) > 10: filename = sys.argv[9] outputFile = sys.argv[10] + outputFileId = sys.argv[11] + outputFileType = sys.argv[12] + otherFilesDir = sys.argv[13] else: outputFile = sys.argv[9] @@ -55,44 +92,23 @@ else: location = root if filename and filename != "": - downloadMe = ts_utils.ts_utils.recurseToChildNamed(location, filename) - if downloadMe: - download = ts.getFile(store, downloadMe) - is_gzipped, is_valid = check_gzip(download) - - if is_gzipped and not is_valid: - print "File is compressed (gzip) but not valid." + outputFileList = [outputFile] + inputFileList = None + if "," in filename: # we have multiple files guys. + inputFileList = filename.split(",") + for inputFile in inputFileList: + outName = "%s_%s_%s_%s_%s" % ('primary', outputFileId, inputFile.replace(".","-"), 'visible', outputFileType) + outputFileList.append(os.path.join(otherFilesDir, outName)) + else: + inputFileList = [filename] + for inFile, outFile in zip(inputFileList, outputFileList): + downloadMe = ts_utils.ts_utils.recurseToChildNamed(location, inFile) + if downloadMe: + download = ts.getFile(store, downloadMe) + ungzip(download, outFile) + else: + print "File %s not found" % inFile sys.exit(4) - elif is_gzipped and is_valid: - # We need to uncompress the temp_name file, but BAM files must remain compressed in the BGZF format - CHUNK_SIZE = 2**20 # 1Mb - fd, uncompressed = tempfile.mkstemp(prefix='data_id_upload_gunzip_', dir=os.path.dirname(outputFile), text=False ) - gzipped_file = gzip.GzipFile(download, 'rb') - while 1: - try: - chunk = gzipped_file.read(CHUNK_SIZE) - except IOError: - os.close(fd) - os.remove(uncompressed) - print 'Problem decompressing gzipped data', dataset, json_file - sys.exit(4) - if not chunk: - break - os.write(fd, chunk) - os.close(fd) - gzipped_file.close() - - shutil.copy(uncompressed, outputFile) - try: - os.remove(uncompressed) - os.remove(download) - except OSError: - pass - else: - shutil.copy(download, outputFile) - else: - print "File not found" - sys.exit(4) else: with open(outputFile, 'w+') as f: try: diff -r 4c25b2ce827e -r c659bd6342ae TrustStoreGalaxyImport.xml --- a/TrustStoreGalaxyImport.xml Thu Jan 23 10:21:58 2014 +1100 +++ b/TrustStoreGalaxyImport.xml Thu Jan 23 10:36:03 2014 +1100 @@ -1,4 +1,4 @@ - + secure cloud storage. @@ -6,7 +6,7 @@ - TrustStoreGalaxyImport.py https://tstest-kms.it.csiro.au/kmscolab_3_0 https://tstest-ims.it.csiro.au/ims_3_0/services/IMS $username $password desktop cpU92F1PT7VOCANjSknuCDp4DrubmujoBaF6b0miz8OpKNokEbGMHCaSFK5/lISbBmaaGVCgeADI2A39F3Hkeg== $storename $path $filename $output + TrustStoreGalaxyImport.py https://tstest-kms.it.csiro.au/kmscolab_3_0 https://tstest-ims.it.csiro.au/ims_3_0/services/IMS $username $password desktop cpU92F1PT7VOCANjSknuCDp4DrubmujoBaF6b0miz8OpKNokEbGMHCaSFK5/lISbBmaaGVCgeADI2A39F3Hkeg== $storename $path $filename $output1 $output1.id $file_type $__new_file_path__ - + @@ -113,7 +113,7 @@ - py_ts + py_ts py_ts openssl