Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2020-09-16T11:46:22ZPulp
Planio Pulp - Issue #7511 (CLOSED - CURRENTRELEASE): Pulp Squeezer status module caching API response an...https://pulp.plan.io/issues/75112020-09-16T11:46:22Zchouseknecht
<p>When the squeezer modules instantiate OpenAPI(), the refresh_cache options defaults to 'False'. See <a href="https://github.com/pulp/squeezer/blob/develop/plugins/module_utils/openapi.py#L43" class="external">https://github.com/pulp/squeezer/blob/develop/plugins/module_utils/openapi.py#L43</a>. I believe This causes the cache to retain API responses, negatively affecting multiple calls to the status module.</p>
<p>For example, the following playbook task fails, if the Pulp API is not available during the first iteration:</p>
<pre><code>- name: Ensure Pulp is up and healthy
pulp.squeezer.status:
pulp_url: "http://{{ pulp_api_host }}:{{ pulp_api_port }}"
username: "{{ pulp_admin_username }}"
password: "{{ pulp_default_admin_password }}"
register: result
until: >
result.status is defined and
result.status.database_connection.connected == true and
result.status.redis_connection.connected == true and
result.status.online_workers | map(attribute='name') | select('match', '^resource-manager$') | list | count > 0 and
result.status.online_workers | map(attribute='name') | select('match', '^[0-9]+@.*$') | list | count > 0
delay: 2
retries: 60
</code></pre> Pulp - Issue #7493 (CLOSED - CURRENTRELEASE): Installer: remove auth migration taskhttps://pulp.plan.io/issues/74932020-09-10T21:44:12Zchouseknecht
<p>Currently the installer runs auth migrations first, then runs all other migrations. This is causing the following error in <code>galaxy_ng</code>:</p>
<pre><code>TASK [pulp_database_config : Run database auth migrations] *********************
fatal: [pulp3-source-fedora31]: FAILED! => {
"changed": true,
"cmd": [
"/usr/local/lib/pulp/bin/django-admin",
"migrate",
"auth",
"--no-input"
],
"delta": "0:00:04.244303",
"end": "2020-09-10 20:49:05.957899",
"rc": 1,
"start": "2020-09-10 20:49:01.713596"
}
STDOUT:
Operations to perform:
Apply all migrations: auth
Running migrations:
Applying contenttypes.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0001_initial... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
STDERR:
Traceback (most recent call last):
File "/usr/local/lib/pulp/lib64/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "galaxy_user" does not exist
LINE 1: ...er"."is_active", "galaxy_user"."date_joined" FROM "galaxy_us...
</code></pre>
<p>Django's migration system should get it right (i.e., run things in the correct order) no matter what. If it isn't, it's because a dependency isn't in place correctly in the code that declares migration dependencies.</p>
<p>According to bmbouter, "Early on in pulp3 there was a requirement for it to be run in two-steps because we weren't commiting migrations to git. Like years ago at this point. I think this is a vestige from that."</p> Pulp - Issue #7041 (CLOSED - WONTFIX): Make disabling SELinux optionalhttps://pulp.plan.io/issues/70412020-06-24T12:57:33Zchouseknecht
<p>As a developer I should have the option to disable SELinux.</p>
<p>The following change removed the task that automatically disabled SELinux :</p>
<p><a href="https://github.com/pulp/pulp_installer/pull/337/files#diff-88538467d3c51f54417e8cfeb0426bc4L17" class="external">https://github.com/pulp/pulp_installer/pull/337/files#diff-88538467d3c51f54417e8cfeb0426bc4L17</a>.</p>
<p>Having SELinux enabled breaks dev installs. Specifically, in a dev install where nginx config files are symlink'd to an external mount point, SELinux prevents nginx from starting.</p>
<p>Encountered this issue using Pulplift to provision pulp3-source-fedora31. The exact error in the nginx error log is: "[emerg] 19108#0: open() "/etc/nginx/pulp/galaxy_ng.conf" failed (13: Permission denied) in /etc/nginx/nginx.conf:73"</p>
<p>With SELinux disabled, the above error is resolved and nginx starts as expected.</p> Container Support - Issue #6916 (CLOSED - CURRENTRELEASE): Latest stable docker client (2.3.0.3) ...https://pulp.plan.io/issues/69162020-06-05T18:23:34Zchouseknecht
<p>With the latest stable docker client (2.3.0.3) installed, <code>docker push</code> fails to make a PUT request to the API to create a <code>latest</code> tag. This later causes a <code>docker pull</code> operation to fail, because there is no <code>latest</code> tag.</p>
<p>When using podman to push the image, it uploads all the blobs first (which the docker client does as well), and then it makes 2 additional PUT calls. one to create a manifest. and another to create a tag pointing at the the manifest. The same is expected from the docker client.</p>
<p>The root cause seems to be the Nginx config having client_max_body_size set to 1MB. Bumping this. to unlimited resolved the problem.</p> Pulp - Issue #6727 (CLOSED - CURRENTRELEASE): Allow user to configure gunicorn --workers param du...https://pulp.plan.io/issues/67272020-05-13T18:02:47Zchouseknecht
<p>Some GalaxyNG views make API calls to the content app. This creates a deadlock situation when there is only a single gunicorn worker listening for requests.</p> Ansible Plugin - Issue #6223 (CLOSED - CURRENTRELEASE): Pulp configured with S3 doesn't include f...https://pulp.plan.io/issues/62232020-02-25T16:40:42Zchouseknecht
<p>After Pulp redirects the user to Amazon S3 to download the file the user receives it but it does not have the correct file extension. The Artifact extension is something stored in Pulp's database. It's also possible that one Artifact is present in multiple repos as various filenames so this needs to be set as a per-request piece of data.</p> File Support - Issue #3183 (CLOSED - DUPLICATE): README instruction failhttps://pulp.plan.io/issues/31832017-12-12T14:59:58Zchouseknecht
<p>Followed the README instructions for creating the `foo` repository, and hit an error on the second step, 'Add and Importer to Repository foo'.</p>
<p>The 'foo' repository created successfully, and returned the following:</p>
<pre><code>HTTP/1.0 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Length: 338
Content-Type: application/json
Date: Fri, 08 Dec 2017 10:14:43 GMT
Location: http://localhost:8000/api/v3/repositories/15e6265c-866b-469a-bcbf-7f2f1535aaa3/
Server: WSGIServer/0.2 CPython/3.6.1
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"_href": "http://localhost:8000/api/v3/repositories/15e6265c-866b-469a-bcbf-7f2f1535aaa3/",
"content": "http://localhost:8000/api/v3/repositories/15e6265c-866b-469a-bcbf-7f2f1535aaa3/content/",
"content_summary": {},
"description": "",
"importers": [],
"last_content_added": null,
"last_content_removed": null,
"name": "foo",
"notes": {},
"publishers": []
}
</code></pre>
<p>The next request "http POST <a href="http://localhost:8000/api/v3/repositories/foo/importers/file/" class="external">http://localhost:8000/api/v3/repositories/foo/importers/file/</a> name='bar' download_policy='immediate' sync_mode='mirror' feed_url='<a href="https://repos.fedorapeople.org/pulp/pulp/demo_repos/test_file_repo/PULP_MANIFEST" class="external">https://repos.fedorapeople.org/pulp/pulp/demo_repos/test_file_repo/PULP_MANIFEST</a>'" failed with the following response:</p>
<pre><code>HTTP/1.0 404 Not Found
Allow: GET, POST, HEAD, OPTIONS
Content-Length: 23
Content-Type: application/json
Date: Fri, 08 Dec 2017 10:15:26 GMT
Server: WSGIServer/0.2 CPython/3.6.1
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"detail": "Not found."
}
</code></pre>
<p>Substituting 'foo' with the Id of the repository worked. I changed the request to "http POST <a href="http://localhost:8000/api/v3/repositories/15e6265c-866b-469a-bcbf-7f2f1535aaa3/importers/file/" class="external">http://localhost:8000/api/v3/repositories/15e6265c-866b-469a-bcbf-7f2f1535aaa3/importers/file/</a> name='bar' download_policy='immediate' sync_mode='mirror' feed_url='<a href="https://repos.fedorapeople.org/pulp/pulp/demo_repos/test_file_repo/PULP_MANIFEST" class="external">https://repos.fedorapeople.org/pulp/pulp/demo_repos/test_file_repo/PULP_MANIFEST</a>'", and it worked, giving the following response:</p>
<pre><code>HTTP/1.0 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Length: 494
Content-Type: application/json
Date: Fri, 08 Dec 2017 10:16:57 GMT
Location: http://localhost:8000/api/v3/repositories/15e6265c-866b-469a-bcbf-7f2f1535aaa3/importers/file/bar/
Server: WSGIServer/0.2 CPython/3.6.1
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN
{
"_href": "http://localhost:8000/api/v3/repositories/15e6265c-866b-469a-bcbf-7f2f1535aaa3/importers/file/bar/",
"download_policy": "immediate",
"feed_url": "https://repos.fedorapeople.org/pulp/pulp/demo_repos/test_file_repo/PULP_MANIFEST",
"last_synced": null,
"last_updated": "2017-12-08T10:16:57.284111Z",
"name": "bar",
"proxy_url": "",
"repository": "http://localhost:8000/api/v3/repositories/15e6265c-866b-469a-bcbf-7f2f1535aaa3/",
"ssl_validation": true,
"sync_mode": "mirror",
"type": "file",
"validate": true
}
</code></pre>