Issue #5304
Updated by dkliban@redhat.com over 5 years ago
The initial bug report has led to the identification of the following problems: - pulp traceback is emitted when publishing a repository with metadata. This only occurs when Pulp 3 cannot create PublishedMetadata files in /var/lib/pulp/published/ because POSIX permissions prevent it is installed on a machine where already running Pulp 2 has already published content - PublishedMetadata are the only files that are stored 2. <pre> Aug 19 21:31:32 localhost.example.com rq[3082]: pulp: rq.worker:ERROR: PermissionError: [Errno 13] Permission denied: '/var/lib/pulp/published/metadata' Aug 19 21:31:32 localhost.example.com rq[3082]: Traceback (most recent call last): Aug 19 21:31:32 localhost.example.com rq[3082]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/worker.py", line 822, in /var/lib/pulp/published, everything else is stored perform_job Aug 19 21:31:32 localhost.example.com rq[3082]: rv = job.perform() Aug 19 21:31:32 localhost.example.com rq[3082]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 605, in /var/lib/pulp/artifact - Plugin API provides 2 ways to represent content: Content (made up of Artifacts) and PublishedMetadata - content app has two code paths for serving PublishedMetada and Content - metadata that is mirrored exactly as published is represented as a Content model and the same metadata generated by Pulp is represented as PublishedArtifcat - any code that exports a publication to a filesystem needs to have 2 code paths to export the contents of a publication perform Aug 19 21:31:32 localhost.example.com rq[3082]: self._result = self._execute() Aug 19 21:31:32 localhost.example.com rq[3082]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 611, in _execute Aug 19 21:31:32 localhost.example.com rq[3082]: return self.func(*self.args, **self.kwargs) Aug 19 21:31:32 localhost.example.com rq[3082]: File "/home/vagrant/devel/pulp_file/pulp_file/app/tasks/publishing.py", line 44, in publish Aug 19 21:31:32 localhost.example.com rq[3082]: metadata.save() The solution to all these problems is to make PublishedMetadata inherit from Content and combine PublishedFile and PublishedArtifact into one object. For any generated metadata, plugins will create an Artifact, PublishedMetadata, and PublishedArtifact during a publish task. </pre>