Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2021-02-09T07:18:23ZPulp
Planio RPM Support - Issue #8229 (CLOSED - NOTABUG): Do not replace advisory if only 'updated_date' has ...https://pulp.plan.io/issues/82292021-02-09T07:18:23Zadam.winberg@smhi.se
<p>It seems that EPEL sets a new 'updated_date' every day, so when I run my daily sync I get:</p>
<pre><code> "content_summary": {
"added": {
"rpm.advisory": {
"count": 2540,
"href": "/pulp/api/v3/content/rpm/advisories/?repository_version_added=/pulp/api/v3/repositories/rpm/rpm/10e51ae6-65c7-42aa-8ab1-ffebdf752500/versions/19/"
},
"rpm.package": {
"count": 6,
"href": "/pulp/api/v3/content/rpm/packages/?repository_version_added=/pulp/api/v3/repositories/rpm/rpm/10e51ae6-65c7-42aa-8ab1-ffebdf752500/versions/19/"
}
},
"removed": {
"rpm.advisory": {
"count": 2536,
"href": "/pulp/api/v3/content/rpm/advisories/I've tested this and it works?repository_version_removed=/pulp/api/v3/repositories/rpm/rpm/10e51ae6-65c7-42aa-8ab1-ffebdf752500/versions/19/"
}
}
},
</code></pre>
<p>Inspecting the advisories, the only thing changed is the 'updated_date' metadata, version and package lists are identical. EPEL seems to set a new 'updated_date' each day on existing advisories, and in such a case there is not much sense in replacing the existing advisory with the 'new' one. I run weekly scripts to copy new advisories to a frozen repo which is a lot harder to do when thousands of new advisories are coming in every day.</p>
<p>I looked at the code ("pulp_rpm/app/advisory.py") and propose that an additional test is made in the "resolve_advisory_conflict" function, a crude example:</p>
<pre><code> elif not same_dates and pkgs_intersection:
if same_version and previous_pkglist == added_pkglist:
# Ignore new advisory if only 'updated_date' has changed
to_exclude.append(added_advisory.pk)
</code></pre> Python Support - Refactor #4698 (CLOSED - NOTABUG): Rename remote from "python" to "warehouse"https://pulp.plan.io/issues/46982019-04-15T21:19:43Zamacdona@redhat.comaustin@redhat.com
<p>Currently the "Python remote" url is /v3/remotes/python/python/</p>
<p>This is awkward and not descriptive. If the remote url is updated to</p>
<p>v3/remotes/python/warehouse/ it becomes more descriptive and opens up the possibility of different kinds of python repositories.</p> Container Support - Story #4400 (CLOSED - DUPLICATE): As a user, I can download Foreign layershttps://pulp.plan.io/issues/44002019-02-08T19:08:46Zamacdona@redhat.comaustin@redhat.com
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_container/458":<a href="https://github.com/pulp/pulp_container/issues/458" class="external">https://github.com/pulp/pulp_container/issues/458</a></p>
<hr>
<p>A new field was added to skip foreign layers with this issue: <a href="https://pulp.plan.io/issues/4171" class="external">https://pulp.plan.io/issues/4171</a></p>
<p>The new field `include_foreign_layers` defaults to False and is not included on the Serializer, so for now it will always skip.</p>
<p>This story will require</p>
<ol>
<li>Add `include_foreign_layers` to the serializer</li>
<li>add logic to download the foreign layer, which will need to retrieve the layer with an absolute url instead of a relative url.</li>
</ol> Pulp - Issue #3095 (CLOSED - WONTFIX): Unable to cancel pending unstarted taskshttps://pulp.plan.io/issues/30952017-10-23T21:46:31ZAnonymous
<p>1. Created some consumers<br>
2. Created some consumer groups for patching<br>
3. Deleted some consumers<br>
4. Run some package group updates<br>
5. Task lists look Unstarted.</p>
<p>I am not able to cancel the tasks by running</p>
<p>pulp-admin tasks cancel --task-id <task-id></p>
<p>Is there a workaround to remove those orphan tasks?</p> Python Support - Story #2887 (CLOSED - DUPLICATE): As a User, I can upload a python package to a ...https://pulp.plan.io/issues/28872017-07-10T21:56:59Zamacdona@redhat.comaustin@redhat.com
<p>In pulp_python for Pulp 2, uploads come in over the standard "uploads" REST API. Because of this, the python plugin uses the twine utility to inspect the uploaded Python Distribution to parse the appropriate metadata. Rather than continue to depend on twine or carry identical code to inspect packages, it makes sense to receive those uploads directly from twine.[0]</p>
<p>This story will be complete when a user can upload a package to pulp_python using `twine upload`. This story does not include the use of the standard Pulp 3 upload API.</p>
<pre><code>[0]: https://packaging.python.org/tutorials/distributing-packages/#upload-your-distributions
</code></pre>
<p>This story will be complete when a user can use twine extract metadata from a Python package (all types) and create a ContentUnit via the REST API.</p> Pulp - Task #2817 (CLOSED - CURRENTRELEASE): Remove Scratchpad from Pulp 3https://pulp.plan.io/issues/28172017-06-13T16:15:27Zamacdona@redhat.comaustin@redhat.com
<p>Remove the Scratchpad model and all uses of it.</p>
<p>The model is here[0].</p>
<p>[0]: <a href="https://github.com/pulp/pulp/blob/253ae59c9d80a4698c47a0608f96e5d81a62f0d7/platform/pulpcore/app/models/generic.py#L158-L160" class="external">https://github.com/pulp/pulp/blob/253ae59c9d80a4698c47a0608f96e5d81a62f0d7/platform/pulpcore/app/models/generic.py#L158-L160</a></p> Pulp - Task #2682 (CLOSED - DUPLICATE): Add docs about how plugin writers can host their docs on ...https://pulp.plan.io/issues/26822017-03-29T23:53:34Zamacdona@redhat.comaustin@redhat.com
<p>This should be roughly a two paragraph task which will add a section on Docs to the plugin writer's guide.</p>
<p>Explain that plugin writers can host their docs however they want, but some popular options are hosting on docs.pulpproject.org, readthedocs.org, on github pages, or via readme files in the plugin's repo on github.</p>
<p>Explain that to host on docs.pulpproject.org your docs must meet the minimum requirements which is that your docs can be built by Sphinx with <code>git clone <your repo>;cd <your repo>/docs; make clean; make html</code>. The plugin template should already provide this.</p>
<p>To enroll a plugin's docs on docs.pulpproject.org send an email request to the pulp-dev mailing list with the repo details.</p>
<p>Here is the suggested structure for all the docs, put the content described above into the Documentation section under Plugins: <a href="http://pad-katello.rhcloud.com/p/pulp3_doc_structure" class="external">http://pad-katello.rhcloud.com/p/pulp3_doc_structure</a></p> Pulp - Issue #2100 (CLOSED - WONTFIX): Repositories with repo-id "search" cannot be updated or de...https://pulp.plan.io/issues/21002016-07-22T20:41:45Zamacdona@redhat.comaustin@redhat.com
<p>If the repo is named search, it's endpoint is /pulp/api/v2/repositories/search/ which conflicts with our search API.</p>
<p>If a user attempts to create this repo, there is no conflict.</p>
<p>If the user attempts to delete this repo, a 405 is returned because DELETE requests cannot go to the search API.</p>
<p>This has probably been around since as long as the search API and is therefore not a regression.</p> Pulp - Task #1804 (CLOSED - WONTFIX): Create monthly view for community statisticshttps://pulp.plan.io/issues/18042016-03-31T14:55:28ZAnonymous
<p>Collect data from IRC, website, and github. Compose into an ongoing monthly report.</p> Pulp - Issue #1360 (CLOSED - WONTFIX): Permissions retrieval from API doesn't work as expectedhttps://pulp.plan.io/issues/13602015-11-05T21:01:10Zamacdona@redhat.comaustin@redhat.com
<p><a href="http://pulp.readthedocs.org/en/latest/dev-guide/integration/rest-api/permission/retrieval.html#retrieve-permissions-for-particular-resource" class="external">http://pulp.readthedocs.org/en/latest/dev-guide/integration/rest-api/permission/retrieval.html#retrieve-permissions-for-particular-resource</a></p>
<p><strong>tldr;</strong> Permissions API only returns resources that are explicitly granted, leaving out resources that are implicitly granted.</p>
<p>A user is authorized to use a resource if they have been explicitly granted access to that resource <strong>or</strong> if the user has been granted access to a base of the given resource.</p>
<p>So if the user "admin" has been given access to `/`, they will implicitly have permission to access `/repositories/`.</p>
<p>As an example, if we query the API to see what users have permission to use the resource `/`, since admin was explicitly granted permission to this url, we can see that admin has permission here.</p>
<pre><code>(pulp)[vagrant@dev pulp]$ http --json -a admin:admin --verify=no GET 'https://localhost/pulp/api/v2/permissions/?resource=/'
</code></pre>
<pre><code>HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Length: 191
Content-Type: application/json; charset=utf-8
Date: Thu, 05 Nov 2015 20:51:44 GMT
Keep-Alive: timeout=5, max=100
Server: Apache/2.4.16 (Fedora) OpenSSL/1.0.1k-fips mod_wsgi/4.4.8 Python/2.7.10
</code></pre>
<pre><code class="json syntaxhl" data-language="json"><span class="w">
</span><span class="p">[</span><span class="w">
</span><span class="p">{</span><span class="w">
</span><span class="nl">"_id"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nl">"$oid"</span><span class="p">:</span><span class="w"> </span><span class="s2">"563a54c6e779892dc40d2a9b"</span><span class="w">
</span><span class="p">},</span><span class="w">
</span><span class="nl">"_ns"</span><span class="p">:</span><span class="w"> </span><span class="s2">"permissions"</span><span class="p">,</span><span class="w">
</span><span class="nl">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"563a54c6e779892dc40d2a9b"</span><span class="p">,</span><span class="w">
</span><span class="nl">"resource"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/"</span><span class="p">,</span><span class="w">
</span><span class="nl">"users"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
</span><span class="nl">"admin"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
</span><span class="s2">"CREATE"</span><span class="p">,</span><span class="w">
</span><span class="s2">"READ"</span><span class="p">,</span><span class="w">
</span><span class="s2">"UPDATE"</span><span class="p">,</span><span class="w">
</span><span class="s2">"DELETE"</span><span class="p">,</span><span class="w">
</span><span class="s2">"EXECUTE"</span><span class="w">
</span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="p">]</span><span class="w">
</span></code></pre>
<p>However,despite the fact that the admin user has access to `/repositories/` it has been granted access to `/`, access is not shown by the API.</p>
<pre><code>(pulp)[vagrant@dev pulp]$ http --json -a admin:admin --verify=no GET 'https://localhost/pulp/api/v2/permissions/?resource=/repositories/'
</code></pre>
<pre><code>HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Length: 2
Content-Type: application/json; charset=utf-8
Date: Thu, 05 Nov 2015 20:52:05 GMT
Keep-Alive: timeout=5, max=100
Server: Apache/2.4.16 (Fedora) OpenSSL/1.0.1k-fips mod_wsgi/4.4.8 Python/2.7.10
</code></pre>
<pre><code class="json syntaxhl" data-language="json"><span class="w">
</span><span class="p">[]</span><span class="w">
</span></code></pre> Pulp - Story #954 (CLOSED - WONTFIX): Repository display_name field should not be set automatical...https://pulp.plan.io/issues/9542015-05-05T19:16:28Zamacdona@redhat.comaustin@redhat.com
<p>If you create a repository without a display_name, our API populates it with the repo_id. However, if you change the repo_id, the display_name does not change, resulting in potentially surprising behavior. If display names are necessary, we should make them a required field that should be explicitly set. This behavior is documented in the CLI, but not in the API docs.</p>
<p>If we want to maintain the current behavior of the CLI, setting the display_name should happen there.</p> Pulp - Issue #440 (CLOSED - WONTFIX): Restarting Pulp after changing concurrency left stale workershttps://pulp.plan.io/issues/4402015-02-28T22:09:10Zakrzos@redhat.comakrzos@redhat.com
<p>Description of problem:<br>
Change PULP_CONCURRENCY in /etc/default/pulp_workers prior to restarting pulp_resource_manager, pulp_workers, pulp_celerybeat has left several stale workers on my machine.</p>
<p>Version-Release number of selected component (if applicable):<br>
mod_wsgi-3.4-1.pulp.el6sat.x86_64<br>
pulp-puppet-tools-2.4.0-0.18.beta.el6sat.noarch<br>
m2crypto-0.21.1.pulp-10.el6sat.x86_64<br>
pulp-rpm-plugins-2.4.0-0.18.beta.el6sat.noarch<br>
pulp-katello-plugins-0.3-1.el6sat.noarch<br>
python-pulp-rpm-common-2.4.0-0.18.beta.el6sat.noarch<br>
python-pulp-bindings-2.4.0-0.18.beta.el6sat.noarch<br>
createrepo-0.9.9-21.2.pulp.el6sat.noarch<br>
python-pulp-common-2.4.0-0.18.beta.el6sat.noarch<br>
pulp-server-2.4.0-0.18.beta.el6sat.noarch<br>
pulp-nodes-parent-2.4.0-0.18.beta.el6sat.noarch<br>
pulp-nodes-common-2.4.0-0.18.beta.el6sat.noarch<br>
pulp-selinux-2.4.0-0.18.beta.el6sat.noarch<br>
python-isodate-0.5.0-1.pulp.el6sat.noarch<br>
python-pulp-puppet-common-2.4.0-0.18.beta.el6sat.noarch<br>
python-kombu-3.0.15-5.pulp.el6sat.noarch<br>
pulp-puppet-plugins-2.4.0-0.18.beta.el6sat.noarch</p>
<p>How reproducible:<br>
Always</p>
<p>Steps to Reproduce:<br>
1. change PULP_CONCURRENCY to < available cores on machine in /etc/default/pulp_workers while pulp is running<br>
2. service pulp_resource_manager restart; service pulp_workers restart; service pulp_celerybeat restart;<br>
3. view processes to see if stale processes remain</p>
<p>Actual results:<br>
Pulp only stops and restarts the number of workers as set to PULP_CONCURRENCY.</p>
<p>Expected results:<br>
Pulp should stop all Pulp workers and start only the number specified in PULP_CONCURRENCY or if the value is commented out then the default.</p>
<p>Additional info:</p>
<p>+ This bug was cloned from <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1102369" class="external">Bugzilla Bug #1102369</a> +</p> RPM Support - Story #211 (CLOSED - WONTFIX): [RFE] pulp allows corrupt rpms to be pushed into reposhttps://pulp.plan.io/issues/2112015-02-19T01:12:08ZAnonymous
<p>+<span>+ This bug was initially created as a clone of <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1023335" class="external">Bugzilla Bug #1023335</a> +</span>+</p>
<p>Description of problem:</p>
<p>Description of problem:<br>
I create a repo, and push to it a corrupt rpm, which won't install.</p>
<p>Version-Release number of selected component (if applicable):<br>
2.2.0-1</p>
<p>How reproducible:<br>
always</p>
<p>Steps to Reproduce:</p>
<p>1. locate a corrupt rpm:<br>
rpm -K /tmp/corruptrpm-1.0-1.noarch.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#f44e7eb7)</p>
<p>2. pulp-admin rpm repo create --repo-id test-repo2 --relative-url test-repo2</p>
<p>3. pulp-admin rpm repo uploads rpm -f /tmp/corruptrpm-1.0-1.noarch.rpm --repo-id=test-repo2<br>
<span>----------------------------------------------------------------------</span><br>
Unit Upload<br>
<span><del>--------------------------------------------------------------------</del></span></p>
<p>Extracting necessary metadata for each request...<br>
[==================================================] 100%<br>
Analyzing: corruptrpm-1.0-1.noarch.rpm<br>
... completed</p>
<p>Creating upload requests on the server...<br>
[==================================================] 100%<br>
Initializing: corruptrpm-1.0-1.noarch.rpm<br>
... completed</p>
<p>Starting upload of selected units. If this process is stopped through ctrl+c,<br>
the uploads will be paused and may be resumed later using the resume command or<br>
cancelled entirely using the cancel command.</p>
<p>Uploading: corruptrpm-1.0-1.noarch.rpm<br>
[==================================================] 100%<br>
2729160/2729160 bytes<br>
... completed</p>
<p>Importing into the repository...<br>
... completed</p>
<p>Deleting the upload request...<br>
... completed</p>
<p>Actual results:</p>
<p>Corrult rpm successfully pushed into pulp.</p>
<p>Expected results:</p>
<p>rpm upload should fail due to incorrect checksum</p>
<p>Additional info:</p>
<p>--- Additional comment from <a href="mailto:petter.hassberg@netent.com" class="email">petter.hassberg@netent.com</a> at 10/25/2013 08:49:45 ---</p>
<p>this was not a corrupt rpm after all.</p>
<p>--- Additional comment from <a href="mailto:petter.hassberg@netent.com" class="email">petter.hassberg@netent.com</a> at 11/11/2013 14:49:22 ---</p>
<p>This also is applicable with actual corrupt rpm:s with sha1sum mismatch,.</p>
<p>--- Additional comment from <a href="mailto:skarmark@redhat.com" class="email">skarmark@redhat.com</a> at 11/13/2013 16:56:04 ---</p>
<p>***** Bug 1029085 has been marked as a duplicate of this bug. ***</p> Pulp - Task #109 (CLOSED - WONTFIX): Remove Python reserved words from APIhttps://pulp.plan.io/issues/1092015-01-15T16:40:22Zamacdona@redhat.comaustin@redhat.com
<p>There are cases where our API uses python reserved words. This cannot be fixed without changing the API, so we should fix this on our next X release.</p>
<p>Example:<br>
<a href="https://github.com/pulp/pulp/blob/master/server/pulp/server/webservices/controllers/plugins.py#L61" class="external">https://github.com/pulp/pulp/blob/master/server/pulp/server/webservices/controllers/plugins.py#L61</a></p> Pulp - Task #76 (CLOSED - WONTFIX): Automatically run repoclosure for all arches/dists after buil...https://pulp.plan.io/issues/762014-12-18T16:12:43ZAnonymous
<p>This task is related to build stuff, not Pulp itself:)</p>
<p>RPM dependences are occasionally missed during a build, especially for platforms we do not commonly use like el5. This occurs about once every two or three weeks for Pulp repos; QE will find that an RPM is missing while doing an install.</p>
<p>One way to find such issues quickly is to run repoclosure on each repos before publishing. This is typically done as one command per repo; an example is at <a href="https://fedoraproject.org/wiki/QA:Testcase_Mediakit_Repoclosure" class="external">https://fedoraproject.org/wiki/QA:Testcase_Mediakit_Repoclosure</a>.</p>
<p>This step is typically done during the build/release process before QE handoff, but could also be done by QE. Ideally this could be run as part of the new build process.</p>
<p>This should be done in the nightly Jenkins build repos job. This should be done using Docker if possible because it needs to be run on each arch and dist.</p>