示例#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 DeletePackageTags(pkg_ref, pkg_args, request):
  """Deletes tags associate with the specified package."""
  if not pkg_args.delete_tags:
    return request
  client = _GetClientForResource(pkg_ref)
  messages = _GetMessagesForResource(pkg_ref)
  tag_list = ar_requests.ListTags(client, messages, pkg_ref.RelativeName())
  for tag in tag_list:
    ar_requests.DeleteTag(client, messages, tag.name)
  return request
示例#3
0
def DeleteVersionTags(ver_ref, ver_args, request):
    """Deletes tags associate with the specified version."""
    if not ver_args.delete_tags:
        return request
    client = _GetClientForResource(ver_ref)
    messages = _GetMessagesForResource(ver_ref)
    tag_list = ar_requests.ListTags(client, messages,
                                    ver_ref.Parent().RelativeName())
    for tag in tag_list:
        if tag.version != ver_ref.RelativeName():
            continue
        ar_requests.DeleteTag(client, messages, tag.name)
    return request