How to list artifacts stored under /var/lib/pulp for a given repository?

Solution Verified - Updated

Environment

  • Red Hat Satellite or Capsule 6.10+
  • Red Hat Update Infrastructure / CDS
  • Private Automation Hub

Issue

  • we need to list all artifact files under /var/lib/pulp stored for a given repository - it is useful e.g. for debugging purposes or basic overview of the repo downloaded content

Resolution

  • On the given pulp-3 server, create file print_artifacts_for_repo.py:
from pulp_rpm.app.models.repository import RpmDistribution
from pulpcore.app.models import PublishedArtifact
from django.db.models import F
from os import environ

rpmd = RpmDistribution.objects.get(base_path=environ['URI'])

print('-'*133)
print(f"{'artifact file'.ljust(94)}\t{'pulp_type'.ljust(20)}\trelative_path")
print('='*133)
for i in PublishedArtifact.objects.filter(publication=rpmd.publication, content_artifact__artifact__isnull=False) \
                                  .annotate(file=F('content_artifact__artifact__file'), type=F('content_artifact__content__pulp_type')) \
                                  .values('file', 'type', 'relative_path').order_by('type'):
  print(f"/var/lib/pulp/media/{i['file']}\t{i['type'].ljust(20)}\t{i['relative_path']}")

  • Run it for parametrized URI value denoting the URI relative path of the repository of interest. Example output follows:
