use of models.FlowDefinition in project dr-elephant by linkedin.
the class AutoTuningAPIHelper method addNewJobForTuning.
/**
* Add new job for tuning
* @param tuningInput Tuning input parameters
* @return Job
*/
private TuningJobDefinition addNewJobForTuning(TuningInput tuningInput) {
logger.info("Adding new job for tuning, job id: " + tuningInput.getJobDefId());
JobDefinition job = JobDefinition.find.select("*").where().eq(JobDefinition.TABLE.jobDefId, tuningInput.getJobDefId()).findUnique();
FlowDefinition flowDefinition = FlowDefinition.find.where().eq(FlowDefinition.TABLE.flowDefId, tuningInput.getFlowDefId()).findUnique();
if (flowDefinition == null) {
flowDefinition = new FlowDefinition();
flowDefinition.flowDefId = tuningInput.getFlowDefId();
flowDefinition.flowDefUrl = tuningInput.getFlowDefUrl();
flowDefinition.save();
}
if (job == null) {
job = new JobDefinition();
job.jobDefId = tuningInput.getJobDefId();
job.scheduler = tuningInput.getScheduler();
job.username = tuningInput.getUserName();
job.jobName = tuningInput.getJobName();
job.jobDefUrl = tuningInput.getJobDefUrl();
job.flowDefinition = flowDefinition;
job.save();
}
String flowExecId = tuningInput.getFlowExecId();
String jobExecId = tuningInput.getJobExecId();
String flowExecUrl = tuningInput.getFlowExecUrl();
String jobExecUrl = tuningInput.getJobExecUrl();
String client = tuningInput.getClient();
String defaultParams = tuningInput.getDefaultParams();
TuningJobDefinition tuningJobDefinition = new TuningJobDefinition();
tuningJobDefinition.job = job;
tuningJobDefinition.client = client;
tuningJobDefinition.tuningAlgorithm = tuningInput.getTuningAlgorithm();
tuningJobDefinition.tuningEnabled = 1;
tuningJobDefinition.allowedMaxExecutionTimePercent = tuningInput.getAllowedMaxExecutionTimePercent();
tuningJobDefinition.allowedMaxResourceUsagePercent = tuningInput.getAllowedMaxResourceUsagePercent();
tuningJobDefinition.save();
TuningJobExecution tuningJobExecution = insertDefaultJobExecution(job, flowExecId, jobExecId, flowExecUrl, jobExecUrl, flowDefinition, tuningInput.getTuningAlgorithm());
insertDefaultParameters(tuningJobExecution.jobExecution, defaultParams);
logger.info("Added job: " + tuningInput.getJobDefId() + " for tuning");
return tuningJobDefinition;
}
Aggregations