Browse Source

Fix cascade for brew and pnc types

Change endpoint in hack test script, these should be moved to unit tests
refactor_future_hack
Jonathan Christison 3 years ago
parent
commit
707e9d4fbb
  1. 4
      hack/pssaas-request-curl.sh
  2. 4
      src/main/java/com/redhat/pctsec/model/Scan.java
  3. 4
      src/main/java/com/redhat/pctsec/model/ScanRequest.java
  4. 5
      src/main/java/com/redhat/pctsec/model/ScanRequests.java
  5. 2
      src/main/java/com/redhat/pctsec/model/ScanTask.java
  6. 17
      src/main/java/com/redhat/pctsec/model/api/request/Component.java
  7. 34
      src/main/java/com/redhat/pctsec/model/api/request/build.java
  8. 27
      src/main/java/com/redhat/pctsec/model/api/request/git.java
  9. 2
      src/main/java/com/redhat/pctsec/model/api/request/pssaas.java
  10. 27
      src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanResource.java

4
hack/pssaas-request-curl.sh

@ -1,4 +1,4 @@
#!/bin/bash
curl -H 'Content-Type: application/json' -d '@sample-pssaas.json' localhost:8080/Scan/PSSaaS -vv
curl -H 'Content-Type: application/json' -d '@sample-pssaas-bad.json' localhost:8080/Scan/PSSaaS -vv
curl -H 'Content-Type: application/json' -d '@sample-pssaas.json' localhost:8080/api/v1a/Scan/PSSaaS -vv
curl -H 'Content-Type: application/json' -d '@sample-pssaas-bad.json' localhost:8080/api/v1a/Scan/PSSaaS -vv

4
src/main/java/com/redhat/pctsec/model/Scan.java

@ -1,6 +1,7 @@
package com.redhat.pctsec.model;
import jakarta.persistence.*;
import jakarta.transaction.Transactional;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotNull;
import org.hibernate.annotations.CreationTimestamp;
@ -59,6 +60,7 @@ public class Scan {
this.email = email;
}
public ScanRequests getScanRequests() {
return scanRequests;
}
@ -105,7 +107,7 @@ public class Scan {
@Email
private String email;
@OneToOne(cascade = CascadeType.ALL, fetch=FetchType.EAGER)
@OneToOne(cascade = CascadeType.ALL, fetch=FetchType.LAZY)
@JoinColumn(name = "scan_requests_id", referencedColumnName = "id")
public ScanRequests scanRequests;
}

4
src/main/java/com/redhat/pctsec/model/ScanRequest.java

