@Override public Iterator<JobRef> iterator(String requestPath, String appname, List<ExecutionPhase> phases, Date after, Integer last) throws JobPersistenceException, TransientException { JobPersistence jobPersistence = getJobPersistence(requestPath); return jobPersistence.iterator(appname, phases, after, last); }
@Override protected JobPersistence getJobPersistence(String requestPath) { JobPersistence ret = super.getJobPersistence(requestPath); if (ret == null) { ret = jobPersistenceMap.get(requestPath); if (ret == null) { ret = createJobPersistence(requestPath); jobPersistenceMap.put(requestPath, ret); } } return ret; }
@Override public Iterator<JobRef> iterator(String requestPath, String appname) throws JobPersistenceException, TransientException { JobPersistence jobPersistence = getJobPersistence(requestPath); return jobPersistence.iterator(appname); }
@Override public Iterator<JobRef> iterator(String requestPath, String appname, List<ExecutionPhase> phases) throws JobPersistenceException, TransientException { JobPersistence jobPersistence = getJobPersistence(requestPath); return jobPersistence.iterator(appname, phases); }
@Override public Job get(String requestPath, String jobID) throws JobNotFoundException, JobPersistenceException, TransientException { JobPersistence jobPersistence = getJobPersistence(requestPath); Job job = jobPersistence.get(jobID); doAuthorizationCheck(job); jobPersistence.getDetails(job); return job; }
@Override public void delete(String requestPath, String jobID) throws JobNotFoundException, JobPersistenceException, TransientException { JobPersistence jobPersistence = getJobPersistence(requestPath); Job job = jobPersistence.get(jobID); doAuthorizationCheck(job); jobPersistence.delete(jobID); }
@Override public void execute(String requestPath, String jobID) throws JobNotFoundException, JobPersistenceException, JobPhaseException, TransientException { JobPersistence jobPersistence = getJobPersistence(requestPath); Job job = jobPersistence.get(jobID); doAuthorizationCheck(job); execute(requestPath, job); }
@Override public void execute(String requestPath, String jobID, SyncOutput output) throws JobNotFoundException, JobPersistenceException, JobPhaseException, TransientException { JobPersistence jobPersistence = getJobPersistence(requestPath); Job job = jobPersistence.get(jobID); doAuthorizationCheck(job); jobPersistence.getDetails(job); execute(requestPath, job, output); }
@Override public void abort(String requestPath, String jobID) throws JobNotFoundException, JobPersistenceException, JobPhaseException, TransientException { JobPersistence jobPersistence = getJobPersistence(requestPath); Job job = jobPersistence.get(jobID); doAuthorizationCheck(job); JobExecutor jobExecutor = getJobExecutor(requestPath); jobExecutor.abort(job); }
@Override public void update(String requestPath, String jobID, List<Parameter> params) throws JobNotFoundException, JobPersistenceException, JobPhaseException, TransientException { log.debug("update: " + jobID + "," + toString(params)); if (params == null || params.size() == 0) { return; } JobPersistence jobPersistence = getJobPersistence(requestPath); Job job = jobPersistence.get(jobID); doAuthorizationCheck(job); if (!ExecutionPhase.PENDING.equals(job.getExecutionPhase())) { throw new JobPhaseException("cannot update job control details when phase=" + job.getExecutionPhase()); } jobPersistence.addParameters(jobID, params); }
@Override public Job create(String requestPath, Job job) throws JobPersistenceException, TransientException { // set defaults job.setExecutionPhase(ExecutionPhase.PENDING); JobPersistenceUtil.constrainDestruction(job, 1, maxDestruction); JobPersistenceUtil.constrainDuration(job, 1, maxExecDuration); JobPersistenceUtil.constrainQuote(job, 1, maxQuote); JobPersistence jobPersistence = getJobPersistence(requestPath); return jobPersistence.put(job); }
@Override public void update(String requestPath, String jobID, Date destruction, Long duration, Date quote) throws JobNotFoundException, JobPersistenceException, JobPhaseException, TransientException { log.debug("update: " + jobID + "," + destruction + "," + duration + "," + quote); JobPersistence jobPersistence = getJobPersistence(requestPath); Job job = jobPersistence.get(jobID); doAuthorizationCheck(job); if (!ExecutionPhase.PENDING.equals(job.getExecutionPhase())) { throw new JobPhaseException("cannot update job control details when phase=" + job.getExecutionPhase()); } if (destruction != null) { job.setDestructionTime(destruction); } if (duration != null) { job.setExecutionDuration(duration); } if (quote != null) { job.setQuote(quote); } JobPersistenceUtil.constrainDestruction(job, 1, maxDestruction); JobPersistenceUtil.constrainDuration(job, 1, maxExecDuration); JobPersistenceUtil.constrainQuote(job, 1, maxQuote); jobPersistence.put(job); }