Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2021-10-04T10:30:48ZPulp
Planio Ansible Plugin - Issue #9483 (CLOSED - CURRENTRELEASE): dispatch calls need to specify locked res...https://pulp.plan.io/issues/94832021-10-04T10:30:48ZmdellwegAnsible Plugin - Issue #9476 (CLOSED - CURRENTRELEASE): Syncing twice w/ mirror=True and optimize...https://pulp.plan.io/issues/94762021-09-30T19:25:31Zgerrod
<p>The optimize=True setting is causing the sync pipeline to think all the content has been removed from the remote and thus produce a new repo version with no content in it.</p> Ansible Plugin - Issue #9442 (CLOSED - CURRENTRELEASE): Deprecation status isn't synced correctly...https://pulp.plan.io/issues/94422021-09-23T21:02:06Zfao89
<p>If a repo with deprecated collections sync from a remote without deprecations, the repo will keep its deprecations regardless the new remote</p> Ansible Plugin - Issue #9405 (CLOSED - CURRENTRELEASE): Download links for V3 unpaginated collect...https://pulp.plan.io/issues/94052021-09-15T22:47:36Zgerrod
<p>The download links for collection versions from the v3 unpaginated endpoint don't match the download links for the same collection versions at their href endpoints. I've tested this on AH staging environment, not sure if present elsewhere.</p> Ansible Plugin - Issue #9404 (CLOSED - CURRENTRELEASE): V3 unpaginated sync fails when trying to ...https://pulp.plan.io/issues/94042021-09-15T22:44:48Zgerrod
<p>This line is the offender if the collection version does not exist: <a href="https://github.com/pulp/pulp_ansible/blob/3c2a4fe6e51eacc478534f795cb959a74a639383/pulp_ansible/app/tasks/collections.py#L546-L550" class="external">https://github.com/pulp/pulp_ansible/blob/3c2a4fe6e51eacc478534f795cb959a74a639383/pulp_ansible/app/tasks/collections.py#L546-L550</a>, a key error will happen.</p> Ansible Plugin - Issue #9390 (CLOSED - CURRENTRELEASE): Proxy authentication is not working in co...https://pulp.plan.io/issues/93902021-09-13T18:42:17Znewswangerd
<p>We're seeing issues with customers getting <code>aiohttp.client_exceptions.ClientHttpProxyError: 407, message='Proxy Authentication Required'</code> error on Automation Hub 4.2 using pulpcore 3.7.5 and pulp_ansible 0.5.8 during collection sync.</p>
<p>This appears to be happening with Squid.</p>
<p>Squid logs:</p>
<pre><code>1627559170.932 0 xxx.xxx.xxx.xxx TCP_DENIED/407 4125 CONNECT galaxy.ansible.com:443 - HIER_NONE/- text/html
</code></pre> Ansible Plugin - Issue #8742 (CLOSED - DUPLICATE): Ansible playbooks fail on database migrationshttps://pulp.plan.io/issues/87422021-05-13T07:09:03Zsli720
<p>I run the ansible playbooks from pulp-installer 3.12.2 (also once with the latest commit of the master branch) on a fresh CentOS 8 as I did last week but suddenly it breaks on database migration with the error:</p>
<pre><code class="text syntaxhl" data-language="text">File \"/usr/local/lib/pulp/lib64/python3.6/site-packages/click/core.py\", line 2108, in __init__", " ) from None", "ValueError: 'default' must be a list when 'multiple' is true."], "stdout": "", "stdout_lines": []}
</code></pre>
<p>Is the click package incompatible? I really don't know now which version of the pulp-installer really works, cause on every rerun of the playbooks another issue appears mostly due to 3rd party incompatibilities (also django upgrade recently broke the installation) . Would it somehow possible to fix all this dependencies somewhere (which file?) cause when I check out 3.12.2 I always expect the same result? Or is there something I do wrong?</p> Ansible Plugin - Issue #7834 (CLOSED - CURRENTRELEASE): Updated deprecation status is not include...https://pulp.plan.io/issues/78342020-11-13T19:23:49Zawcrosby
<p>This was seen on testing with galaxy_ng: In 4.2.0 GA, updated deprecation status is not sync’d from cloud to on-prem hub</p>
<p>Steps to recreate:</p>
<ol>
<li>Ensure the <code>synctest</code> repo in ci.cloud.redhat.com has some collections deprecated, others not</li>
<li>For the first time, sync the repo from cloud to on-prem hub</li>
<li>Confirm deprecation status is as expected on each collection in on-prem hub</li>
<li>Change deprecation status on one of the synced collections on cloud</li>
<li>Sync again</li>
<li>Observe that the collection on-prem does not have the deprecation status changed as expected</li>
</ol> Ansible Plugin - Issue #7669 (CLOSED - CURRENTRELEASE): pulp_ansible galaxy collection endpoint, ...https://pulp.plan.io/issues/76692020-10-07T18:26:51Zawcrosby
<p>An empty RepositoryVersion shows entries for all CollectionVersions in system, via <code>/pulp_ansible/galaxy/<path>/api/v3/collections/</code></p>
<p>The list should be empty but it is not, it also should be a list of unique collections but in this case collections are shown multiple times with different <code>highest_version</code>s.</p> Ansible Plugin - Issue #5579 (CLOSED - CURRENTRELEASE): Add the ability to set a certification st...https://pulp.plan.io/issues/55792019-10-16T17:26:31Znewswangerd
<a name="Change-is_certified-to-a-certification-enum-in-the-database-that-accepts-following-values"></a>
<h2 >Change <code>is_certified</code> to a <code>certification</code> enum in the database that accepts following values<a href="#Change-is_certified-to-a-certification-enum-in-the-database-that-accepts-following-values" class="wiki-anchor">¶</a></h2>
<ul>
<li>certified</li>
<li>not_certified</li>
<li>needs_review</li>
</ul>
<a name="Create-endpoint-to-set-certification-to-either-of-the-three-options-listed-above"></a>
<h2 >Create endpoint to set <code>certification</code> to either of the three options listed above<a href="#Create-endpoint-to-set-certification-to-either-of-the-three-options-listed-above" class="wiki-anchor">¶</a></h2>
<h2>On <code>/pulp/api/v3/content/ansible/collection_versions/</code>
</h2>
<ul>
<li>Create a <code>certification</code> flag that returns only collection_versions that meet the given certification status</li>
<li>If <code>certification</code> is used with the <code>is_highest</code> flag, return the highest collection version that meets the given certification status</li>
</ul>
<p>Example: if <code>certification=certified</code>and <code>is_highest=true</code> and collection A has three versions: v1.0.0 (certified), v1.0.1 (certified), v1.0.2 (not_certified), return only Collection A, v1.0.1</p>
<ul>
<li>Ensure <code>certification</code> is being returned as a value on the API</li>
</ul>
<h2>New collections should default to <code>needs_review</code>
</h2> Ansible Plugin - Issue #5571 (CLOSED - CURRENTRELEASE): Add the ability to filter collection vers...https://pulp.plan.io/issues/55712019-10-14T20:13:14Znewswangerd
<p>We need a parameter on `/pulp/api/v3/content/ansible/collection_versions/` that allows for us to filter collection versions by tag, such that we can specify `tags=?network,cloud` and get a list of collection versions that have the network AND cloud tags.</p> Ansible Plugin - Issue #5299 (CLOSED - CURRENTRELEASE): Bindings for pulp \ pulp ansible return p...https://pulp.plan.io/issues/52992019-08-19T16:05:10Zosapryki
<p>Fields described in DRF serializers as `JSONField()` [1] are included in swagger schema as `string` [2] fields, which leads to invalid deserialization on a client side when using pulp bindings.</p>
<p>Those fields deserialized as a `str` type containing <code>repr()</code> result of json field passed from server.</p>
<p>This issue is a blocker, because it cannot be reliably workarounded on a client side as there is no reliable way to deserialize python <code>repr()</code> back to a normal object.</p>
<p>[1] <a href="https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/serializers.py#L197" class="external">https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/serializers.py#L197</a><br>
[2] <a href="https://pulp-ansible.readthedocs.io/en/latest/restapi.html#operation/content_ansible_collections_list" class="external">https://pulp-ansible.readthedocs.io/en/latest/restapi.html#operation/content_ansible_collections_list</a></p> Ansible Plugin - Issue #5226 (CLOSED - CURRENTRELEASE): Migration 0004_add_fulltext_search_indexe...https://pulp.plan.io/issues/52262019-08-06T20:09:00Zosapryki
<p>Migration <code>0004_add_fulltext_search_indexes</code> fails with the following exception when trying to execute against database table that actually contains data.</p>
<pre><code>Traceback (most recent call last):
File "/venv/bin/django-admin", line 11, in <module>
sys.exit(execute_from_command_line())
File "/venv/lib64/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/venv/lib64/python3.6/site-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/venv/lib64/python3.6/site-packages/django/core/management/base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "/venv/lib64/python3.6/site-packages/django/core/management/base.py", line 364, in execute
output = self.handle(*args, **options)
File "/venv/lib64/python3.6/site-packages/django/core/management/base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "/venv/lib64/python3.6/site-packages/django/core/management/commands/migrate.py", line 234, in handle
fake_initial=fake_initial,
File "/venv/lib64/python3.6/site-packages/django/db/migrations/executor.py", line 117, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/venv/lib64/python3.6/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/venv/lib64/python3.6/site-packages/django/db/migrations/executor.py", line 245, in apply_migration
state = migration.apply(state, schema_editor)
File "/venv/lib64/python3.6/site-packages/django/db/migrations/migration.py", line 124, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/venv/lib64/python3.6/site-packages/django/db/migrations/operations/special.py", line 105, in database_forwards
self._run_sql(schema_editor, self.sql)
File "/venv/lib64/python3.6/site-packages/django/db/migrations/operations/special.py", line 130, in _run_sql
schema_editor.execute(statement, params=None)
File "/venv/lib64/python3.6/site-packages/django/db/backends/base/schema.py", line 137, in execute
cursor.execute(sql, params)
File "/venv/lib64/python3.6/site-packages/django/db/backends/utils.py", line 99, in execute
return super().execute(sql, params)
File "/venv/lib64/python3.6/site-packages/django/db/backends/utils.py", line 67, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/venv/lib64/python3.6/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/venv/lib64/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/venv/lib64/python3.6/site-packages/django/db/utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/venv/lib64/python3.6/site-packages/django/db/backends/utils.py", line 82, in _execute
return self.cursor.execute(sql)
django.db.utils.ProgrammingError: more than one row returned by a subquery used as an expression
</code></pre>
<p>The SQL query that causes this exception is this:</p>
<pre><code> UPDATE ansible_collectionversion AS c
SET search_vector = (
SELECT
setweight(to_tsvector(coalesce(namespace,'')), 'A')
|| setweight(to_tsvector(coalesce(name, '')), 'A')
|| (
SELECT
setweight(to_tsvector(
coalesce(string_agg("ansible_tag"."name", ' '), '')
), 'B')
FROM
"ansible_tag" INNER JOIN "ansible_collectionversion_tags" ON ("ansible_tag"."_id" = "ansible_collectionversion_tags"."tag_id")
)
|| (
SELECT
setweight(to_tsvector(
coalesce(string_agg(cvc ->> 'name', ' '), '')
), 'C')
FROM jsonb_array_elements(cv.contents) AS cvc
)
|| setweight(to_tsvector(coalesce(description, '')), 'D')
FROM ansible_collectionversion cv
)
</code></pre> Ansible Plugin - Issue #4047 (CLOSED - CURRENTRELEASE): pulp_ansible RC1 is missing codehttps://pulp.plan.io/issues/40472018-09-29T20:14:14Zbmbouterbmbouter@redhat.com
<p>I <code>pip install pulp_ansible</code> and I receive 0.1.0rc1 with:</p>
<pre><code>(pulp) [vagrant@pulp3 pulp]$ pip freeze | grep ansible
pulp-ansible==0.1.0rc1
</code></pre>
<p>When starting any Pulp process I receive a traceback:</p>
<pre><code>Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7fa4b561f9d8>
Traceback (most recent call last):
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/core/management/commands/runserver.py", line 109, in inner_run
autoreload.raise_last_exception()
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/utils/autoreload.py", line 248, in raise_last_exception
raise _exception[1]
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/core/management/__init__.py", line 337, in execute
autoreload.check_errors(django.setup)()
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/apps/registry.py", line 120, in populate
app_config.ready()
File "/home/vagrant/devel/pulp/pulpcore/pulpcore/app/apps.py", line 74, in ready
self.import_viewsets()
File "/home/vagrant/devel/pulp/pulpcore/pulpcore/app/apps.py", line 108, in import_viewsets
self.viewsets_module = import_module(viewsets_module_name)
File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/pulp_ansible/app/viewsets.py", line 22, in <module>
from . import tasks
ImportError: cannot import name 'tasks'
</code></pre>
<p>In the 0.1.0rc1 tagged code you can see this import <a href="https://github.com/pulp/pulp_ansible/blob/0.1.0rc1/pulp_ansible/app/viewsets.py#L22" class="external">here</a> which is importing from the <a href="https://github.com/pulp/pulp_ansible/tree/0.1.0rc1/pulp_ansible/app" class="external">tasks module here</a></p>
<p>Strangely though, on the system I pip intalled 0.1.0rc1 onto I get this as my code, which is missing the 'tasks' module.</p>
<pre><code>(pulp) [vagrant@pulp3 app]$ cd ~/.virtualenvs/pulp/lib64/python3.6/site-packages/pulp_ansible/
(pulp) [vagrant@pulp3 pulp_ansible]$ tree
.
├── app
│ ├── __init__.py
│ ├── models.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ ├── models.cpython-36.pyc
│ │ ├── serializers.cpython-36.pyc
│ │ ├── urls.cpython-36.pyc
│ │ └── viewsets.cpython-36.pyc
│ ├── serializers.py
│ ├── urls.py
│ └── viewsets.py
├── __init__.py
└── __pycache__
└── __init__.cpython-36.pyc
</code></pre> Ansible Plugin - Issue #3946 (CLOSED - CURRENTRELEASE): Syncing from Galaxy is not workinghttps://pulp.plan.io/issues/39462018-08-29T15:03:28Zdaviddavis
<p>It looks like some fields were renamed in the Galaxy API. From the Galaxy team:</p>
<blockquote>
<p>Change the namespace query referenced in your email to: "<a href="https://galaxy.ansible.com/api/v1/roles/?namespace%5C_%5C_name=ansible" class="external">https://galaxy.ansible.com/api/v1/roles/?namespace\_\_name=ansible</a>". Namespace is now an object in galaxy, so it has an id, description, name, and other attributes that you can query.</p>
</blockquote>
<blockquote>
<p>There is no longer a 'num_pages' value returned in the response object. We return the number of results as 'count', so you can do something like, "math.ceil(float(count)/float(page_size))", in Python to calc the number of pages.</p>
</blockquote>