use of com.mercedesbenz.sechub.domain.scan.report.ScanReport in project sechub by mercedes-benz.
the class FalsePositiveJobDataService method addJobDataListToConfiguration.
private void addJobDataListToConfiguration(FalsePositiveProjectConfiguration config, FalsePositiveJobDataList jobDataList) {
List<FalsePositiveJobData> list = jobDataList.getJobData();
/* we want to load reports only one time, so sort by report job UUID... */
list.sort(Comparator.comparing(FalsePositiveJobData::getJobUUID));
ScanSecHubReport report = null;
for (FalsePositiveJobData data : list) {
UUID jobUUID = data.getJobUUID();
if (report == null || !jobUUID.equals(report.getJobUUID())) {
ScanReport scanReport = scanReportRepository.findBySecHubJobUUID(jobUUID);
if (scanReport == null) {
throw new NotFoundException("No report found for job " + jobUUID);
}
report = new ScanSecHubReport(scanReport);
}
merger.addJobDataWithMetaDataToConfig(report, config, data, userContextService.getUserId());
}
}
use of com.mercedesbenz.sechub.domain.scan.report.ScanReport in project sechub by mercedes-benz.
the class ScanService method startScan.
@IsSendingSyncMessageAnswer(value = MessageID.SCAN_DONE, answeringTo = MessageID.START_SCAN, branchName = "success")
@IsSendingSyncMessageAnswer(value = MessageID.SCAN_FAILED, answeringTo = MessageID.START_SCAN, branchName = "failure")
@IsSendingSyncMessageAnswer(value = MessageID.SCAN_ABANDONDED, answeringTo = MessageID.START_SCAN, branchName = "failure")
DomainMessageSynchronousResult startScan(DomainMessage request) {
SecHubExecutionContext context = null;
try {
context = createExecutionContext(request);
executeScan(context, request);
ScanReport report = reportService.createReport(context);
DomainMessageSynchronousResult response = new DomainMessageSynchronousResult(MessageID.SCAN_DONE);
response.set(REPORT_TRAFFIC_LIGHT, report.getTrafficLightAsString());
return response;
} catch (ScanReportException e) {
LOG.error("Execution was possible, but report failed." + traceLogID(request), e);
return new DomainMessageSynchronousResult(MessageID.SCAN_FAILED, e);
} catch (SecHubExecutionAbandonedException e) {
LOG.info("Execution abandoned on scan {} - message: {}", traceLogID(request), e.getMessage());
return new DomainMessageSynchronousResult(MessageID.SCAN_ABANDONDED, e);
} catch (SecHubExecutionException e) {
LOG.error("Execution problems on scan." + traceLogID(request), e);
return new DomainMessageSynchronousResult(MessageID.SCAN_FAILED, e);
} catch (Exception e) {
LOG.error("Was not able to start scan." + traceLogID(request), e);
return new DomainMessageSynchronousResult(MessageID.SCAN_FAILED, e);
} finally {
if (context == null) {
LOG.warn("No sechub execution context available, so cannot check state or cleanup storage");
} else {
if (!context.isAbandonded()) {
cleanupStorage(context);
}
}
}
}
Aggregations