X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fakraino%2Fvalidation%2Fui%2Fservice%2FJenkinsJobNotificationService.java;h=c292b79a1825815eda6b1cc7f7dee0fd49b69f62;hb=147ecf7bf79ea9967a121d0038103151a38ebef2;hp=0a50ad8180ed0cd0e785b0aec110a4b23c410bb4;hpb=c5ad3fa5dcff60eb9108ed303806ff28b31a9c09;p=validation.git diff --git a/ui/src/main/java/org/akraino/validation/ui/service/JenkinsJobNotificationService.java b/ui/src/main/java/org/akraino/validation/ui/service/JenkinsJobNotificationService.java index 0a50ad8..c292b79 100644 --- a/ui/src/main/java/org/akraino/validation/ui/service/JenkinsJobNotificationService.java +++ b/ui/src/main/java/org/akraino/validation/ui/service/JenkinsJobNotificationService.java @@ -15,11 +15,19 @@ */ package org.akraino.validation.ui.service; +import java.util.ArrayList; +import java.util.List; + +import org.akraino.validation.ui.dao.ValidationTestResultDAO; import org.akraino.validation.ui.data.JnksJobNotify; import org.akraino.validation.ui.data.SubmissionStatus; +import org.akraino.validation.ui.entity.LabInfo; import org.akraino.validation.ui.entity.Submission; +import org.akraino.validation.ui.entity.ValidationDbTestResult; import org.akraino.validation.ui.service.utils.SubmissionHelper; -import org.apache.log4j.Logger; +import org.apache.commons.httpclient.HttpException; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.web.support.UserUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,30 +36,64 @@ import org.springframework.transaction.annotation.Transactional; @Transactional public class JenkinsJobNotificationService { + private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(JenkinsJobNotificationService.class); + @Autowired private SubmissionHelper submissionHelper; @Autowired - private SubmissionService submissionService; + private DbSubmissionAdapter submissionService; + + @Autowired + private DbResultAdapter dbAdapter; - private static final Logger LOGGER = Logger.getLogger(JenkinsJobNotificationService.class); + @Autowired + private IntegratedResultService iService; - public void handle(JnksJobNotify jnksJobNotify) { - String jenkinsJobName = System.getenv("jenkins_job_name"); + @Autowired + private LabService labService; + + @Autowired + private ValidationTestResultDAO vTestResultDAO; + + public void handle(JnksJobNotify jnksJobNotify) throws Exception { + String jenkinsJobName = System.getenv("JENKINS_JOB_NAME"); if (!jenkinsJobName.equals(jnksJobNotify.getName())) { return; } Submission submission = submissionService.getSubmission(Integer.toString(jnksJobNotify.getSubmissionId())); if (submission == null) { - LOGGER.debug("No related submission was found."); + LOGGER.debug(EELFLoggerDelegate.debugLogger, "No related submission was found"); return; } - submission.setNexusResultUrl(System.getenv("nexus_results_url") + "/" - + submission.getBlueprintInstance().getTimeslot().getLab().name().toLowerCase() + "-blu-val" - + "/job/validation/" + String.valueOf(jnksJobNotify.getbuildNumber())); - LOGGER.info("Updating submission with id: " + submission.getSubmissionId()); + LabInfo labInfo = labService.getLab(submission.getTimeslot().getLabInfo().getLab()); + if (labInfo == null) { + throw new IllegalArgumentException( + "Could not retrieve lab : " + submission.getTimeslot().getLabInfo().getLab().toString()); + } + LOGGER.info(EELFLoggerDelegate.applicationLogger, + "Updating submission with id: " + submission.getSubmissionId()); submission.setSubmissionStatus(SubmissionStatus.Completed); submissionHelper.saveSubmission(submission); + ValidationDbTestResult vDbResult = vTestResultDAO.getValidationTestResult(submission); + try { + if (vDbResult != null) { + // Fetch submission result from nexus + ValidationDbTestResult vNexusResult = iService.getResult( + vDbResult.getBlueprintInstance().getBlueprint().getBlueprintName(), + vDbResult.getBlueprintInstance().getVersion(), vDbResult.getLab().getLab(), + jnksJobNotify.getTimestamp()); + if (vNexusResult != null) { + List vNexusResults = new ArrayList(); + vNexusResults.add(vNexusResult); + dbAdapter.storeResultsInDb(vNexusResults); + } + } + } catch (HttpException ex) { + LOGGER.error(EELFLoggerDelegate.errorLogger, + "Error when retrieving Nexus results. " + UserUtils.getStackTrace(ex)); + } + dbAdapter.updateTimestamp(jnksJobNotify); } }