public Map<String, Double> getCurrentRunParameters(TuningInput tuningInput) throws Exception {
    logger.info("Parameter set request received from execution: " + tuningInput.getJobExecId());

    if (tuningInput.getAllowedMaxExecutionTimePercent() == null
        || tuningInput.getAllowedMaxResourceUsagePercent() == null) {
      setMaxAllowedMetricIncreasePercentage(tuningInput);
    }
    setTuningAlgorithm(tuningInput);

    JobSuggestedParamSet jobSuggestedParamSet;
    JobExecution jobExecution = getJobExecution(tuningInput);

    if (tuningInput.getRetry()) {
      applyPenalty(tuningInput.getJobExecId());
      jobSuggestedParamSet = getBestParamSet(tuningInput.getJobDefId());
    } else {
      logger.debug("Finding parameter suggestion for job: " + jobExecution.job.jobName);
      jobSuggestedParamSet = getNewSuggestedParamSet(jobExecution.job);
      markParameterSetSent(jobSuggestedParamSet);
    }

    addNewTuningJobExecutionParamSet(jobSuggestedParamSet, jobExecution);

    List<JobSuggestedParamValue> jobSuggestedParamValues = getParamSetValues(jobSuggestedParamSet.id);
    logger.debug("Number of output parameters for execution " + tuningInput.getJobExecId() + " = "
        + jobSuggestedParamValues.size());
    logger.info("Finishing getCurrentRunParameters");
    return jobSuggestedParamValueListToMap(jobSuggestedParamValues);
  }
Handles the api request and returns param suggestions as response
@param tuningInput Rest api parameters
@return Parameter Suggestion
app/com/linkedin/drelephant/tuning/AutoTuningAPIHelper.java