From a71996607ccb63b566db4521cf7aae1b4b8ab61e Mon Sep 17 00:00:00 2001 From: Nicholas Caughey Date: Fri, 16 Jun 2023 13:36:21 +0100 Subject: [PATCH] contians the files for testing createoing tekton tasks --- pom.xml | 5 + src/main/java/rest/TektonResourceClient.java | 20 ++++ src/main/java/rest/TektonTaskCreate.java | 82 +++++++++++++ src/main/java/rest/baseScan.yml | 16 +++ src/main/java/rest/callTekton.java | 116 +++++++++++++++++++ 5 files changed, 239 insertions(+) create mode 100644 src/main/java/rest/TektonResourceClient.java create mode 100644 src/main/java/rest/TektonTaskCreate.java create mode 100644 src/main/java/rest/baseScan.yml create mode 100644 src/main/java/rest/callTekton.java diff --git a/pom.xml b/pom.xml index a884d11..9b67a96 100644 --- a/pom.xml +++ b/pom.xml @@ -50,6 +50,11 @@ + + io.fabric8 + tekton-client + 6.7.2 + io.quarkus quarkus-openshift diff --git a/src/main/java/rest/TektonResourceClient.java b/src/main/java/rest/TektonResourceClient.java new file mode 100644 index 0000000..5db3239 --- /dev/null +++ b/src/main/java/rest/TektonResourceClient.java @@ -0,0 +1,20 @@ +// package rest; + +// import java.util.List; + +// import jakarta.enterprise.context.ApplicationScoped; +// import io.fabric8.tekton.client.TektonClient; +// import io.fabric8.tekton.pipeline.v1beta1.Pipeline; + + +// @ApplicationScoped +// public class TektonResourceClient { + +// // @Inject +// TektonClient tektonClient;l + +// public List listPipelines() { +// return tektonClient.v1beta1().pipelines().list().getItems(); +// } + +// } \ No newline at end of file diff --git a/src/main/java/rest/TektonTaskCreate.java b/src/main/java/rest/TektonTaskCreate.java new file mode 100644 index 0000000..eb2bca9 --- /dev/null +++ b/src/main/java/rest/TektonTaskCreate.java @@ -0,0 +1,82 @@ +// package io.rest; + +// import io.fabric8.tekton.client.DefaultTektonClient; +// import io.fabric8.tekton.client.TektonClient; + +// 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.ConnectDB; +// import dto.ScanObjPayload; + +// import static constants.HttpHeaders.AUTHORIZATION_STRING; +// import java.sql.Connection; +// import java.sql.DriverManager; +// import java.sql.SQLException; + + +// import io.fabric8.tekton.client.DefaultTektonClient; +// import io.fabric8.tekton.client.TektonClient; +// import io.fabric8.tekton.pipeline.v1beta1.ArrayOrString; +// import io.fabric8.tekton.pipeline.v1beta1.PipelineRunBuilder; +// import io.fabric8.tekton.triggers.v1alpha1.TriggerTemplateBuilder; + +// import java.util.Collections; + +// import java.sql.Connection; +// import java.sql.DriverManager; +// import java.sql.ResultSet; +// import java.sql.Statement; + +// @Path("/tektonCall") +// public class TektonTaskCreate { + +// private static final String NAMESPACE = "default"; + +// @RestClient + +// @POST +// @Consumes({ "application/json" }) + +// public void invokeTektonTask(@Valid String nvr) throws URISyntaxException { +// try (TektonClient tkn = new DefaultTektonClient()) { +// // Create Task +// String argCall = String.format("mock-build --config=rhel-r-x86_64 --brew-build %s",nvr); +// tkn.v1beta1().tasks().inNamespace(NAMESPACE).createOrReplace() +// .withNewMetadata().withName("tekton-osh-cli").endMetadata() +// .withNewSpec() +// .addNewStep() +// .withName("osh-config") +// .withImage("alpine:3.12") +// .withCommand("osh-cli") +// .withArgs(argCall) +// .endStep() +// .endSpec() +// .done(); + +// // Create TaskRun +// tkn.v1beta1().taskRuns().inNamespace(NAMESPACE).createOrReplace() +// .withNewMetadata().withName("tekton-osh-cli-task-run").endMetadata() +// .withNewSpec() +// .withNewTaskRef() +// .withName("tekton-osh-cli") +// .endTaskRef() +// .endSpec() +// .done(); +// } +// } +// } \ No newline at end of file diff --git a/src/main/java/rest/baseScan.yml b/src/main/java/rest/baseScan.yml new file mode 100644 index 0000000..0b8ef77 --- /dev/null +++ b/src/main/java/rest/baseScan.yml @@ -0,0 +1,16 @@ +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: basescan +spec: + params: + - name: buildId + type: string + - name: config + type: string + steps: + - name: baseScan + image: ubuntu + script: | + #!/bin/bash + osh-cli mock-build --config=params.config --brew-build params.buildId \ No newline at end of file diff --git a/src/main/java/rest/callTekton.java b/src/main/java/rest/callTekton.java new file mode 100644 index 0000000..f61378c --- /dev/null +++ b/src/main/java/rest/callTekton.java @@ -0,0 +1,116 @@ +package rest; + + +import io.fabric8.tekton.client.DefaultTektonClient; +import io.fabric8.tekton.client.TektonClient; + + +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 io.fabric8.tekton.client.DefaultTektonClient; +import io.fabric8.tekton.client.TektonClient; +import io.fabric8.tekton.pipeline.v1beta1.TaskBuilder; +import io.fabric8.tekton.pipeline.v1beta1.Task; + +public class callTekton { + + private static final String NAMESPACE = "default"; + + public static void main(String[] args) { + try (TektonClient tkn = new DefaultTektonClient()) { + // Load Task object from YAML + Task task = tkn.v1beta1() + .tasks() + .load(callTekton.class.getResourceAsStream("/baseScan.yml")).get(); + + // Create Task object into Kubernetes + tkn.v1beta1().tasks().inNamespace(NAMESPACE).createOrReplace(task); + + // Get Task object from APIServer + String taskName = task.getMetadata().getName(); + task = tkn.v1beta1().tasks().inNamespace(NAMESPACE) + .withName(taskName) + .get(); + + // Delete Task object + tkn.v1beta1().tasks().inNamespace(NAMESPACE).withName(taskName).delete(); + } + } +} \ No newline at end of file