Search in sources :

Example 16 with Occurrence

use of io.grafeas.v1beta1.Occurrence in project java-docs-samples by GoogleCloudPlatform.

the class VulnerabilityFunction method accept.

@Override
public void accept(PubSubMessage payload, Context context) {
    String json = new String(Base64.getDecoder().decode(payload.getData()), StandardCharsets.UTF_8);
    OccurrenceNotification notification = gson.fromJson(json, OccurrenceNotification.class);
    // Retrieve the occurrence detials from the notification
    // https://cloud.google.com/container-registry/docs/reference/rest/v1/projects.occurrences#Occurrence
    Occurrence occurrence = grafeasClient.getOccurrence(notification.getName());
    // If the occurence is a vulnerability, output the log line base on severity
    if (NoteKind.VULNERABILITY.equals(occurrence.getKind())) {
        VulnerabilityOccurrence vulnerability = occurrence.getVulnerability();
        if (vulnerability.getSeverity().getNumber() >= Severity.HIGH_VALUE) {
            logger.warning(String.format("Image: %s, CVE: %s, Severity: %s", occurrence.getResourceUri(), vulnerability.getShortDescription(), vulnerability.getSeverity()));
        }
    }
}
Also used : VulnerabilityOccurrence(io.grafeas.v1.VulnerabilityOccurrence) Occurrence(io.grafeas.v1.Occurrence) VulnerabilityOccurrence(io.grafeas.v1.VulnerabilityOccurrence)

Example 17 with Occurrence

use of io.grafeas.v1beta1.Occurrence in project java-containeranalysis by googleapis.

the class GrafeasV1Beta1ClientTest method createOccurrenceExceptionTest.

@Test
@SuppressWarnings("all")
public void createOccurrenceExceptionTest() throws Exception {
    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
    mockGrafeasV1Beta1.addException(exception);
    try {
        ProjectName parent = ProjectName.of("[PROJECT]");
        Occurrence occurrence = Occurrence.newBuilder().build();
        client.createOccurrence(parent, occurrence);
        Assert.fail("No exception raised");
    } catch (InvalidArgumentException e) {
    // Expected exception
    }
}
Also used : InvalidArgumentException(com.google.api.gax.rpc.InvalidArgumentException) ProjectName(com.google.containeranalysis.v1beta1.ProjectName) StatusRuntimeException(io.grpc.StatusRuntimeException) Occurrence(io.grafeas.v1beta1.Occurrence) Test(org.junit.Test)

Example 18 with Occurrence

use of io.grafeas.v1beta1.Occurrence in project java-containeranalysis by googleapis.

the class GrafeasV1Beta1ClientTest method getOccurrenceTest.

