[UI] Support UI partial control
[validation.git] / ui / src / main / java / org / akraino / validation / ui / service / SubmissionService.java
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 (file)
index ccf4087..0000000
+++ /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<Submission> completableFuture =
-                CompletableFuture.supplyAsync(new PrioritySupplier<>(1, task::execute), UiUtils.executorService);
-        completableFuture.thenAcceptAsync(result -> this.callbackNotify(result));
-
-        return submission;
-    }
-
-    public List<Submission> 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<Parameter> listOfParameters = new ArrayList<Parameter>();
-            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;
-            }
-        }
-    }
-
-}