@ -42,10 +42,10 @@ public class ScanRequest {
private RequestType type;
@OneToOne
@OneToOne(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "brew_build_id", referencedColumnName = "id")
public BrewBuild brewBuild;
@OneToOne
@OneToOne(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "pnc_build_id", referencedColumnName = "id")
public PNCBuild pncBuild;
@OneToOne(fetch=FetchType.EAGER, cascade = CascadeType.ALL)

5
src/main/java/com/redhat/pctsec/model/ScanRequests.java

@ -9,6 +9,7 @@ import java.util.*;
import java.util.stream.Collectors;
import jakarta.persistence.*;
import jakarta.transaction.Transactional;
@ApplicationScoped
@Entity
@ -39,7 +40,9 @@ public class ScanRequests {
public ScanRequests(pssaas pssaas){
this();
//Iterate scan payload and create scans
pssaas.componentList.stream().filter(c -> c.getType().equals("git")).forEach(g -> this.addGit(g.getRepo().toString(), g.getRef()));
pssaas.componentList.stream().filter(c -> c.getType().equals("brew")).forEach(g -> this.addBrewBuild(g.getBuildId()));
pssaas.componentList.stream().filter(c -> c.getType().equals("pnc")).forEach(g -> this.addPNCBuild(g.getBuildId()));
}
public ScanRequests(scanChain scanchain){

2
src/main/java/com/redhat/pctsec/model/ScanTask.java

@ -1,6 +1,7 @@
package com.redhat.pctsec.model;
import io.vertx.core.eventbus.impl.EventBusImpl;
import io.vertx.mutiny.core.eventbus.EventBus;
import jakarta.enterprise.context.Dependent;
import jakarta.inject.Inject;
@ -27,6 +28,7 @@ public class ScanTask {
this();
this.scanRequest = scanRequest;
this.bus = scanRequest.getBus();
//this.bus = new EventBus(new EventBusImpl());
}

17
src/main/java/com/redhat/pctsec/model/api/request/Component.java

@ -0,0 +1,17 @@
package com.redhat.pctsec.model.api.request;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import java.net.URI;
@JsonDeserialize(using = ComponentJsonDeserializer.class)
public interface Component {
public String getType();
public String getBuildId();
public URI getRepo();
public String getRef();
}

34
src/main/java/com/redhat/pctsec/model/api/request/build.java

@ -4,22 +4,46 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import jakarta.validation.constraints.NotNull;
import java.net.URI;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"type",
"build-id"
})
public class build {
@NotNull
@JsonProperty("type")
public class build implements Component {
public final String type;
@NotNull
@JsonProperty("build-id")
public final String buildId;
public build(@NotNull String type, @NotNull String buildId) {
this.type = type;
this.buildId = buildId;
}
@Override
@NotNull
@JsonProperty("type")
public String getType() {
return this.type;
}
@NotNull
@JsonProperty("build-id")
@Override
public String getBuildId() {
return this.buildId;
}
@Override
public URI getRepo() {
return URI.create("");
}
@Override
public String getRef() {
return "";
}
}

27
src/main/java/com/redhat/pctsec/model/api/request/git.java

@ -13,7 +13,7 @@ import java.net.URI;
"repo",
"ref"
})
public class git {
public class git implements Component{
@NotNull
@JsonProperty("type")
public final static String type = "git";
@ -25,4 +25,29 @@ public class git {
@NotNull
@JsonProperty("ref")
public String ref;
public git(@NotNull URI repo, @NotNull String ref) {
this.repo = repo;
this.ref = ref;
}
@Override
public String getType() {
return this.type;
}
@Override
public String getBuildId() {
return "";
}
@Override
public URI getRepo() {
return this.repo;
}
@Override
public String getRef() {
return this.ref;
}
}

2
src/main/java/com/redhat/pctsec/model/api/request/pssaas.java

@ -65,6 +65,6 @@ public class pssaas {
@Size(min = 1)
@Valid
@NotNull
public Set<Object> componentList;
public Set<Component> componentList;
}

27
src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanResource.java

@ -3,6 +3,7 @@ package com.redhat.pctsec.rest.v1alpha1;
import com.redhat.pctsec.model.*;
import com.redhat.pctsec.model.api.request.pssaas;
import com.redhat.pctsec.model.jpa.ScanRepository;
import io.quarkus.security.Authenticated;
import io.vertx.mutiny.core.eventbus.EventBus;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
@ -29,14 +30,26 @@ public class ScanResource {
@POST
@Path("PSSaaS")
@Consumes({ "application/json" })
public Integer createScans(@Valid pssaas scanRequest)
@Transactional
@Authenticated
public Scan createPSSAAS(@Valid pssaas scanRequest)
{
//Validate JSON
//CreateScanCollection
//Return ScanCollectionID
return 1;
ScanRequests scanRequests = new ScanRequests(scanRequest);
Scan s = new Scan();
s.setRequestor("cpaas");
s.setScanRequests(scanRequests);
sr.persist(s);
return s;
}
@POST
@Path("PSSaaS/run")
@Consumes({ "application/json" })
@Transactional
@Authenticated
public List<ScanTask> createRunPSSAAS(@Valid pssaas scanRequest)
{
Scan s = this.createPSSAAS(scanRequest);
return s.scanRequests.execute(bus);
}
@GET

Loading…
Cancel
Save