Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2021-05-13T07:09:03ZPulp
Planio 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> Ansible Plugin - Issue #3898 (CLOSED - CURRENTRELEASE): Filters inherit from a Django's FilterSet...https://pulp.plan.io/issues/38982018-08-02T15:13:08Zvdusek
<p>AnsibleRoleFilter and AnsibleRoleVersionFilter inherit from Django's filterset.FilterSet class not from our BaseFilterSet. I suppose this could cause problems in generating documentation.</p> Ansible Plugin - Issue #3818 (CLOSED - CURRENTRELEASE): The AnsibleRole as a content unit is prob...https://pulp.plan.io/issues/38182018-07-05T13:33:17Zdaviddavis
<p>A couple example problems:</p>
<p>- Orphan cleanup will probably remove AnsibleRole records<br>
- Users can add AnsibleRoles (instead of AnsibleRoleVersions) to a content view</p>
<p>Make AnsibleRole not extend Content.</p> Ansible Plugin - Issue #3792 (CLOSED - DUPLICATE): Ansible content units are missing fields in th...https://pulp.plan.io/issues/37922018-06-26T18:53:24Zdaviddavis
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_ansible/681":<a href="https://github.com/pulp/pulp_ansible/issues/681" class="external">https://github.com/pulp/pulp_ansible/issues/681</a></p> Ansible Plugin - Issue #3610 (CLOSED - DUPLICATE): 500 when publishing a repository without any v...https://pulp.plan.io/issues/36102018-04-26T22:30:41Zdaviddavis
<p><strong>Ticket moved to GitHub</strong>: "pulp/pulp_ansible/679":<a href="https://github.com/pulp/pulp_ansible/issues/679" class="external">https://github.com/pulp/pulp_ansible/issues/679</a></p>
<hr>
<p>Copied from pulp_file. Was able to reproduce this with an ansible publisher.</p>
<pre><code>~/3/pulp_ansible ❯ http POST http://dev.pulp3:8000/api/v3/publishers/ansible/007682b4-f522-469b-92c9-baeca276529a/publish/ repository=http://dev.pulp3:8000/api/v3/repositories/96a7048f-bda6-4ccc-8317-a8dca80defae/
</code></pre>
<pre><code>HTTP/1.0 500 Internal Server Error
</code></pre>
<pre><code>
Traceback:
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/core/handlers/base.py" in _legacy_get_response
249. response = self._get_response(request)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
58. return view_func(*args, **kwargs)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/rest_framework/viewsets.py" in view
95. return self.dispatch(request, *args, **kwargs)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/rest_framework/views.py" in dispatch
494. response = self.handle_exception(exc)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/rest_framework/views.py" in handle_exception
454. self.raise_uncaught_exception(exc)
File "/home/vagrant/.virtualenvs/pulp/lib64/python3.6/site-packages/rest_framework/views.py" in dispatch
491. response = handler(request, *args, **kwargs)
File "/home/vagrant/devel/pulp_file/pulp_file/app/viewsets.py" in publish
147. [repository_version.repository, publisher],
Exception Type: AttributeError at /api/v3/publishers/file/007682b4-f522-469b-92c9-baeca276529a/publish/
Exception Value: 'NoneType' object has no attribute 'repository'
</code></pre> Ansible Plugin - Issue #3598 (CLOSED - CURRENTRELEASE): During sync, tar.gz files are being saved...https://pulp.plan.io/issues/35982018-04-24T14:24:26Zdaviddavis
<p>See: <a href="https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/tasks/synchronizing.py#L36" class="external">https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/tasks/synchronizing.py#L36</a></p>
<p>And here: <a href="https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/tasks/synchronizing.py#L254" class="external">https://github.com/pulp/pulp_ansible/blob/master/pulp_ansible/app/tasks/synchronizing.py#L254</a></p> Ansible Plugin - Issue #3595 (CLOSED - CURRENTRELEASE): Remove sync_mode and download_policy from...https://pulp.plan.io/issues/35952018-04-23T17:49:15Zdaviddavis
<p>These fields were removed from the remotes.<br>
<a href="https://pulp.plan.io/issues/3492" class="external">https://pulp.plan.io/issues/3492</a></p>
<p>This task is to remove mentions of this from the docs.</p>