$ cat print_artifacts_for_repo.py | sudo -u pulp URI='RedHat/Library/content/dist/rhel9/9/x86_64/baseos/os' \
PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' pulpcore-manager shell
-------------------------------------------------------------------------------------------------------------------------------------
artifact file                                                                                 	pulp_type           	relative_path
=====================================================================================================================================
/var/lib/pulp/media/artifact/eb/2d67800c4e64e6b2d00d1c4326da1519e34728bf9a94d4a456a9fa62309ef6	core.publishedmetadata	repodata/eb2d67800c4e64e6b2d00d1c4326da1519e34728bf9a94d4a456a9fa62309ef6-primary.xml.gz
/var/lib/pulp/media/artifact/6e/d9f89400ce340577d01f7dfd026d5d8ced8150b47a9a3fe3d0273c477965a6	core.publishedmetadata	repodata/repomd.xml
/var/lib/pulp/media/artifact/32/ef087e4b8e99383ee11c5f1b5aef1a93549ba79ac0bf5e91bd63c4027bf862	core.publishedmetadata	repodata/32ef087e4b8e99383ee11c5f1b5aef1a93549ba79ac0bf5e91bd63c4027bf862-filelists.sqlite.bz2
/var/lib/pulp/media/artifact/01/41bcce44ea4747898fb784da0b23ca59e74ecee2b7bc9a20169d86f0181980	core.publishedmetadata	repodata/0141bcce44ea4747898fb784da0b23ca59e74ecee2b7bc9a20169d86f0181980-other.sqlite.bz2
/var/lib/pulp/media/artifact/52/57a8d4d36c4b4ae74b90ac7440de20fa6138555116b1e198389669aaf1257b	core.publishedmetadata	repodata/5257a8d4d36c4b4ae74b90ac7440de20fa6138555116b1e198389669aaf1257b-other.xml.gz
/var/lib/pulp/media/artifact/b9/4c92671afe96cedcc2c1287627ef491012862dc00a3aec10e046145a44473d	core.publishedmetadata	repodata/8fd17e5c-9ec5-4a1f-bfd3-068972c88f1b
/var/lib/pulp/media/artifact/11/27ea786128d82eea211c28ae95947a7f267d5de0c4693e3161d29ec8b862fd	core.publishedmetadata	repodata/1127ea786128d82eea211c28ae95947a7f267d5de0c4693e3161d29ec8b862fd-filelists.xml.gz
/var/lib/pulp/media/artifact/b4/5f50851756a554bd9200b0fe043937a6ae7d2bba57f71ebdd2ed9e7e5406cd	core.publishedmetadata	repodata/b45f50851756a554bd9200b0fe043937a6ae7d2bba57f71ebdd2ed9e7e5406cd-comps.xml
/var/lib/pulp/media/artifact/48/93f66a6bf21bc87d348aef9975733a8828796cb5257047b4c3b1c3b171c3f0	core.publishedmetadata	repodata/4893f66a6bf21bc87d348aef9975733a8828796cb5257047b4c3b1c3b171c3f0-updateinfo.xml.gz
/var/lib/pulp/media/artifact/d3/c63c847ba1a6cb806b3d5fc4fc236c90071108ed198ec8657fd2a9f1b1e0ca	core.publishedmetadata	repodata/d3c63c847ba1a6cb806b3d5fc4fc236c90071108ed198ec8657fd2a9f1b1e0ca-primary.sqlite.bz2
/var/lib/pulp/media/artifact/0f/bbf101e39189364f717b2e0e87ef4b96597d44d4472384960a91e7fd6d02cb	rpm.package         	Packages/r/rpm-plugin-selinux-4.16.1.3-22.el9.x86_64.rpm
/var/lib/pulp/media/artifact/20/139ff1cb27e530e3646c156153f9f5ae0a674aab772ddde24153314b353cdf	rpm.package         	Packages/e/elfutils-0.187-5.el9.x86_64.rpm
/var/lib/pulp/media/artifact/da/93842881f376ccd9f6d8c684f68a131279ab1735652c9b41d6cfa3b9be4cb4	rpm.package         	Packages/r/rpm-libs-4.16.1.3-22.el9.x86_64.rpm
/var/lib/pulp/media/artifact/e1/0a5222bae30c0b24eda08127c597c88ddb1f846dcb75ea99eecd009d73828c	rpm.package         	Packages/r/rpm-sign-libs-4.16.1.3-22.el9.x86_64.rpm
/var/lib/pulp/media/artifact/64/e8ec9952972793c9d41ee437449531a475f2f3c91e92992d89ad07adb4aea7	rpm.package         	Packages/p/python3-rpm-4.16.1.3-22.el9.x86_64.rpm
/var/lib/pulp/media/artifact/59/ae5f56ad08c41dfa73182de11fe6881bbf0f9a6b6753be65d0364e7a36e724	rpm.package         	Packages/r/rpm-4.16.1.3-22.el9.x86_64.rpm
/var/lib/pulp/media/artifact/6c/54ef9e820fa1d330b643e905d62a35e34ed61fbc9b185b9175e5bc3472c89c	rpm.package         	Packages/r/rpm-build-libs-4.16.1.3-22.el9.x86_64.rpm
/var/lib/pulp/media/artifact/0c/b01a2d54af8ae508814d3f026f9aee2e4af866e9b2cbcdcd6110ae4296450b	rpm.package         	Packages/t/tzdata-2023b-1.el9.noarch.rpm
/var/lib/pulp/media/artifact/37/b83e3bfed94252ab4abba53771968a0ab82947b2605353f243df31acb7a272	rpm.package         	Packages/t/tzdata-2023c-1.el9.noarch.rpm
/var/lib/pulp/media/artifact/87/f192c56f6465bc893be1b914d514c8dc17652ab6ae0bbbd7af22a97cd3a7e5	rpm.package         	Packages/r/rpm-plugin-audit-4.16.1.3-22.el9.x86_64.rpm
$
  • each line contains existing /var/lib/pulp/media/artifact/ file that contains pulp content of given type and provides content of given relative path
  • if some content (e.g. a package) is missing, it has not yet been downloaded for the repository - just the downloaded ones are shown

For more KB articles/solutions related to Red Hat Satellite 6.x Pulp 3.0 Issues, please refer to the Consolidated Troubleshooting Article for Red Hat Satellite 6.x Pulp 3.0-related Issues

SBR
Components
Category

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.