X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=validation.git;a=blobdiff_plain;f=ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fakraino%2Fvalidation%2Fui%2Fservice%2FSubmissionService.java;fp=ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fakraino%2Fvalidation%2Fui%2Fservice%2FSubmissionService.java;h=0000000000000000000000000000000000000000;hp=ccf4087282c2f50636ef2fa9718c1ab7fdb3ab1e;hb=2eba847ebb6acb2686be08eb1cdafc1b12071e7d;hpb=f86b9715d156238532fcb0bf464bd72e9cf7ce96 diff --git a/ui/src/main/java/org/akraino/validation/ui/service/SubmissionService.java b/ui/src/main/java/org/akraino/validation/ui/service/SubmissionService.java deleted file mode 100644 index ccf4087..0000000 --- a/ui/src/main/java/org/akraino/validation/ui/service/SubmissionService.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. You may obtain - * a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -package org.akraino.validation.ui.service; - -import java.net.DatagramSocket; -import java.net.InetAddress; -import java.net.MalformedURLException; -import java.net.SocketException; -import java.net.UnknownHostException; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; -import java.util.concurrent.CompletableFuture; - -import org.akraino.validation.ui.client.jenkins.JenkinsExecutorClient; -import org.akraino.validation.ui.client.jenkins.resources.Parameter; -import org.akraino.validation.ui.client.jenkins.resources.Parameters; -import org.akraino.validation.ui.conf.UiUtils; -import org.akraino.validation.ui.dao.SubmissionDAO; -import org.akraino.validation.ui.data.SubmissionStatus; -import org.akraino.validation.ui.entity.Submission; -import org.akraino.validation.ui.service.utils.PrioritySupplier; -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; - -import com.sun.jersey.api.client.ClientHandlerException; -import com.sun.jersey.api.client.UniformInterfaceException; - -@Service -@Transactional -public class SubmissionService { - - private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(SubmissionService.class); - - @Autowired - private SubmissionDAO submissionDAO; - - @Autowired - private SubmissionHelper submissionHelper; - - public Submission saveSubmission(Submission submission) { - submission.setSubmissionStatus(SubmissionStatus.Submitted); - submissionDAO.saveOrUpdate(submission); - - JenkinsTriggerSubmissionJob task = new JenkinsTriggerSubmissionJob(submission); - CompletableFuture completableFuture = - CompletableFuture.supplyAsync(new PrioritySupplier<>(1, task::execute), UiUtils.executorService); - completableFuture.thenAcceptAsync(result -> this.callbackNotify(result)); - - return submission; - } - - public List getSubmissions() { - return submissionDAO.getSubmissions(); - } - - public Submission getSubmission(String submissionId) { - return submissionDAO.getSubmission(Integer.valueOf(submissionId)); - } - - public void deleteSubmission(Integer submissionId) { - submissionDAO.deleteSubmission(submissionId); - } - - public void deleteAll() { - submissionDAO.deleteAll(); - } - - private void callbackNotify(Submission submission) { - if (submission == null) { - return; - } - submission.setSubmissionStatus(SubmissionStatus.Running); - submissionHelper.saveSubmission(submission); - } - - private class JenkinsTriggerSubmissionJob { - - private Submission submission; - - public JenkinsTriggerSubmissionJob(Submission submission) { - this.submission = submission; - } - - public Submission execute() { - String url = System.getenv("JENKINS_URL"); - String userName = System.getenv("JENKINS_USERNAME"); - String userPassword = System.getenv("JENKINS_USER_PASSWORD"); - String jobName = System.getenv("JENKINS_JOB_NAME"); - List listOfParameters = new ArrayList(); - Parameters parameters = new Parameters(); - Parameter parameter = new Parameter(); - parameter.setName("SUBMISSION_ID"); - parameter.setValue(String.valueOf(submission.getSubmissionId())); - listOfParameters.add(parameter); - parameter = new Parameter(); - parameter.setName("BLUEPRINT"); - parameter.setValue( - submission.getBlueprintInstanceForValidation().getBlueprint().getBlueprintName().toLowerCase()); - listOfParameters.add(parameter); - parameter = new Parameter(); - parameter.setName("LAYER"); - parameter.setValue(submission.getBlueprintInstanceForValidation().getLayer().name().toLowerCase()); - listOfParameters.add(parameter); - parameter = new Parameter(); - parameter.setName("VERSION"); - parameter.setValue(submission.getBlueprintInstanceForValidation().getVersion().toLowerCase()); - listOfParameters.add(parameter); - parameter = new Parameter(); - parameter.setName("UI_IP"); - Random random = new Random(); - String localIP = null; - try (final DatagramSocket socket = new DatagramSocket()) { - socket.connect(InetAddress.getByName(random.nextInt(256) + "." + random.nextInt(256) + "." - + random.nextInt(256) + "." + random.nextInt(256)), 10002); - localIP = socket.getLocalAddress().getHostAddress(); - parameter.setValue(localIP); - listOfParameters.add(parameter); - parameters.setParameter(listOfParameters); - JenkinsExecutorClient client; - client = JenkinsExecutorClient.getInstance(userName, userPassword, url); - submission.setJnksQueueJobItemUrl(client.postJobWithQueryParams(jobName, parameters).toString()); - return submission; - } catch (SocketException | UnknownHostException | KeyManagementException | HttpException - | ClientHandlerException | UniformInterfaceException | MalformedURLException - | NoSuchAlgorithmException e) { - LOGGER.error(EELFLoggerDelegate.errorLogger, - "Error when triggering Jenkins job. " + UserUtils.getStackTrace(e)); - return null; - } - } - } - -}