Beispiel #1
0
def FetchSummary(repository, resource_url):
    """Fetches the summary of vulnerability occurrences for some resource.

  Args:
    repository: A parsed docker_name.Repository object.
    resource_url: The URL identifying the resource.

  Returns:
    A GetVulnzOccurrencesSummaryResponse.
  """
    project_id = RecoverProjectId(repository)
    url_filter = 'resource_url = "{resource_url}"'.format(
        resource_url=resource_url)
    return requests.GetVulnerabilitySummary(project_id, url_filter)
Beispiel #2
0
def GetContainerAnalysisMetadata(docker_version, args):
    """Retrieves metadata for a docker image."""
    metadata = ContainerAnalysisMetadata()
    docker_str = docker_version.GetDockerString()
    occ_filter = _CreateFilterFromImagesDescribeArgs(docker_str, args)
    if occ_filter is None:
        return metadata
    occurrences = ca_requests.ListOccurrences(docker_version.project,
                                              occ_filter)
    for occ in occurrences:
        metadata.AddOccurrence(occ)

    if metadata.vulnerability.vulnerabilities:
        vuln_summary = ca_requests.GetVulnerabilitySummary(
            docker_version.project,
            filter_util.ContainerAnalysisFilter().WithResources(
                [docker_str]).GetFilter())
        metadata.vulnerability.AddSummary(vuln_summary)
    return metadata
Beispiel #3
0
def GetContainerAnalysisMetadata(docker_version, args):
    """Retrieves metadata for a docker image."""
    metadata = ContainerAnalysisMetadata()
    docker_url = 'https://{}'.format(docker_version.GetDockerString())
    occ_filter = _CreateFilterFromImagesDescribeArgs(docker_url, args)
    if occ_filter is None:
        return metadata
    occurrences = ca_requests.ListOccurrences(docker_version.project,
                                              occ_filter)
    include_build = args.show_build_details or args.show_all_metadata
    for occ in occurrences:
        metadata.AddOccurrence(occ, include_build)

    if metadata.vulnerability.vulnerabilities:
        vuln_summary = ca_requests.GetVulnerabilitySummary(
            docker_version.project,
            filter_util.ContainerAnalysisFilter().WithResources(
                [docker_url]).GetFilter())
        metadata.vulnerability.AddSummary(vuln_summary)
    return metadata