def compress_file()

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