// package rest; import javax.inject.Inject; import javax.validation.Valid; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.UUID; import org.json.JSONObject; import org.json.JSONArray; import dto.ScanObj; import dto.BrewObj; import dto.ConnectDB; import dto.ScanObjPayload; import dto.BrewObjPayload; import dto.GitObj; import dto.GitObjPayload; import dto.PncObj; import dto.PncObjPayload; import static constants.HttpHeaders.AUTHORIZATION_STRING; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Set; import dto.ScanObj; import dto.ConnectDB; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import java.util.Set; import java.util.stream.Collectors; import javax.inject.Inject; import javax.ws.rs.Consumes; import java.sql.*; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; // import org.hibernate.EntityManager; import jakarta.persistence.EntityManager; import jakarta.persistence.Cacheable; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import jakarta.persistence.NamedQuery; import jakarta.persistence.QueryHint; import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; import org.eclipse.microprofile.rest.client.inject.RestClient; import dto.ScanObj; import javax.inject.Inject; import javax.validation.Valid; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.UUID; import org.json.JSONObject; import org.json.JSONArray; import dto.ScanObj; import dto.BrewObj; import dto.ConnectDB; import dto.ScanObjPayload; import dto.BrewObjPayload; import dto.GitObj; import dto.GitObjPayload; import dto.PncObj; import dto.PncObjPayload; import static constants.HttpHeaders.AUTHORIZATION_STRING; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import io.fabric8.tekton.client.DefaultTektonClient; import io.fabric8.tekton.client.TektonClient; import io.fabric8.tekton.pipeline.v1beta1.TaskBuilder; import io.fabric8.tekton.pipeline.v1beta1.TaskRunBuilder; import io.fabric8.tekton.pipeline.v1beta1.Task; @Path("/tekton") public class TektonTaskCreate { @RestClient private static final String NAMESPACE = "default"; @POST @Consumes({ "application/json" }) public void invokeTektonTask(String data) { JSONObject jsonData = new JSONObject(data); // ScanObj scanObj = ScanObjPayload.constructScanPayload(jsonData); //dont leave this in live needs to be adjusted (currently would cause a ton of issues) String tektonArgs = "osh-cli mock-build --config="+jsonData.get("config")+"--brew-build"+jsonData.get("nvr"); try (TektonClient tkn = new DefaultTektonClient()) { // Create Task tkn.v1beta1().tasks().inNamespace(NAMESPACE).resource(new TaskBuilder() .withNewMetadata().withName("tekton-osh-client").endMetadata() .withNewSpec() .addNewStep() .withName("osh-client") .withImage("alpine:3.12") .withCommand("osh-cli") .withArgs(tektonArgs) .endStep() .endSpec() .build()).createOrReplace(); // Create TaskRun tkn.v1beta1().taskRuns().inNamespace(NAMESPACE).resource(new TaskRunBuilder() .withNewMetadata().withName("tekton-osh-client-task-run").endMetadata() .withNewSpec() .withNewTaskRef() .withName("tekton-osh-client") .endTaskRef() .endSpec() .build()).createOrReplace(); } } }