Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2020-07-22T21:30:09ZPulp
Planio Pulp - Issue #7196 (CLOSED - CURRENTRELEASE): pulpcore.app.response.OperationPostponedResponse do...https://pulp.plan.io/issues/71962020-07-22T21:30:09Zalikins
<p>The docstring is:</p>
<pre><code> An HTTP response class for returning 202 and a spawned task.
This response object should be used by views that dispatch asynchronous tasks. The most common
use case is for sync and publish operations. When JSON is requested, the response will look
like the following::
{
"pulp_href": "https://example.com/pulp/api/v3/tasks/adlfk-bala-23k5l7-lslser",
"task_id": "adlfk-bala-23k5l7-lslser"
}
</code></pre>
<p>But the response is only the 'pulp_href':</p>
<pre><code>{
"task": "/pulp/api/v3/tasks/3f40df5c-985e-4817-a605-4e5fabb6ff7d/"
}
</code></pre> Pulp - Issue #6898 (CLOSED - NOTABUG): Pulp 2 - REST API for Search ignores critera or raises err...https://pulp.plan.io/issues/68982020-06-03T13:18:03ZAnonymous
<a name="Detailed-Description"></a>
<h2 >Detailed Description<a href="#Detailed-Description" class="wiki-anchor">¶</a></h2>
<p>Pulp provides REST API at <a href="https://docs.pulpproject.org/en/2.21/dev-guide/integration/rest-api/index.html" class="external">https://docs.pulpproject.org/en/2.21/dev-guide/integration/rest-api/index.html</a> for manipulation users, repositories, content and such.</p>
<p>For Search API <a href="https://docs.pulpproject.org/en/2.21/dev-guide/conventions/criteria.html#search-api" class="external">https://docs.pulpproject.org/en/2.21/dev-guide/conventions/criteria.html#search-api</a>, pulp provides two options:</p>
<ul>
<li>
<code>POST</code> request with <code>criteria</code> object</li>
<li>
<code>GET</code> request with query arguments</li>
</ul>
<a name="Bug"></a>
<h2 >Bug<a href="#Bug" class="wiki-anchor">¶</a></h2>
<p>When searching for units <a href="https://docs.pulpproject.org/en/2.21/dev-guide/integration/rest-api/repo/content.html#advanced-unit-search" class="external">https://docs.pulpproject.org/en/2.21/dev-guide/integration/rest-api/repo/content.html#advanced-unit-search</a>, using <code>GET</code> request it raises error:</p>
<p>Request -> HOSTED_PULP_URL/repositories/external-centos-6-staging/search/units/?field=id&field=display_name&limit=20</p>
<p>Response:</p>
<pre><code>{
"http_request_method":"GET",
"exception":[
"TypeError: pop() takes at most 1 argument (2 given)\n"
],
"error_message":"pop() takes at most 1 argument (2 given)",
"_href":"/pulp/api/v2/repositories/external-centos-6-staging/search/units/?field=id&field=display_name&limit=20",
"http_status":500,
"traceback":[
" File \"/usr/lib/python2.7/site-packages/django/core/handlers/base.py\", line 185, in _get_response\n response = wrapped_callback(request, *callback_args, **callback_kwargs)\n",
" File \"/usr/lib/python2.7/site-packages/django/views/generic/base.py\", line 68, in view\n return self.dispatch(request, *args, **kwargs)\n",
" File \"/usr/lib/python2.7/site-packages/django/views/generic/base.py\", line 88, in dispatch\n return handler(request, *args, **kwargs)\n",
" File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/views/decorators.py\", line 241, in _auth_decorator\n return _verify_auth(self, operation, super_user_only, method, *args, **kwargs)\n",
" File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/views/decorators.py\", line 195, in _verify_auth\n value = method(self, *args, **kwargs)\n",
" File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/views/search.py\", line 108, in get\n return self._generate_response(query, options, *args, **kwargs)\n",
" File \"/usr/lib/python2.7/site-packages/pulp/server/webservices/views/repositories.py\", line 285, in _generate_response\n criteria = UnitAssociationCriteria.from_client_input(query)\n",
" File \"/usr/lib/python2.7/site-packages/pulp/server/db/model/criteria.py\", line 286, in from_client_input\n association_fields = _validate_fields(fields.pop('association', None))\n"
]
}
</code></pre>
<p>Specifying without <code>field</code> works, even though documentation provides example of using <code>field</code> as query argument.</p>
<hr>
<p>As for Search using POST request, criteria seems ignored and return everything.</p>
<p>Example critera:</p>
<pre><code>{
"criteria": {
"fields": {
"unit": [
"name",
"version"
]
},
"type_ids": [
"rpm"
],
"limit": 1
}
}
</code></pre>
<p>Response: Everything (<em>criteria is ignored</em>)</p>
<p>Maybe I'm missing something, but we are not able to get fields we require since the whole output is huge and it downgrades our user experience.</p>
<p>Thank you.</p>
<a name="Your-Environment"></a>
<h2 >Your Environment<a href="#Your-Environment" class="wiki-anchor">¶</a></h2>
<ul>
<li>Version used: 2.16.4</li>
</ul> CertGuard - Issue #4891 (CLOSED - CURRENTRELEASE): The client side ssl cert for pulp should follo...https://pulp.plan.io/issues/48912019-05-30T14:37:04ZAnonymous
<p>The client side cert is currently coming in via SSL_CLIENT_CERTIFICATE</p>
<p>It should probably be change to conform to the X-header standards and be X-SSL_CLIENT_CERTIFICATE</p>
<p>The is for the certguard plugin for pulp3.</p> Pulp - Issue #1933 (CLOSED - WONTFIX): Restricting fields on user search does not work as expectedhttps://pulp.plan.io/issues/19332016-05-20T14:28:18Zamacdona@redhat.comaustin@redhat.com
<p>From <a href="https://pulp.plan.io/issues/1332#note-11" class="external">https://pulp.plan.io/issues/1332#note-11</a></p>
<p>This is broken in 2.8.3. As an example, given an HTTP GET request to <code>https://pulp.example.com/pulp/api/v2/users/search/?field=name</code>, the following response might be returned:</p>
<pre><code class="python syntaxhl" data-language="python"><span class="p">[{</span><span class="sa">u</span><span class="s">'_href'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'/pulp/api/v2/users/None/'</span><span class="p">,</span>
<span class="sa">u</span><span class="s">'_id'</span><span class="p">:</span> <span class="p">{</span><span class="sa">u</span><span class="s">'$oid'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'5734c946e8ec9868b57fc652'</span><span class="p">},</span>
<span class="sa">u</span><span class="s">'login'</span><span class="p">:</span> <span class="bp">None</span><span class="p">,</span>
<span class="sa">u</span><span class="s">'name'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'admin'</span><span class="p">},</span>
<span class="p">{</span><span class="sa">u</span><span class="s">'_href'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'/pulp/api/v2/users/None/'</span><span class="p">,</span>
<span class="sa">u</span><span class="s">'_id'</span><span class="p">:</span> <span class="p">{</span><span class="sa">u</span><span class="s">'$oid'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'5734d925e8ec98692112327b'</span><span class="p">},</span>
<span class="sa">u</span><span class="s">'login'</span><span class="p">:</span> <span class="bp">None</span><span class="p">,</span>
<span class="sa">u</span><span class="s">'name'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'46f0b926-891b-4567-b6f8-fbe19e2e0c7c'</span><span class="p">},</span>
<span class="p">{</span><span class="sa">u</span><span class="s">'_href'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'/pulp/api/v2/users/None/'</span><span class="p">,</span>
<span class="sa">u</span><span class="s">'_id'</span><span class="p">:</span> <span class="p">{</span><span class="sa">u</span><span class="s">'$oid'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'5734d926e8ec986922fdec16'</span><span class="p">},</span>
<span class="sa">u</span><span class="s">'login'</span><span class="p">:</span> <span class="bp">None</span><span class="p">,</span>
<span class="sa">u</span><span class="s">'name'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'051a9641-3e9d-47ad-9635-3b68e0b29d9b'</span><span class="p">},</span>
<span class="p">{</span><span class="sa">u</span><span class="s">'_href'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'/pulp/api/v2/users/None/'</span><span class="p">,</span>
<span class="sa">u</span><span class="s">'_id'</span><span class="p">:</span> <span class="p">{</span><span class="sa">u</span><span class="s">'$oid'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'5734d927e8ec986920331c71'</span><span class="p">},</span>
<span class="sa">u</span><span class="s">'login'</span><span class="p">:</span> <span class="bp">None</span><span class="p">,</span>
<span class="sa">u</span><span class="s">'name'</span><span class="p">:</span> <span class="sa">u</span><span class="s">'71195cb7-855e-4c83-8174-8169060d30ec'</span><span class="p">}]</span>
</code></pre>
<p>The following Pulp Smash test cases demonstrate this issue:</p>
<ul>
<li><a href="http://pulp-smash.readthedocs.io/en/latest/api/pulp_smash.tests.platform.api_v2.test_search.html#pulp_smash.tests.platform.api_v2.test_search.FieldTestCase" class="external">http://pulp-smash.readthedocs.io/en/latest/api/pulp_smash.tests.platform.api_v2.test_search.html#pulp_smash.tests.platform.api_v2.test_search.FieldTestCase</a></li>
<li><a href="http://pulp-smash.readthedocs.io/en/latest/api/pulp_smash.tests.platform.api_v2.test_search.html#pulp_smash.tests.platform.api_v2.test_search.FieldsTestCase" class="external">http://pulp-smash.readthedocs.io/en/latest/api/pulp_smash.tests.platform.api_v2.test_search.html#pulp_smash.tests.platform.api_v2.test_search.FieldsTestCase</a></li>
</ul> Pulp - Issue #1503 (CLOSED - WONTFIX): remove Criteria import from serializershttps://pulp.plan.io/issues/15032016-01-11T17:22:29Zamacdona@redhat.comaustin@redhat.com
<p>There is a circular import problem, and the serializer really shouldn't need `pulp.server.db.model.criteria.Criteria`</p>
<p>The reason it is necessary right now is that the criteria needs to be translated from external to internal representation. `pulp/server/webservices/views/serializers/__init__.py:ModelSerializer.translate_criteria` should translate a dictionary representation of criteria and that dict should be used to create the `Criteria` object. Currently a `Criteria` object is created, it is converted to a dict, the dict is translated, and then the translated dict is used create a new `Criteria` object.</p> Pulp - Issue #1125 (CLOSED - WONTFIX): API call to create a user includes extra `id` fieldhttps://pulp.plan.io/issues/11252015-07-08T20:58:06Zamacdona@redhat.comaustin@redhat.com
<p>When creating a user via the API, this is an example of the json returned:</p>
<pre><code class="json syntaxhl" data-language="json"><span class="p">{</span><span class="w">
</span><span class="nl">"_href"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/pulp/api/v2/users/lets-go-to-joule/"</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">"559d8d9fe138237844b5646e"</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">"users"</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">"559d8d9fe138237844b5646e"</span><span class="p">,</span><span class="w">
</span><span class="nl">"login"</span><span class="p">:</span><span class="w"> </span><span class="s2">"lets-go-to-joule"</span><span class="p">,</span><span class="w">
</span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"lets-go-to-joule"</span><span class="p">,</span><span class="w">
</span><span class="nl">"roles"</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>All other user endpoints serialize differently, excluding the `id` field.</p>
<pre><code class="json syntaxhl" data-language="json"><span class="p">{</span><span class="w">
</span><span class="nl">"_href"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/pulp/api/v2/users/lets-go-to-joule/"</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">"559d8d9fe138237844b5646e"</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">"users"</span><span class="p">,</span><span class="w">
</span><span class="nl">"login"</span><span class="p">:</span><span class="w"> </span><span class="s2">"lets-go-to-joule"</span><span class="p">,</span><span class="w">
</span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"lets-go-to-joule"</span><span class="p">,</span><span class="w">
</span><span class="nl">"roles"</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>As part of the mongoengine conversion, I have specifically added code to insert this extra field to preserve backwards compatibility. To fix (only for an X release), simply grep for a link to this issue and remove the referenced code.</p> Pulp - Issue #1102 (CLOSED - WONTFIX): v2/content/units/<unit_type>/ endpoint is undocumentedhttps://pulp.plan.io/issues/11022015-07-02T19:50:09Zamacdona@redhat.comaustin@redhat.com
<p>The relevant page:<br>
<a href="http://pulp.readthedocs.org/en/latest/dev-guide/integration/rest-api/content/retrieval.html" class="external">http://pulp.readthedocs.org/en/latest/dev-guide/integration/rest-api/content/retrieval.html</a></p>
<p>This shows the endpoints for retrieving a single unit and searching for units, but does not mention retrieving all units of a particular unit type.</p> Pulp - Issue #826 (CLOSED - WONTFIX): missing criteria field should not return all possible resultshttps://pulp.plan.io/issues/8262015-03-30T18:18:09Zamacdona@redhat.comaustin@redhat.com
<p>There are multiple ways that our use of criteria can have unexpected results, but they all center around the fact that some search results start with <strong>all results</strong> and filter by the criteria that is passed in. This means that if the criteria is incorrect in some way that everything is returned.</p>
<p>For example, if I pass empty criteria to unassociate, I would expect that none of the content is unassociated. Instead all content (of the repo) is unassociated.</p>
<p><code>$ pulp-admin -u admin -p admin rpm repo list</code></p>
<pre><code> +----------------------------------------------------------------------+
RPM Repositories
+----------------------------------------------------------------------+
Id: zoo1
Display Name: zoo1
Description: None
Content Unit Counts:
Rpm: 32
</code></pre>
<p><code>$ curl -i -H "Accept: application/json" -H "WebFrameworkSwitch: webpy" -X POST -k -u admin:admin -d '{"criteria":{}}' "https://localhost/pulp/api/v2/repositories/zoo1/actions/unassociate/"</code></p>
<pre><code>HTTP/1.1 202 Accepted
Date: Wed, 25 Mar 2015 16:03:47 GMT
Server: Apache/2.4.10 (Fedora) OpenSSL/1.0.1e-fips mod_wsgi/3.5 Python/2.7.5
Content-Encoding: utf-8
Content-Length: 172
Content-Type: application/json
</code></pre>
<pre><code class="json syntaxhl" data-language="json"><span class="w"> </span><span class="p">{</span><span class="nl">"spawned_tasks"</span><span class="p">:</span><span class="w"> </span><span class="p">[{</span><span class="nl">"_href"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/pulp/api/v2/tasks/757a7a4f-23d8-4f9e-a6a8-0ec1efabe149/"</span><span class="p">,</span><span class="w"> </span><span class="nl">"task_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"757a7a4f-23d8-4f9e-a6a8-0ec1efabe149"</span><span class="p">}],</span><span class="w"> </span><span class="nl">"result"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="nl">"error"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">}</span><span class="w">
</span></code></pre>
<p><code>$ pulp-admin -u admin -p admin rpm repo list</code></p>
<pre><code>
+----------------------------------------------------------------------+
RPM Repositories
+----------------------------------------------------------------------+
Id: zoo1
Display Name: zoo1
Description: None
Content Unit Counts:
Rpm: 0
</code></pre>
<p>Similar problems can occur if there are typos in the field names. For instance passing 'distributor_id' instead of 'id'. 'distributor_id' would match nothing,so all distributors would be returned instead of just the ids listed or a 400.</p>
<p>It would be my expectation for the opposite to happen. If I pass bad params, they should either return a 400 or null results. Likewise, passing nothing should either be a validation error or null.</p> Pulp - Issue #746 (CLOSED - WONTFIX): API - update a repository with invalid importer config retu...https://pulp.plan.io/issues/7462015-03-10T19:29:23Zamacdona@redhat.comaustin@redhat.com
<p><strong>Description</strong></p>
<p>Response implies that the repo_id is not found, when it is actually the importer_config that is causing the problem. Since this data was passed in the body rather than the url, this should be a 400 and the <code>importer_config</code> should be the invalid param.</p>
<p><strong>Steps to reporoduce</strong><br>
test4 is a valid repository</p>
<p><code>curl -s -H "Accept: application/json" -H "WebFrameworkSwitch: webpy" -X PUT -d '{"importer_config": {}}' -D- -k -u admin:admin https://localhost/pulp/api/v2/repositories/test4/</code></p>
<pre><code>HTTP/1.1 404 Not Found
Date: Tue, 10 Mar 2015 18:50:38 GMT
Server: Apache/2.4.10 (Fedora) OpenSSL/1.0.1k-fips mod_wsgi/4.3.2 Python/2.7.8
Content-Encoding: utf-8
Content-Length: 385
Content-Type: application/json
</code></pre>
<pre><code class="json syntaxhl" data-language="json"><span class="w">
</span><span class="p">{</span><span class="nl">"http_request_method"</span><span class="p">:</span><span class="w"> </span><span class="s2">"PUT"</span><span class="p">,</span><span class="w"> </span><span class="nl">"exception"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="nl">"error_message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Missing resource(s): resource_id=test4"</span><span class="p">,</span><span class="w"> </span><span class="nl">"_href"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/pulp/api/v2/repositories/test4/"</span><span class="p">,</span><span class="w"> </span><span class="nl">"http_status"</span><span class="p">:</span><span class="w"> </span><span class="mi">404</span><span class="p">,</span><span class="w"> </span><span class="nl">"error"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="nl">"code"</span><span class="p">:</span><span class="w"> </span><span class="s2">"PLP0009"</span><span class="p">,</span><span class="w"> </span><span class="nl">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="nl">"resources"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="nl">"resource_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"test4"</span><span class="p">}},</span><span class="w"> </span><span class="nl">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Missing resource(s): resource_id=test4"</span><span class="p">,</span><span class="w"> </span><span class="nl">"sub_errors"</span><span class="p">:</span><span class="w"> </span><span class="p">[]},</span><span class="w"> </span><span class="nl">"traceback"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="p">,</span><span class="w"> </span><span class="nl">"resources"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="nl">"resource_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"test4"</span><span class="p">}}</span><span class="w">
</span></code></pre>
<p>This problem will be unaffected by the Django work because it occurs in the manager:<br>
<a href="https://github.com/pulp/pulp/blob/master/server/pulp/server/managers/repo/importer.py#L250" class="external">https://github.com/pulp/pulp/blob/master/server/pulp/server/managers/repo/importer.py#L250</a></p> Pulp - Issue #718 (CLOSED - NOTABUG): resolve_dependencies endpoint is undocumentedhttps://pulp.plan.io/issues/7182015-02-28T23:26:13Zamacdona@redhat.comaustin@redhat.com
<p>Description of problem:</p>
<p>The resolve_depenedencies endpoint appears to lack any documentation:</p>
<p>/v2/repositories/<repo_id>/actions/resolve_dependencies/</p>
<p>+ This bug was cloned from <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1196812" class="external">Bugzilla Bug #1196812</a> +</p> Pulp - Issue #716 (CLOSED - WONTFIX): API call to disassociate a distributor from a repo_group ha...https://pulp.plan.io/issues/7162015-02-28T23:26:02Zamacdona@redhat.comaustin@redhat.com
<p><a href="http://pulp.readthedocs.org/en/latest/dev-guide/integration/rest-api/repo/groups/distributors.html#disassociate-a-repository-group-distributor" class="external">http://pulp.readthedocs.org/en/latest/dev-guide/integration/rest-api/repo/groups/distributors.html#disassociate-a-repository-group-distributor</a></p>
<p>The documentation does not mention an optional body parameter, {"force": "True"}.</p>
<p>This feature should be deprecated or it should be documented.</p>
<p>+ This bug was cloned from <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1196268" class="external">Bugzilla Bug #1196268</a> +</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> Pulp - Issue #429 (CLOSED - WONTFIX): Uploading rpm fails with error: Invalid unit type for repos...https://pulp.plan.io/issues/4292015-02-28T22:06:13Zashbyj@imsweb.comashbyj@imsweb.com
<p>Description of problem:</p>
<p>When uploading an rpm file to a pulp repo, it fails with: Invalid unit type for repository</p>
<p>I have two pulp servers: a parent and a child node. This only happens when uploading to repository "foo" on the child node. I <strong>think</strong> this is because Repository "foo" on the child has "yum_importer" as the Importer type, whereas the parent has "nodes_http_importer".</p>
<p>It is not clear in the documentation what these various importer plugins are or how to update an existing repo to change which importer is used.</p>
<p>The better solution for me is to upload to the parent and sync the repo to the child node, but that takes forever since I have so many repositories, and in 2.3 it seems I cannot specify a single repository (i.e. --repo-id) in the sync. Looks like that feature has been added in 2.4.</p>
<p>Version-Release number of selected component (if applicable):<br>
pulp 2.3.1<br>
CentOS 6.5</p>
<p>How reproducible:<br>
every time</p>
<p>Steps to Reproduce:<br>
1.</p>
<p>me@child:~> pulp-admin rpm repo uploads rpm --repo-id=foo --file=serf-custom-1.3.5-1.x86_64.rpm</p>
<p><span><del>--------------------------------------------------------------------</del></span><br>
Unit Upload<br>
<span><del>--------------------------------------------------------------------</del></span></p>
<p>Extracting necessary metadata for each request...<br>
[==================================================] 100%<br>
Analyzing: serf-custom-1.3.5-1.x86_64.rpm<br>
... completed</p>
<p>Creating upload requests on the server...<br>
[==================================================] 100%<br>
Initializing: serf-custom-1.3.5-1.x86_64.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: serf-custom-1.3.5-1.x86_64.rpm<br>
[==================================================] 100%<br>
825314/825314 bytes<br>
... completed</p>
<p>Importing into the repository...<br>
The server indicated one or more values were incorrect. The server provided the<br>
following error message:</p>
<pre><code>Invalid unit type for repository
</code></pre>
<p>More information can be found in the client log file ~/.pulp/admin.log.</p>
<p>#</p>
<ol>
<li>~/.pulp/admin.log<br>
#<br>
2014-05-13 08:53:08,734 - ERROR - Exception occurred:<br>
href: /pulp/api/v2/repositories/foo/actions/import_upload/<br>
method: POST<br>
status: 400<br>
error: Invalid unit type for repository<br>
traceback: None<br>
data: {u'args': [u'Invalid unit type for repository']}</li>
</ol>
<p>Actual results:<br>
Invalid unit type for repository</p>
<p>Expected results:<br>
Successful upload of rpm to repository.</p>
<p>Additional info:<br>
Here are the repo details for the parent and child pulp servers per "pulp-admin repo list --details":</p>
<ol>
<li>Parent pulp server<br>
#<br>
Id: foo<br>
Display Name: Custom packages for EL6 - Development<br>
Description: Custom Packages for EL6 - x86_64<br>
Content Unit Counts:<br>
Rpm: 96<br>
Notes:<br>
Importers:<br>
Config:<br>
Manifest URL: <a href="https://pulp.example.com/pulp/nodes/https/repos/foo/" class="external">https://pulp.example.com/pulp/nodes/https/repos/foo/</a><br>
manifest.json<br>
Strategy: additive<br>
Id: nodes_http_importer<br>
Importer Type Id: nodes_http_importer<br>
Last Sync: 2014-05-12T23:23:08-04:00<br>
Repo Id: foo<br>
Scheduled Syncs:<br>
Distributors:<br>
Auto Publish: True<br>
Config:<br>
Http: False<br>
Https: True<br>
Relative URL: foo<br>
Distributor Type Id: yum_distributor<br>
Id: yum_distributor<br>
Last Publish: 2014-05-13T08:12:14-04:00<br>
Repo Id: foo<br>
Scheduled Publishes:<br>
Auto Publish: False<br>
Config:<br>
Http: False<br>
Https: True<br>
Distributor Type Id: export_distributor<br>
Id: export_distributor<br>
Last Publish: None<br>
Repo Id: foo<br>
Scheduled Publishes:</li>
</ol>
<ol>
<li>Child pulp node<br>
#<br>
Id: foo<br>
Display Name: Custom packages for EL6 - Development<br>
Description: Custom Packages for EL6 - x86_64<br>
Content Unit Counts:<br>
Rpm: 97<br>
Notes:<br>
Importers:<br>
Config:<br>
Id: yum_importer<br>
Importer Type Id: yum_importer<br>
Last Sync: None<br>
Repo Id: foo<br>
Scheduled Syncs:<br>
Distributors:<br>
Auto Publish: True<br>
Config:<br>
Http: False<br>
Https: True<br>
Relative URL: foo<br>
Distributor Type Id: yum_distributor<br>
Id: yum_distributor<br>
Last Publish: 2014-05-13T08:11:09-04:00<br>
Repo Id: foo<br>
Scheduled Publishes:<br>
Auto Publish: True<br>
Config:<br>
Distributor Type Id: nodes_http_distributor<br>
Id: nodes_http_distributor<br>
Last Publish: 2014-05-09T11:37:17-04:00<br>
Repo Id: foo<br>
Scheduled Publishes:<br>
Auto Publish: False<br>
Config:<br>
Http: False<br>
Https: True<br>
Distributor Type Id: export_distributor<br>
Id: export_distributor<br>
Last Publish: None<br>
Repo Id: foo<br>
Scheduled Publishes:</li>
</ol>
<p>+ This bug was cloned from <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1097275" class="external">Bugzilla Bug #1097275</a> +</p> Pulp - Issue #417 (CLOSED - WONTFIX): Need clearer error for user-cert.pem conflicts with shared ...https://pulp.plan.io/issues/4172015-02-28T22:04:58Zashbyj@imsweb.comashbyj@imsweb.com
<p>Description of problem:<br>
This is a pretty specific "gotcha" I was having, but had me scratching my head. Our home directories are shared across a handful of servers in our environment, so ~/.pulp/user-cert.pem can be a source of conflicts.</p>
<p>Version-Release number of selected component (if applicable):<br>
Pulp 2.3 on CentOS 6.5</p>
<p>How reproducible:<br>
always</p>
<p>Steps to Reproduce:<br>
1. Login to parent server and do some sort of pulp-admin command.</p>
<p>jason@pulpmaster~> pulp-admin login -u admin<br>
jason@pulpmaster~> pulp-admin node repo list<br>
<span>----------------------------------------------------------------------</span><br>
Enabled Repositories<br>
<span><del>--------------------------------------------------------------------</del></span></p>
<p>repos are successfully listed here...</p>
<p>2. Try a pulp-admin command on child server. User jason has a nfs-shared home directory between pulpparent and pulpchild.</p>
<p>jason@pulpchild:~> pulp-admin node repo list<br>
<span><del>--------------------------------------------------------------------</del></span><br>
Enabled Repositories<br>
<span><del>--------------------------------------------------------------------</del></span></p>
<p>An error occurred attempting to contact the server. More information can be<br>
found in the client log file ~/.pulp/admin.log.</p>
<p>Conversely, if I log into the child first, then I can do pulp-admin commands on the child, but then I get the errors on the parent.</p>
<p>Actual results:</p>
<p>~/.pulp/admin.log shows a generic "sslv3 bad certificate" error.</p>
<p>Expected results:</p>
<p>An error message saying the ~/.pulp/user-cert.pem is invalid. I wasn't sure what certificate it was complaining about - the server cert, CA, or user cert. Also a note in the documentation about this "gotcha" would be nice for people setting up multiple pulp servers with shared user directories (per solution below).</p>
<p>Additional info:</p>
<p>The solution is to make the user cert filename host-specific in /etc/pulp/admin/admin.conf:</p>
<p>[filesystem]<br>
extensions_dir = /usr/lib/pulp/admin/extensions</p>
<ol>
<li>Location to store the authentication certificate to pass to the server<br>
id_cert_dir = ~/.pulp<br>
id_cert_filename = user-cert.hostname.pem</li>
</ol>
<p>+ This bug was cloned from <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1089487" class="external">Bugzilla Bug #1089487</a> +</p> Pulp - Issue #409 (CLOSED - WONTFIX): Pulp fails to report filesystem permission denied errors wh...https://pulp.plan.io/issues/4092015-02-28T22:03:57Zashbyj@imsweb.comashbyj@imsweb.com
<p>, I’m trying to update an existing repository with:</p>
<pre><code>pulp-admin rpm repo update --repo-id='Dev-CentOS65-updates-x86_64' --display-name='CentOS 6.5 updates - Dev environment'
</code></pre>
<p>which gives an error:</p>
<p>The server indicated one or more values were incorrect. The server provided the<br>
following error message:</p>
<pre><code>Pulp exception occurred: PulpDataException
</code></pre>
<p>More information can be found in the client log file ~/.pulp/admin.log.</p>
<p>Heres ~/.pulp/admin.log:</p>
<p>2014-03-25 15:25:50,031 - ERROR - Exception occurred:<br>
href: /pulp/api/v2/repositories/Dev-CentOS65-updates-x86_64/<br>
method: PUT<br>
status: 400<br>
error: Pulp exception occurred: PulpDataException<br>
traceback: None<br>
data: {u'args': <a class="wiki-page new" href="https://pulp.plan.io/projects/pulp/wiki/13_u'Permission_denied'">13, u'Permission denied'</a>}</p>
<p>I also tried with sudo in front, but I seem to get the same error. Here is /var/log/pulp/pulp.log:</p>
<p>2014-03-25 15:28:22,061 pulp.server.webservices.middleware.exception:ERROR: Pulp exception occurred: PulpDataException<br>
Traceback (most recent call last):<br>
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/middleware/exception.py", line 44, in <em>call</em><br>
return self.app(environ, start_response)<br>
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/middleware/postponed.py", line 39, in <em>call</em><br>
return self.app(environ, start_response)<br>
File "/usr/lib/python2.6/site-packages/web/application.py", line 279, in wsgi<br>
result = self.handle_with_processors()<br>
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/application.py", line 26, in _handle_with_processors<br>
return process(self.processors)<br>
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/application.py", line 23, in process<br>
return p(lambda : process(processors))<br>
File "/usr/lib/python2.6/site-packages/web/application.py", line 566, in processor<br>
return handler()<br>
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/application.py", line 23, in <lambda><br>
return p(lambda : process(processors))<br>
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/application.py", line 23, in process<br>
return p(lambda : process(processors))<br>
File "/usr/lib/python2.6/site-packages/web/application.py", line 581, in processor<br>
result = handler()<br>
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/application.py", line 23, in <lambda><br>
return p(lambda : process(processors))<br>
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/application.py", line 25, in process<br>
return self.handle()<br>
File "/usr/lib/python2.6/site-packages/web/application.py", line 230, in handle<br>
return self._delegate(fn, self.fvars, args)<br>
File "/usr/lib/python2.6/site-packages/web/application.py", line 420, in _delegate<br>
return handle_class(cls)<br>
File "/usr/lib/python2.6/site-packages/web/application.py", line 396, in handle_class<br>
return tocall(*args)<br>
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/controllers/decorators.py", line 227, in _auth_decorator<br>
value = method(self, *args, **kwargs)<br>
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/controllers/repositories.py", line 288, in PUT<br>
repo = execution.execute(call_request)<br>
File "/usr/lib/python2.6/site-packages/pulp/server/dispatch/task.py", line 137, in _run<br>
result = call(*args, **kwargs)<br>
File "/usr/lib/python2.6/site-packages/pulp/server/managers/repo/cud.py", line 426, in update_repo_and_plugins<br>
distributor_manager.update_distributor_config(repo_id, dist_id, dist_config)<br>
File "/usr/lib/python2.6/site-packages/pulp/server/managers/repo/distributor.py", line 307, in update_distributor_config<br>
result = distributor_instance.validate_config(transfer_repo, call_config, config_conduit)<br>
File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 195, in validate_config<br>
self.process_repo_auth_certificate_bundle(repo.id, repo_relative_path, auth_cert_bundle)<br>
File "/usr/lib/pulp/plugins/distributors/yum_distributor/distributor.py", line 262, in process_repo_auth_certificate_bundle<br>
protected_repo_utils_obj.delete_protected_repo(repo_relative_path)<br>
File "/usr/lib/python2.6/site-packages/pulp_rpm/repo_auth/protected_repo_utils.py", line 75, in delete_protected_repo<br>
f.save()<br>
File "/usr/lib/python2.6/site-packages/pulp_rpm/repo_auth/protected_repo_utils.py", line 155, in save<br>
f = open(self.filename, 'w')<br>
PulpDataException: Pulp exception occurred: PulpDataException</p>
<p>I’m running pulp 2.3 (I believe that’s the stable version?) on CentOS 6.5. I’m just getting started setting my pulp server and repositories up. Here’s how I created the repos:</p>
<pre><code>pulp-admin rpm repo create --repo-id=CentOS65-updates-x86_64 --feed=http://mirror.umd.edu/centos/6.5/updates/x86_64 --max-speed=1000000 --max-downloads=2
pulp-admin rpm repo sync run --repo-id=CentOS65-updates-x86_64
</code></pre>
<ol>
<li>“freeze” the updates repo by copying to a separate repo<br>
pulp-admin rpm repo create --repo-id=Dev-CentOS65-updates-x86_64<br>
pulp-admin rpm repo copy all --from-repo-id=CentOS65-updates-x86_64 --to-repo-id=Dev-CentOS65-updates-x86_64<br>
pulp-admin rpm repo publish run --repo-id=Dev-CentOS65-updates-x86_64</li>
</ol>
<p>That’s all good, but when I try to update the repository per above it errors out. I have a vanilla install of the pulp-server, except for the SSL certs. My pulp server is a sub/intermediary-CA of our root CA, so not sure if it’s a cert issue here. My server and CA certs look good per openssl verify, curl, and apache checks.</p>
<p>+ This bug was cloned from <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1081091" class="external">Bugzilla Bug #1081091</a> +</p>