in ambari-infra-solr-client/src/main/python/solrDataManager.py [0:0]
def compress_file(working_dir, tmp_file_path, file_name, compression):
data_file_name = "{0}.json".format(file_name)
if compression == "none":
upload_file_path = "{0}/{1}.json".format(working_dir, file_name)
os.rename(tmp_file_path, upload_file_path)
elif compression == "tar.gz":
upload_file_path = "{0}/{1}.json.tar.gz".format(working_dir, file_name)
tar = tarfile.open(upload_file_path, mode="w:gz")
try:
tar.add(tmp_file_path, arcname=data_file_name)
finally:
tar.close()
elif compression == "tar.bz2":
upload_file_path = "{0}/{1}.json.tar.bz2".format(working_dir, file_name)
tar = tarfile.open(upload_file_path, mode="w:bz2")
try:
tar.add(tmp_file_path, arcname=data_file_name)
finally:
tar.close()
elif compression == "zip":
upload_file_path = "{0}/{1}.json.zip".format(working_dir, file_name)
zip = ZipFile(upload_file_path, 'w')
zip.write(tmp_file_path, data_file_name, ZIP_DEFLATED)
elif compression == "gz":
upload_file_path = "{0}/{1}.json.gz".format(working_dir, file_name)
gz = gzip.open(upload_file_path, mode="wb")
f = open(tmp_file_path)
try:
shutil.copyfileobj(f, gz)
finally:
gz.close()
f.close()
else:
logger.warn("Unknown compression type")
sys.exit()
logger.info("Created data file %s", data_file_name)
return upload_file_path