<div dir="auto">Sure, No hurry and thank you again for sparing some time on this.<div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">-- Sayan</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 31, 2022, 9:31 PM Grant Gainey <<a href="mailto:ggainey@redhat.com">ggainey@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr">On Mon, Jan 31, 2022 at 9:09 AM Sayan Das <<a href="mailto:saydas@redhat.com" target="_blank" rel="noreferrer">saydas@redhat.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Grant,<div><br></div><div>I was trying your Django method but it fails in Satellite 6.10.2 .</div></div></blockquote><div><br></div><div>Oh...drat. This is what comes of answering emails w/out enough caffeine. orphan-cleanup being asynchronous, and therefore that call, isn't available for 6.10, it's in 3.15 and beyond (and so slated for Sat7). See <a href="https://docs.pulpproject.org/pulpcore/changes.html#id140" target="_blank" rel="noreferrer">https://docs.pulpproject.org/pulpcore/changes.html#id140</a> </div><div><br></div><div>Give me a little, I'll see what we can do in the 3.14 timeframe.<br></div><div><br></div><div>Sorry about that,</div><div>G</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div># sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' pulpcore-manager shell << EOF<br>from pulpcore.app.models.content import Content<br>minutes_since_touched = 1<br>print(Content.objects.orphaned(minutes_since_touched).all())<br>EOF<br><br>Traceback (most recent call last):<br>  File "/bin/pulpcore-manager", line 11, in <module><br>    load_entry_point('pulpcore==3.14.9', 'console_scripts', 'pulpcore-manager')()<br>  File "/usr/lib/python3.6/site-packages/pulpcore/app/manage.py", line 11, in manage<br>    execute_from_command_line(sys.argv)<br>  File "/usr/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line<br>    utility.execute()<br>  File "/usr/lib/python3.6/site-packages/django/core/management/__init__.py", line 375, in execute<br>    self.fetch_command(subcommand).run_from_argv(self.argv)<br>  File "/usr/lib/python3.6/site-packages/django/core/management/base.py", line 323, in run_from_argv<br>    self.execute(*args, **cmd_options)<br>  File "/usr/lib/python3.6/site-packages/django/core/management/base.py", line 364, in execute<br>    output = self.handle(*args, **options)<br>  File "/usr/lib/python3.6/site-packages/django/core/management/commands/shell.py", line 92, in handle<br>    exec(sys.stdin.read())<br>  File "<string>", line 3, in <module><br>AttributeError: 'ContentManagerFromBulkTouchQuerySet' object has no attribute 'orphaned'</div><div><br></div><div>I definitely don't see <b>orphaned </b>inside <b>Content.objects</b></div><div><br></div><div>>>> print(Content.objects.<br>Content.objects.aggregate(            Content.objects.datetimes(            Content.objects.from_queryset(        Content.objects.prefetch_related(<br>Content.objects.all(                  Content.objects.db                    Content.objects.get(                  Content.objects.raw(<br>Content.objects.annotate(             Content.objects.db_manager(           Content.objects.get_or_create(        Content.objects.reverse(<br>Content.objects.auto_created          Content.objects.deconstruct(          Content.objects.get_queryset(         Content.objects.select_for_update(<br>Content.objects.bulk_create(          Content.objects.defer(                Content.objects.in_bulk(              Content.objects.select_related(<br>Content.objects.bulk_get_or_create(   Content.objects.difference(           Content.objects.intersection(         Content.objects.touch(<br>Content.objects.bulk_update(          Content.objects.distinct(             Content.objects.iterator(             Content.objects.union(<br>Content.objects.check(                Content.objects.earliest(             Content.objects.last(                 Content.objects.update(<br>Content.objects.complex_filter(       Content.objects.exclude(              Content.objects.latest(               Content.objects.update_or_create(<br>Content.objects.contribute_to_class(  Content.objects.exists(               Content.objects.model(                Content.objects.use_in_migrations<br>Content.objects.count(                Content.objects.explain(              <a href="http://Content.objects.name" target="_blank" rel="noreferrer">Content.objects.name</a>                  Content.objects.using(<br>Content.objects.create(               Content.objects.extra(                Content.objects.none(                 Content.objects.values(<br>Content.objects.creation_counter      Content.objects.filter(               Content.objects.only(                 Content.objects.values_list(<br>Content.objects.dates(                Content.objects.first(                Content.objects.order_by(             <br></div><div><br></div><div><br></div><div>My pulpcore version is 3.14.9. So Do I need to be on a higher version ?</div><div><br></div><div><br clear="all"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><div dir="ltr">Thanks & Regards,</div><div dir="ltr"><br clear="all"><div><div dir="ltr"><div dir="ltr"><p style="font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>Sayan das<br></span></p><p style="font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span></span></p>
<p style="font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><b>S</b>enior<b> T</b>echnical <b>S</b>upport <b>E</b>ngineer<span style="font-weight:normal;color:rgb(170,170,170);margin:0px">, RHCE</span><span style="font-weight:normal;color:rgb(170,170,170);margin:0px"></span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px" target="_blank" rel="noreferrer">Red Hat <span>India<br></span></a></p><span style="font-family:overpass,sans-serif;font-size:10px;margin:0px;color:rgb(153,153,153)"><p style="margin:0px">Red Hat India Pvt. Ltd, Level-5, Tower-10, Cyber City</p></span><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"></span><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"><p style="font-size:10px;margin:0px;color:rgb(153,153,153)">Magarpatta City Hadapsar, Pune-411013, Maharashtra, India.</p></span><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"></span><p style="margin:0px 0px 6px"><span style="color:rgb(153,153,153);font-family:overpass,sans-serif;font-size:10px;margin:0px;padding:0px"><a href="mailto:saydas@redhat.com" style="color:rgb(0,136,206);margin:0px" target="_blank" rel="noreferrer">saydas@redhat.com</a>   </span><font face="overpass, sans-serif" color="#999999"><span style="font-size:10px"> </span></font><span style="color:rgb(153,153,153);font-family:overpass,sans-serif;font-size:10px">M: <a href="tel:+91-7890892756" style="color:rgb(0,136,206);font-size:11px;margin:0px" target="_blank" rel="noreferrer">+91-7890892756</a>    </span><font face="overpass, sans-serif" color="#999999"><span style="font-size:10px"> </span></font><span style="color:rgb(153,153,153);font-family:overpass,sans-serif;font-size:10px">IRC: Sayan</span></p><table style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium" border="0"><tbody><tr><td width="100px"><a href="https://red.ht/sig" target="_blank" rel="noreferrer"><img src="https://static.redhat.com/libs/redhat/brand-assets/latest/corp/logo.png" style="color:rgb(17,85,204)" width="96" height="22"></a><br></td></tr></tbody></table></div></div></div></div></div></div></div></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 31, 2022 at 7:19 PM Sayan Das <<a href="mailto:saydas@redhat.com" target="_blank" rel="noreferrer">saydas@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello Grant,<div><br></div><div>Thanks for your quick response. I guess, mostly what would matter is the Type of Orphaned Content and the count of the same for each type.</div><div><br></div><div>Pulp2 API and pulp-admin used to provide this nice summary and then for individual content types, There were endpoints available as well to see what are those contents.</div><div><br></div><div>+----------------------------------------------------------------------+<br>                                Summary<br>+----------------------------------------------------------------------+<br><br>Distribution:            0<br>Docker Blob:             0<br>Docker Image:            0<br>Docker Manifest:         0<br>Docker Manifest List:    0<br>Docker Tag:              0<br>Drpm:                    0<br>Erratum:                 105<br>Iso:                     0<br>Modulemd:                2<br>Modulemd Defaults:       0<br>Ostree:                  0<br>Package Category:        0<br>Package Environment:     0<br>Package Group:           0<br>Package Langpacks:       0<br>Puppet Module:           0<br>Rpm:                     700<br>Srpm:                    0<br>Yum Repo Metadata File:  0<br>Total:                   807<br></div><div><br></div><div><br></div><div>So, I guess, It makes sense to have something similar in Pulp3 as well. </div><div><br></div><div>I will try out the method you have mentioned and see what else can be done with it. </div><div><br clear="all"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><div dir="ltr">Thanks & Regards,</div><div dir="ltr"><br clear="all"><div><div dir="ltr"><div dir="ltr"><p style="font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>Sayan das<br></span></p><p style="font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span></span></p>
<p style="font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><b>S</b>enior<b> T</b>echnical <b>S</b>upport <b>E</b>ngineer<span style="font-weight:normal;color:rgb(170,170,170);margin:0px">, RHCE</span><span style="font-weight:normal;color:rgb(170,170,170);margin:0px"></span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px" target="_blank" rel="noreferrer">Red Hat <span>India<br></span></a></p><span style="font-family:overpass,sans-serif;font-size:10px;margin:0px;color:rgb(153,153,153)"><p style="margin:0px">Red Hat India Pvt. Ltd, Level-5, Tower-10, Cyber City</p></span><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"></span><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"><p style="font-size:10px;margin:0px;color:rgb(153,153,153)">Magarpatta City Hadapsar, Pune-411013, Maharashtra, India.</p></span><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"></span><p style="margin:0px 0px 6px"><span style="color:rgb(153,153,153);font-family:overpass,sans-serif;font-size:10px;margin:0px;padding:0px"><a href="mailto:saydas@redhat.com" style="color:rgb(0,136,206);margin:0px" target="_blank" rel="noreferrer">saydas@redhat.com</a>   </span><font face="overpass, sans-serif" color="#999999"><span style="font-size:10px"> </span></font><span style="color:rgb(153,153,153);font-family:overpass,sans-serif;font-size:10px">M: <a href="tel:+91-7890892756" style="color:rgb(0,136,206);font-size:11px;margin:0px" target="_blank" rel="noreferrer">+91-7890892756</a>    </span><font face="overpass, sans-serif" color="#999999"><span style="font-size:10px"> </span></font><span style="color:rgb(153,153,153);font-family:overpass,sans-serif;font-size:10px">IRC: Sayan</span></p><table style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium" border="0"><tbody><tr><td width="100px"><a href="https://red.ht/sig" target="_blank" rel="noreferrer"><img src="https://static.redhat.com/libs/redhat/brand-assets/latest/corp/logo.png" style="color:rgb(17,85,204)" width="96" height="22"></a><br></td></tr></tbody></table></div></div></div></div></div></div></div></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 31, 2022 at 5:59 PM Grant Gainey <<a href="mailto:ggainey@redhat.com" target="_blank" rel="noreferrer">ggainey@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hey Sayan,<div><br></div><div>The following dumps all the Content-objects that are orphaned (ie, "not assigned to a repository and not touched in the last "minutes_since_touched" minutes). Needs some expansion, but that depends on what you want to get out of it. Artifact checksums? Content "name" (whatever that means)? UUIDs?<br><div><font size="1" face="monospace"><br></font></div><div><font size="1" face="monospace">$ pulpcore-manager shell</font></div><div><font size="1" face="monospace">from pulpcore.app.models.content import Content<br></font></div><div><font size="1" face="monospace">minutes_since_touched = 1</font></div><font size="1" face="monospace">print(Content.objects.orphaned(minutes_since_touched).all())</font><br></div><div><font face="monospace" size="1"><BulkTouchQuerySet [<Content (pulp_type=rpm.packagelangpacks): pk=2aee273b-3c1d-493a-9849-5ea717076795>, <Content (pulp_type=rpm.distribution_tree): pk=7aa4d756-fb5b-4630-bfe6-9e9c4f7461ee>, <Content (pulp_type=rpm.packagegroup): shark>, <Content (pulp_type=rpm.packagecategory): all>, <Content (pulp_type=rpm.packageenvironment): SharkEnvironment>]></font><br></div><div><br></div><div>G</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 31, 2022 at 3:33 AM Sayan Das <<a href="mailto:saydas@redhat.com" target="_blank" rel="noreferrer">saydas@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello All,<div><br></div><div>I hope everyone is doing great. </div><div><br></div><div>I am reaching out to the developers here as I wanted to find out <b>How I can list all orphan contents in Pulp 3</b> before deleting them?</div><div><br></div><div>I have checked in Pulpcore API as well as Pulp cli but The only option I see is to remove the orphan contents directly. </div><div><br></div><div>There are many situations where due to customer demand or our own understanding we may need to understand what all orphan data is present before we clear them up. </div><div><br></div><div>Keeping that in mind, can anyone please suggest or confirm if we have any way to simply list the orphan content details in Pulp 3 similar to how we were able to do with Pulp 2?</div><div><br></div><div><br clear="all"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><div dir="ltr">Thanks & Regards,</div><div dir="ltr"><br clear="all"><div><div dir="ltr"><div dir="ltr"><p style="font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>Sayan das<br></span></p><p style="font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span></span></p>
<p style="font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><b>S</b>enior<b> T</b>echnical <b>S</b>upport <b>E</b>ngineer<span style="font-weight:normal;color:rgb(170,170,170);margin:0px">, RHCE</span><span style="font-weight:normal;color:rgb(170,170,170);margin:0px"></span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px" target="_blank" rel="noreferrer">Red Hat <span>India<br></span></a></p><span style="font-family:overpass,sans-serif;font-size:10px;margin:0px;color:rgb(153,153,153)"><p style="margin:0px">Red Hat India Pvt. Ltd, Level-5, Tower-10, Cyber City</p></span><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"></span><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"><p style="font-size:10px;margin:0px;color:rgb(153,153,153)">Magarpatta City Hadapsar, Pune-411013, Maharashtra, India.</p></span><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"></span><p style="margin:0px 0px 6px"><span style="color:rgb(153,153,153);font-family:overpass,sans-serif;font-size:10px;margin:0px;padding:0px"><a href="mailto:saydas@redhat.com" style="color:rgb(0,136,206);margin:0px" target="_blank" rel="noreferrer">saydas@redhat.com</a>   </span><font face="overpass, sans-serif" color="#999999"><span style="font-size:10px"> </span></font><span style="color:rgb(153,153,153);font-family:overpass,sans-serif;font-size:10px">M: <a href="tel:+91-7890892756" style="color:rgb(0,136,206);font-size:11px;margin:0px" target="_blank" rel="noreferrer">+91-7890892756</a>    </span><font face="overpass, sans-serif" color="#999999"><span style="font-size:10px"> </span></font><span style="color:rgb(153,153,153);font-family:overpass,sans-serif;font-size:10px">IRC: Sayan</span></p><table style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium" border="0"><tbody><tr><td width="100px"><a href="https://red.ht/sig" target="_blank" rel="noreferrer"><img src="https://static.redhat.com/libs/redhat/brand-assets/latest/corp/logo.png" style="color:rgb(17,85,204)" width="96" height="22"></a><br></td></tr></tbody></table></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
_______________________________________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank" rel="noreferrer">Pulp-dev@redhat.com</a><br>
<a href="https://listman.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer noreferrer" target="_blank">https://listman.redhat.com/mailman/listinfo/pulp-dev</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div>Grant Gainey</div><div>Principal Software Engineer, Red Hat System Management Engineering</div></div></div></div></div>
</blockquote></div>
</blockquote></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div>Grant Gainey</div><div>Principal Software Engineer, Red Hat System Management Engineering</div></div></div></div></div></div>
</blockquote></div>