@Test
@SuppressWarnings("all")
public void getOccurrenceTest() {
    String name2 = "name2-1052831874";
    String noteName = "noteName1780787896";
    String remediation = "remediation779381797";
    Occurrence expectedResponse = Occurrence.newBuilder().setName(name2).setNoteName(noteName).setRemediation(remediation).build();
    mockGrafeasV1Beta1.addResponse(expectedResponse);
    OccurrenceName name = OccurrenceName.of("[PROJECT]", "[OCCURRENCE]");
    Occurrence actualResponse = client.getOccurrence(name);
    Assert.assertEquals(expectedResponse, actualResponse);
    List<AbstractMessage> actualRequests = mockGrafeasV1Beta1.getRequests();
    Assert.assertEquals(1, actualRequests.size());
    GetOccurrenceRequest actualRequest = (GetOccurrenceRequest) actualRequests.get(0);
    Assert.assertEquals(name, OccurrenceName.parse(actualRequest.getName()));
    Assert.assertTrue(channelProvider.isHeaderSent(ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
}
Also used : AbstractMessage(com.google.protobuf.AbstractMessage) OccurrenceName(com.google.containeranalysis.v1beta1.OccurrenceName) GetOccurrenceRequest(io.grafeas.v1beta1.GetOccurrenceRequest) Occurrence(io.grafeas.v1beta1.Occurrence) Test(org.junit.Test)

Example 19 with Occurrence

use of io.grafeas.v1beta1.Occurrence in project java-containeranalysis by googleapis.

the class GrafeasV1Beta1ClientTest method batchCreateOccurrencesExceptionTest.

@Test
@SuppressWarnings("all")
public void batchCreateOccurrencesExceptionTest() throws Exception {
    StatusRuntimeException exception = new StatusRuntimeException(Status.INVALID_ARGUMENT);
    mockGrafeasV1Beta1.addException(exception);
    try {
        ProjectName parent = ProjectName.of("[PROJECT]");
        List<Occurrence> occurrences = new ArrayList<>();
        client.batchCreateOccurrences(parent, occurrences);
        Assert.fail("No exception raised");
    } catch (InvalidArgumentException e) {
    // Expected exception
    }
}
Also used : InvalidArgumentException(com.google.api.gax.rpc.InvalidArgumentException) ProjectName(com.google.containeranalysis.v1beta1.ProjectName) StatusRuntimeException(io.grpc.StatusRuntimeException) ArrayList(java.util.ArrayList) Occurrence(io.grafeas.v1beta1.Occurrence) Test(org.junit.Test)

Example 20 with Occurrence

use of io.grafeas.v1beta1.Occurrence in project java-containeranalysis by googleapis.

the class GrafeasV1Beta1ClientTest method listOccurrencesTest.

@Test
@SuppressWarnings("all")
public void listOccurrencesTest() {
    String nextPageToken = "";
    Occurrence occurrencesElement = Occurrence.newBuilder().build();
    List<Occurrence> occurrences = Arrays.asList(occurrencesElement);
    ListOccurrencesResponse expectedResponse = ListOccurrencesResponse.newBuilder().setNextPageToken(nextPageToken).addAllOccurrences(occurrences).build();
    mockGrafeasV1Beta1.addResponse(expectedResponse);
    ProjectName parent = ProjectName.of("[PROJECT]");
    String filter = "filter-1274492040";
    ListOccurrencesPagedResponse pagedListResponse = client.listOccurrences(parent, filter);
    List<Occurrence> resources = Lists.newArrayList(pagedListResponse.iterateAll());
    Assert.assertEquals(1, resources.size());
    Assert.assertEquals(expectedResponse.getOccurrencesList().get(0), resources.get(0));
    List<AbstractMessage> actualRequests = mockGrafeasV1Beta1.getRequests();
    Assert.assertEquals(1, actualRequests.size());
    ListOccurrencesRequest actualRequest = (ListOccurrencesRequest) actualRequests.get(0);
    Assert.assertEquals(parent, ProjectName.parse(actualRequest.getParent()));
    Assert.assertEquals(filter, actualRequest.getFilter());
    Assert.assertTrue(channelProvider.isHeaderSent(ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
}
Also used : ListOccurrencesRequest(io.grafeas.v1beta1.ListOccurrencesRequest) AbstractMessage(com.google.protobuf.AbstractMessage) ProjectName(com.google.containeranalysis.v1beta1.ProjectName) ListOccurrencesResponse(io.grafeas.v1beta1.ListOccurrencesResponse) Occurrence(io.grafeas.v1beta1.Occurrence) ListOccurrencesPagedResponse(com.google.cloud.devtools.containeranalysis.v1beta1.GrafeasV1Beta1Client.ListOccurrencesPagedResponse) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)25 Occurrence (io.grafeas.v1.Occurrence)17 Occurrence (com.google.containeranalysis.v1alpha1.Occurrence)10 VulnerabilityOccurrence (io.grafeas.v1.VulnerabilityOccurrence)10 DiscoveryOccurrence (io.grafeas.v1.DiscoveryOccurrence)9 GrafeasClient (io.grafeas.v1.GrafeasClient)9 Occurrence (io.grafeas.v1beta1.Occurrence)9 AbstractMessage (com.google.protobuf.AbstractMessage)8 OccurrenceName (com.google.containeranalysis.v1beta1.OccurrenceName)5 ProjectName (com.google.containeranalysis.v1beta1.ProjectName)5 ContainerAnalysisClient (com.google.cloud.devtools.containeranalysis.v1alpha1.ContainerAnalysisClient)4 InvalidArgumentException (com.google.api.gax.rpc.InvalidArgumentException)3 NoteName (io.grafeas.v1.NoteName)3 DeleteOccurrenceRequest (io.grafeas.v1beta1.DeleteOccurrenceRequest)3 StatusRuntimeException (io.grpc.StatusRuntimeException)3 ListOccurrencesPagedResponse (com.google.cloud.devtools.containeranalysis.v1alpha1.PagedResponseWrappers.ListOccurrencesPagedResponse)2 Subscriber (com.google.cloud.pubsub.v1.Subscriber)2 ListOccurrencesRequest (com.google.containeranalysis.v1alpha1.ListOccurrencesRequest)2 VulnerabilityDetails (com.google.containeranalysis.v1alpha1.VulnerabilityType.VulnerabilityDetails)2 FieldMask (com.google.protobuf.FieldMask)2