Pulp: Issueshttps://pulp.plan.io/https://pulp.plan.io/favicon.ico2021-08-25T20:39:56ZPulp
Planio Migration Plugin - Issue #9295 (CLOSED - CURRENTRELEASE): After migration interruption, incomplet...https://pulp.plan.io/issues/92952021-08-25T20:39:56Zttereshcttereshc@redhat.com
<p>To reproduce:</p>
<ul>
<li>interrupt migration at the moment when a publication is created but not completed (good luck)</li>
<li>re-run migration and observe that pulp2repositories endpoint refers to incomplete publications. If you try to access them via content app, you'll get 404.</li>
</ul> Migration Plugin - Issue #9242 (CLOSED - CURRENTRELEASE): Filter out incomplete publications from...https://pulp.plan.io/issues/92422021-08-17T12:08:42Zipanova@redhat.comipanova@redhat.com
<p>If the only publication a repo version has is incomplete, it would be shown in a mapping as migrated.</p>
<p>The problematic code:
<a href="https://github.com/pulp/pulp-2to3-migration/blob/master/pulp_2to3_migration/app/serializers.py#L236" class="external">https://github.com/pulp/pulp-2to3-migration/blob/master/pulp_2to3_migration/app/serializers.py#L236</a></p> Migration Plugin - Issue #8895 (CLOSED - CURRENTRELEASE): django.core.exceptions.FieldError: Unsu...https://pulp.plan.io/issues/88952021-06-14T18:28:21Zttereshcttereshc@redhat.com
<p><del>Trying to run a migration with the future pulpcore 3.14 fails in the following way</del>
pulpcore 3.14 will deprecate it and 3.15 will remove it.</p>
<p>This needs to be fixed for 3.15.</p>
<pre><code>pulp [d42e1bccd6444d1e9992fd63aadf7625]: django.request:ERROR: Internal Server Error: /pulp/api/v3/migration-plans/5172b292-c16d-45d0-80cb-4577328dbd7f/run/
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/rest_framework/viewsets.py", line 125, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 509, in dispatch
response = self.handle_exception(exc)
File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
raise exc
File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pulp_2to3_migration/app/viewsets.py", line 94, in run
if is_migration_plan_running():
File "/usr/local/lib/python3.6/site-packages/pulp_2to3_migration/app/viewsets.py", line 47, in is_migration_plan_running
reserved_resources_record__resource='pulp_2to3_migration')
File "/usr/local/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 892, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 910, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 1290, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 1318, in _add_q
split_subq=split_subq, simple_col=simple_col,
File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 1251, in build_filter
condition = self.build_lookup(lookups, col, value)
File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 1110, in build_lookup
lhs = self.try_transform(lhs, lookup_name)
File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 1151, in try_transform
"permitted%s" % (name, output_field.__name__, suggestion)
django.core.exceptions.FieldError: Unsupported lookup 'resource' for ArrayField or join on the field not permitted.
</code></pre> Migration Plugin - Issue #8874 (CLOSED - CURRENTRELEASE): incorrect migration of modular errata c...https://pulp.plan.io/issues/88742021-06-07T17:48:01Zttereshcttereshc@redhat.com
<p>According to <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1954839" class="external">the original report</a> , the failure is seen for RHEL 8 Appstream repos.</p>
<p>I was able to reproduce it with this repo but not Appstream:</p>
<ul>
<li><a href="https://fixtures.pulpproject.org/rpm-with-sha-1-modular/" class="external">https://fixtures.pulpproject.org/rpm-with-sha-1-modular/</a></li>
</ul>
<pre><code> Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/sync.py", line 294, in run
self.update_content(metadata_files, url)
File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/sync.py", line 627, in update_content
purge.purge_unwanted_units(metadata_files, self.conduit, self.config, catalog)
File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/purge.py", line 45, in purge_unwanted_units
remove_missing_errata(metadata_files, conduit)
File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/purge.py", line 148, in remove_missing_errata
updateinfo.process_package_element)
File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/purge.py", line 277, in get_remote_units
for unit in package_info_generator:
File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/repomd/packages.py", line 64, in package_list_generator
package_info = process_func(element)
File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/repomd/updateinfo.py", line 33, in process_package_element
pkglists = map(_parse_pkglist, element.findall('pkglist') or [])
File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/repomd/updateinfo.py", line 102, in _parse_pkglist
return map(_parse_collection, element.findall('collection') or [])
File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/repomd/updateinfo.py", line 116, in _parse_collection
ret['module'] = _parse_module(module_elements[0])
File "/usr/lib/python2.7/site-packages/pulp_rpm/plugins/importers/yum/repomd/updateinfo.py", line 171, in _parse_module
'name': element.attrib['name'],
KeyError: 'name'
</code></pre>
<p>It's unclear if the content has to be migrated or if the problem can be reproduced if the upstream repos are synced to pulp3 directly.</p> Container Support - Issue #8014 (CLOSED - CURRENTRELEASE): Ensure that container-push repo endpoi...https://pulp.plan.io/issues/80142020-12-21T14:08:08Zipanova@redhat.comipanova@redhat.com
<p>It is possible to create and delete push repositories using API.
It doesn't make sense, it doesn't benefit users in any way, it only potentially creates problems and adds complexity to the code and future RBAC.</p>
<p>Push repositories are automatically created during docker/podman push as a part of distribution creation.
Push repositories are automatically removed when their distributions are removed.</p> Container Support - Issue #7839 (CLOSED - DUPLICATE): push repository can be created without a di...https://pulp.plan.io/issues/78392020-11-16T10:10:46Zmdellweg
<p>This prevents it from being deleted again.</p>
<p>Probably the <code>general_multi_delete</code> must be accompanied by a <code>(general)_multi_create</code>.</p> File Support - Issue #4475 (CLOSED - CURRENTRELEASE): pulp_file unit tests are failinghttps://pulp.plan.io/issues/44752019-02-26T10:53:45Zdaviddavis
<pre><code>Traceback (most recent call last):
File "/home/travis/build/pulp/pulp_file/pulp_file/tests/unit/test_serializers.py", line 21, in setUp
size=1024
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/query.py", line 413, in create
obj.save(force_insert=True, using=self.db)
File "/home/travis/build/pulp/pulp/pulpcore/app/models/content.py", line 166, in save
super().save(*args, **kwargs)
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/base.py", line 718, in save
force_update=force_update, update_fields=update_fields)
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/base.py", line 748, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/base.py", line 831, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/base.py", line 869, in _do_insert
using=using, raw=raw)
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/query.py", line 1136, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1288, in execute_sql
for sql, params in self.as_sql():
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1241, in as_sql
for obj in self.query.objs
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1241, in <listcomp>
for obj in self.query.objs
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1240, in <listcomp>
[self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
File "/home/travis/virtualenv/python3.6.7/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1192, in pre_save_val
return field.pre_save(obj, add=True)
File "/home/travis/build/pulp/pulp/pulpcore/app/models/fields.py", line 54, in pre_save
file._file = TemporaryDownloadedFile(open(file.name, 'rb'))
FileNotFoundError: [Errno 2] No such file or directory: ''
</code></pre> File Support - Issue #4452 (CLOSED - WORKSFORME): fetching a published PULP_MANIFEST throws a 404...https://pulp.plan.io/issues/44522019-02-22T16:56:45Zjsherril@redhat.comjsherril@redhat.com
<p>1. Create a repository<br>
2. Create a file publisher<br>
3. Publish the publisher<br>
4. Create a distribution from the publication<br>
5. Fetch PULP_MANIFEST</p>
<p>Receive a 404. According to the docs a PULP_MANIFEST should be created by default for all file publishes (unless the filename has been configured differently in the publisher).</p> File Support - Issue #4042 (CLOSED - CURRENTRELEASE): Update workflow in docs after changes of fi...https://pulp.plan.io/issues/40422018-09-27T07:54:29Zvdusek
<p>Recently fields of responses were changed (e.g. <a href="https://pulp.plan.io/issues/3978" class="external">https://pulp.plan.io/issues/3978</a>, <a href="https://pulp.plan.io/issues/3979" class="external">https://pulp.plan.io/issues/3979</a>). Workflow in docs should be updated.</p> Pulp - Issue #3978 (CLOSED - CURRENTRELEASE): Operation postponed response contains too much info...https://pulp.plan.io/issues/39782018-09-05T13:51:52Zdkliban@redhat.com
<p>When a user performs a sync, repository_version creation, or a publish she is presented with a 202 response with the following schema:</p>
<pre><code>{
"_href": "/pulp/api/v3/some-task-id/",
"task_id": "some-task-id"
}
</code></pre>
<p>The `task_id` is not necessary because users are supposed to use resource HREFs as identifiers. The `_href` field is not descriptive enough on it's own. A better response would look like</p>
<pre><code>{
"task": "/pulp/api/v3/some-task-id/"
}
</code></pre> 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> Pulp - Issue #3846 (CLOSED - WONTFIX): Wrong status codehttps://pulp.plan.io/issues/38462018-07-10T09:07:34Zvdusek
<p>When I want to create a repository with a name which is already used for another repository, it returns status code 400 - Bad Request. According to this topic <a href="https://stackoverflow.com/questions/3825990/http-response-code-for-post-when-resource-already-exists" class="external">HTTP response code for POST when resource already exists</a> I would suggest use 409 - Conflict.</p> File Support - Issue #3827 (CLOSED - CURRENTRELEASE): Filters on content list lack help texthttps://pulp.plan.io/issues/38272018-07-06T17:33:51ZdaviddavisPulp - Issue #3826 (CLOSED - CURRENTRELEASE): Range filter help text should specify the format al...https://pulp.plan.io/issues/38262018-07-06T17:31:54Zdaviddavis
<p>We have some range filters like <code>last_updated__range</code> but it's not clear how to format the input to these filters.</p> Pulp - Issue #3825 (CLOSED - CURRENTRELEASE): Date filter help text should specify the format of ...https://pulp.plan.io/issues/38252018-07-06T17:30:31Zdaviddavis
<p>We have a bunch of date filters but it's not clear what formats they allow.</p>