Search in sources :

Example 11 with Occurrence

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

the class HighVulnerabilitiesForImage method findHighSeverityVulnerabilitiesForImage.

// Retrieve a list of vulnerability occurrences with a severity level of 'HIGH' or greater
public static List<Occurrence> findHighSeverityVulnerabilitiesForImage(String resourceUrl, String projectId) throws IOException {
    // String resourceUrl = "https://gcr.io/project/image@sha256:123";
    // String projectId = "my-project-id";
    final String projectName = ProjectName.format(projectId);
    String filterStr = String.format("kind=\"VULNERABILITY\" AND resourceUrl=\"%s\"", resourceUrl);
    // Initialize client that will be used to send requests. After completing all of your requests,
    // call the "close" method on the client to safely clean up any remaining background resources.
    GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
    LinkedList<Occurrence> vulnerabilitylist = new LinkedList<Occurrence>();
    for (Occurrence o : client.listOccurrences(projectName, filterStr).iterateAll()) {
        Severity severity = o.getVulnerability().getEffectiveSeverity();
        if (severity == Severity.HIGH || severity == Severity.CRITICAL) {
            vulnerabilitylist.add(o);
        }
    }
    return vulnerabilitylist;
}
Also used : GrafeasClient(io.grafeas.v1.GrafeasClient) Severity(io.grafeas.v1.Severity) Occurrence(io.grafeas.v1.Occurrence) LinkedList(java.util.LinkedList)

Example 12 with Occurrence

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

the class OccurrencesForNote method getOccurrencesForNote.

// Retrieves all the Occurrences associated with a specified Note
// Here, all Occurrences are printed and counted
public static int getOccurrencesForNote(String noteId, String projectId) throws IOException, InterruptedException {
    // String noteId = "my-note";
    // String projectId = "my-project-id";
    final NoteName noteName = NoteName.of(projectId, noteId);
    ListNoteOccurrencesRequest request = ListNoteOccurrencesRequest.newBuilder().setName(noteName.toString()).build();
    // Initialize client that will be used to send requests. After completing all of your requests,
    // call the "close" method on the client to safely clean up any remaining background resources.
    GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
    int i = 0;
    for (Occurrence o : client.listNoteOccurrences(request).iterateAll()) {
        // Write custom code to process each Occurrence here
        System.out.println(o.getName());
        i = i + 1;
    }
    return i;
}
Also used : GrafeasClient(io.grafeas.v1.GrafeasClient) NoteName(io.grafeas.v1.NoteName) Occurrence(io.grafeas.v1.Occurrence) ListNoteOccurrencesRequest(io.grafeas.v1.ListNoteOccurrencesRequest)

Example 13 with Occurrence

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

the class SamplesTest method testFindVulnerabilitiesForImage.

@Test
public void testFindVulnerabilitiesForImage() throws Exception {
    List<Occurrence> result = VulnerabilityOccurrencesForImage.findVulnerabilityOccurrencesForImage(imageUrl, PROJECT_ID);
    assertEquals(result.size(), 0);
    Occurrence o = CreateOccurrence.createOccurrence(imageUrl, noteId, PROJECT_ID, PROJECT_ID);
    int tries = 0;
    do {
        result = VulnerabilityOccurrencesForImage.findVulnerabilityOccurrencesForImage(imageUrl, PROJECT_ID);
        sleep(SLEEP_TIME);
        tries += 1;
    } while (result.size() != 1 && tries < TRY_LIMIT);
    assertEquals(result.size(), 1);
    // clean up
    String[] nameArr = o.getName().split("/");
    String occId = nameArr[nameArr.length - 1];
    DeleteOccurrence.deleteOccurrence(occId, PROJECT_ID);
}
Also used : Occurrence(io.grafeas.v1.Occurrence) VulnerabilityOccurrence(io.grafeas.v1.VulnerabilityOccurrence) DiscoveryOccurrence(io.grafeas.v1.DiscoveryOccurrence) Test(org.junit.Test)

Example 14 with Occurrence

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

the class SamplesTest method testCreateOccurrence.

@Test
public void testCreateOccurrence() throws Exception {
    Occurrence o = CreateOccurrence.createOccurrence(imageUrl, noteId, PROJECT_ID, PROJECT_ID);
    String[] nameArr = o.getName().split("/");
    String occId = nameArr[nameArr.length - 1];
    Occurrence retrieved = GetOccurrence.getOccurrence(occId, PROJECT_ID);
    assertEquals(o.getName(), retrieved.getName());
    // clean up
    DeleteOccurrence.deleteOccurrence(occId, PROJECT_ID);
}
Also used : Occurrence(io.grafeas.v1.Occurrence) VulnerabilityOccurrence(io.grafeas.v1.VulnerabilityOccurrence) DiscoveryOccurrence(io.grafeas.v1.DiscoveryOccurrence) Test(org.junit.Test)

Example 15 with Occurrence

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

the class GetOccurrence method getOccurrence.

// Retrieves and prints a specified Occurrence from the server
public static Occurrence getOccurrence(String occurrenceId, String projectId) throws IOException, InterruptedException {
    // String occurrenceId = "123-456-789";
    // String projectId = "my-project-id";
    final OccurrenceName occurrenceName = OccurrenceName.of(projectId, occurrenceId);
    // Initialize client that will be used to send requests. After completing all of your requests,
    // call the "close" method on the client to safely clean up any remaining background resources.
    GrafeasClient client = ContainerAnalysisClient.create().getGrafeasClient();
    Occurrence occ = client.getOccurrence(occurrenceName);
    System.out.println(occ);
    return occ;
}
Also used : GrafeasClient(io.grafeas.v1.GrafeasClient) OccurrenceName(io.grafeas.v1.OccurrenceName) Occurrence(io.grafeas.v1.Occurrence)

Aggregations

Test (org.junit.Test)24 Occurrence (io.grafeas.v1.Occurrence)17 Occurrence (com.google.containeranalysis.v1alpha1.Occurrence)10 GrafeasClient (io.grafeas.v1.GrafeasClient)10 VulnerabilityOccurrence (io.grafeas.v1.VulnerabilityOccurrence)10 DiscoveryOccurrence (io.grafeas.v1.DiscoveryOccurrence)9 Occurrence (io.grafeas.v1beta1.Occurrence)9 AbstractMessage (com.google.protobuf.AbstractMessage)6 ProjectName (com.google.containeranalysis.v1beta1.ProjectName)5 ContainerAnalysisClient (com.google.cloud.devtools.containeranalysis.v1alpha1.ContainerAnalysisClient)4 InvalidArgumentException (com.google.api.gax.rpc.InvalidArgumentException)3 OccurrenceName (com.google.containeranalysis.v1beta1.OccurrenceName)3 NoteName (io.grafeas.v1.NoteName)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 ProjectSubscriptionName (com.google.pubsub.v1.ProjectSubscriptionName)2