use of org.apache.syncope.core.persistence.api.dao.NotFoundException in project syncope by apache.
the class ReportLogic method execute.
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_EXECUTE + "')")
@Override
public ExecTO execute(final String key, final Date startAt, final boolean dryRun) {
Report report = reportDAO.find(key);
if (report == null) {
throw new NotFoundException("Report " + key);
}
if (!report.isActive()) {
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Scheduling);
sce.getElements().add("Report " + key + " is not active");
throw sce;
}
try {
jobManager.register(report, startAt, confDAO.find("tasks.interruptMaxRetries", 1L));
scheduler.getScheduler().triggerJob(JobNamer.getJobKey(report));
} catch (Exception e) {
LOG.error("While executing report {}", report, e);
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Scheduling);
sce.getElements().add(e.getMessage());
throw sce;
}
ExecTO result = new ExecTO();
result.setJobType(JobType.REPORT);
result.setRefKey(report.getKey());
result.setRefDesc(binder.buildRefDesc(report));
result.setStart(new Date());
result.setStatus(ReportExecStatus.STARTED.name());
result.setMessage("Job fired; waiting for results...");
return result;
}
use of org.apache.syncope.core.persistence.api.dao.NotFoundException in project syncope by apache.
the class ReportLogic method update.
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_UPDATE + "')")
public ReportTO update(final ReportTO reportTO) {
Report report = reportDAO.find(reportTO.getKey());
if (report == null) {
throw new NotFoundException("Report " + reportTO.getKey());
}
binder.getReport(report, reportTO);
report = reportDAO.save(report);
try {
jobManager.register(report, null, confDAO.find("tasks.interruptMaxRetries", 1L));
} catch (Exception e) {
LOG.error("While registering quartz job for report " + report.getKey(), e);
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Scheduling);
sce.getElements().add(e.getMessage());
throw sce;
}
return binder.getReportTO(report);
}
use of org.apache.syncope.core.persistence.api.dao.NotFoundException in project syncope by apache.
the class ReportLogic method delete.
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_DELETE + "')")
public ReportTO delete(final String key) {
Report report = reportDAO.find(key);
if (report == null) {
throw new NotFoundException("Report " + key);
}
ReportTO deletedReport = binder.getReportTO(report);
jobManager.unregister(report);
reportDAO.delete(report);
return deletedReport;
}
use of org.apache.syncope.core.persistence.api.dao.NotFoundException in project syncope by apache.
the class ReportLogic method listExecutions.
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_READ + "')")
@Override
public Pair<Integer, List<ExecTO>> listExecutions(final String key, final int page, final int size, final List<OrderByClause> orderByClauses) {
Report report = reportDAO.find(key);
if (report == null) {
throw new NotFoundException("Report " + key);
}
Integer count = reportExecDAO.count(key);
List<ExecTO> result = reportExecDAO.findAll(report, page, size, orderByClauses).stream().map(reportExec -> binder.getExecTO(reportExec)).collect(Collectors.toList());
return Pair.of(count, result);
}
use of org.apache.syncope.core.persistence.api.dao.NotFoundException in project syncope by apache.
the class ReportLogic method getJob.
@PreAuthorize("hasRole('" + StandardEntitlement.REPORT_READ + "')")
@Override
public JobTO getJob(final String key) {
Report report = reportDAO.find(key);
if (report == null) {
throw new NotFoundException("Report " + key);
}
JobTO jobTO = null;
try {
jobTO = getJobTO(JobNamer.getJobKey(report));
} catch (SchedulerException e) {
LOG.error("Problems while retrieving scheduled job {}", JobNamer.getJobKey(report), e);
SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Scheduling);
sce.getElements().add(e.getMessage());
throw sce;
}
if (jobTO == null) {
throw new NotFoundException("Job for report " + key);
}
return jobTO;
}
Aggregations