UI adaptation for supporting ONAP portal SDK
[validation.git] / ui / src / main / java / org / akraino / validation / ui / service / JenkinsJobNotificationService.java
index 0a50ad8..c2482b2 100644 (file)
  */
 package org.akraino.validation.ui.service;
 
+import org.akraino.validation.ui.conf.UiUtils;
+import org.akraino.validation.ui.data.BlueprintLayer;
 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.Submission;
 import org.akraino.validation.ui.service.utils.SubmissionHelper;
-import org.apache.log4j.Logger;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -28,28 +31,46 @@ 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 static final Logger LOGGER = Logger.getLogger(JenkinsJobNotificationService.class);
+    @Autowired
+    private SiloService siloService;
 
-    public void handle(JnksJobNotify jnksJobNotify) {
-        String jenkinsJobName = System.getenv("jenkins_job_name");
+    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());
+        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();
+        }
+        submission.setNexusResultUrl(nexusUrl);
+        LOGGER.info(EELFLoggerDelegate.applicationLogger,
+                "Updating submission with id: " + submission.getSubmissionId());
         submission.setSubmissionStatus(SubmissionStatus.Completed);
         submissionHelper.saveSubmission(submission);
     }