예제 #1
0
def ListDockerTags(args):
    """Lists Docker tags."""
    resource = _ParseDockerImagePath(args.IMAGE_PATH)

    client = ar_requests.GetClient()
    messages = ar_requests.GetMessages()
    img_list = []
    if isinstance(resource, DockerRepo):
        log.status.Print(
            "Listing items under project {}, location {}, repository {}.\n".
            format(resource.project, resource.location, resource.repo))
        for pkg in ar_requests.ListPackages(client, messages,
                                            resource.GetRepositoryName()):
            img_list.append(DockerImage(resource, pkg.name.split("/")[-1]))
    elif isinstance(resource, DockerImage):
        log.status.Print(
            "Listing items under project {}, location {}, repository {}.\n".
            format(resource.docker_repo.project, resource.docker_repo.location,
                   resource.docker_repo.repo))
        img_list.append(resource)

    tag_list = []
    for img in img_list:
        for tag in ar_requests.ListTags(client, messages,
                                        img.GetPackageName()):
            tag_list.append({
                "tag": tag.name,
                "image": img.GetDockerString(),
                "version": tag.version,
            })
    return tag_list
예제 #2
0
def _GetDockerPackagesAndVersions(docker_repo, include_tags, is_nested=False):
    """Gets a list of packages with versions for a Docker repository."""
    client = ar_requests.GetClient()
    messages = ar_requests.GetMessages()
    img_list = []
    for pkg in ar_requests.ListPackages(client, messages,
                                        docker_repo.GetRepositoryName()):
        parts = pkg.name.split("/")
        if len(parts) != 8:
            raise ar_exceptions.ArtifactRegistryError(
                "Internal error. Corrupted package name: {}".format(pkg.name))
        img = DockerImage(DockerRepo(parts[1], parts[3], parts[5]), parts[7])
        img_list.extend(_GetDockerVersions(img, include_tags, is_nested))
    return img_list