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=c2482b29b131183e6a483536e794706e9a331de8;hpb=2879b2ee5e1e2815e5f43cb802352bf2878397af;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 c2482b2..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,14 +15,19 @@ */ package org.akraino.validation.ui.service; -import org.akraino.validation.ui.conf.UiUtils; -import org.akraino.validation.ui.data.BlueprintLayer; +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.LabSilo; +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.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; @@ -37,10 +42,19 @@ public class JenkinsJobNotificationService { private SubmissionHelper submissionHelper; @Autowired - private SubmissionService submissionService; + private DbSubmissionAdapter submissionService; + + @Autowired + private DbResultAdapter dbAdapter; + + @Autowired + private IntegratedResultService iService; + + @Autowired + private LabService labService; @Autowired - private SiloService siloService; + private ValidationTestResultDAO vTestResultDAO; public void handle(JnksJobNotify jnksJobNotify) throws Exception { String jenkinsJobName = System.getenv("JENKINS_JOB_NAME"); @@ -52,27 +66,34 @@ public class JenkinsJobNotificationService { LOGGER.debug(EELFLoggerDelegate.debugLogger, "No related submission was found"); return; } - String siloText = null; - for (LabSilo silo : siloService.getSilos()) { - if (silo.getLab().getLab().equals(submission.getTimeslot().getLab().getLab())) { - siloText = silo.getSilo(); - } - } - if (siloText == null) { - throw new Exception("Could not retrieve silo of the selected lab : " - + submission.getTimeslot().getLab().getLab().toString()); - } - - String nexusUrl = UiUtils.NEXUS_URL + "/" + siloText + "/job/" + System.getenv("JENKINS_JOB_NAME") + "/" - + String.valueOf(jnksJobNotify.getbuildNumber() + "/results"); - if (!submission.getBlueprintInstanceForValidation().getLayer().equals(BlueprintLayer.All)) { - nexusUrl = nexusUrl + "/" + submission.getBlueprintInstanceForValidation().getLayer().name().toLowerCase(); + LabInfo labInfo = labService.getLab(submission.getTimeslot().getLabInfo().getLab()); + if (labInfo == null) { + throw new IllegalArgumentException( + "Could not retrieve lab : " + submission.getTimeslot().getLabInfo().getLab().toString()); } - submission.setNexusResultUrl(nexusUrl); 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); } }