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
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
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