private JSONObject convertThawInfoToJSON(BucketThawer bucketThawer) {
   return JsonUtils.writeKeyValueAsJson(
       JsonObjectNames.BUCKET_COLLECTION,
       bucketThawer.getThawedBuckets(),
       JsonObjectNames.FAILED_BUCKET_COLLECTION,
       bucketThawer.getFailedBuckets());
 }
  /**
   * Thaws a range of buckets in either a specific index or all indexes on the archiving fs.
   *
   * @param index Any index that exists in both the archiving filesystem and splunk. Defaults to all
   *     indexes in the archiving fs.
   * @param from Start date of thawing interval (on the form yyyy-MM-dd). Defaults to 0001-01-01.
   * @param to End date of thawing interval (on the form yyyy-MM-dd). Defaults to 9999-12-31.
   * @return
   */
  @POST
  @Produces(MediaType.APPLICATION_JSON)
  public String thawBuckets(
      @FormParam("index") String index, @FormParam("from") String from, @FormParam("to") String to)
      throws JSONException {

    logger.info(
        happened(
            "Received REST request to thaw buckets",
            "endpoint",
            ENDPOINT_BUCKET_THAW,
            "index",
            index,
            "from",
            from,
            "to",
            to));

    if (from == null) {
      logger.info("No from time provided - defaulting to 0001-01-01");
      from = "0001-01-01";
    }
    if (to == null) {
      logger.info("No to time provided - defaulting to 9999-12-31");
      to = "9999-12-31";
    }

    Date fromDate = StringDateConverter.convert(from);
    Date toDate = StringDateConverter.convert(to);
    if (fromDate == null || toDate == null) {
      logger.error(happened("Invalid time interval provided."));
      throw new IllegalArgumentException(
          "From and to date must be provided on the form yyyy-DD-mm");
    }

    logMetricsAtEndpoint(ENDPOINT_BUCKET_THAW);
    // thaw
    BucketThawer bucketThawer = BucketThawerFactory.createDefaultThawer();
    bucketThawer.thawBuckets(index, fromDate, toDate);

    JSONObject json = convertThawInfoToJSON(bucketThawer);
    List<JSONObject> jsons =
        RequestOnSearchPeers.createPost(ENDPOINT_BUCKET_THAW, index, from, to).execute().jsons;
    jsons.add(json);

    return JsonUtils.mergeJsonsWithKeys(
            jsons, JsonObjectNames.BUCKET_COLLECTION, JsonObjectNames.FAILED_BUCKET_COLLECTION)
        .toString();
  }