Project

Profile

Help

Story #6749

As a core or plugin developer, i want to be able to share temporary files between the viewset and triggered tasks

Added by mdellweg 5 months ago. Updated about 2 months ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Assignee:
Category:
-
Sprint/Milestone:
Start date:
Due date:
% Done:

100%

Estimated time:
Platform Release:
Groomed:
No
Sprint Candidate:
No
Tags:
Sprint:
Quarter:

Description

Current Problems

  1. Deleting the temporary Artifact can cause a race condition where the second fails or no deletes occur
  2. FK exception when the Artifact being deleted already exists and is associated with other content
  3. Backups would incorrectly include both long-term Artifacts and short-term files.
  4. Security concern that these temporary files are exposed to users as Artifacts and can be associated to Content, etc

Background

Sometimes, files must be brought forward from the viewset to the executing task, that are not meant to end up being artifacts in the end. On the other hand, different pulp services are not guaranteed to share a common filesystem (like /usr/share/pulp).

Proposal

The design is to have a service that allows to create files with the same storage technology that the artifacts use, where unique names are generated, and the task to use the file has the duty to remove it again from the storage. It is necessary, that those files do neither collide with any artifact that happens to be identical, nor another such file created for a different task.

The Plan

  1. Create a new model called PulpTemporaryFile that has a pulp_id and a file.
  2. Files should be saved based on pulp_id (eg MEDIA_ROOT/tmp/files/29/beb7f3-1a70-40da-86fc-5f9006670baa)
  3. Add PulpTemporaryFile to the plugin api and add documentation

Related issues

Related to Ansible Plugin - Task #6718: Stop using artifacts when importing collectionsCLOSED - CURRENTRELEASE

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Ansible Plugin - Issue #5666: Failed imports leave orphaned artifacts blocking subsequent attemptsNEW<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Pulp - Refactor #7270: NoArtifactContentUploadViewSet should use PulpTemporaryFile instead of Artifact to store temporary dataCLOSED - CURRENTRELEASE

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

Associated revisions

Revision 6b3be357 View on GitHub
Added by Fabricio Aguiar 2 months ago

Introducing PulpTemporaryFile

https://pulp.plan.io/issues/6749 closes #6749

History

#1 Updated by mdellweg 5 months ago

  • Description updated (diff)

#2 Updated by fao89 2 months ago

  • Related to Task #6718: Stop using artifacts when importing collections added

#3 Updated by fao89 2 months ago

  • Related to Issue #5666: Failed imports leave orphaned artifacts blocking subsequent attempts added

#4 Updated by bmbouter 2 months ago

  • Description updated (diff)

#5 Updated by daviddavis 2 months ago

  • Description updated (diff)

#6 Updated by daviddavis 2 months ago

  • Description updated (diff)

#7 Updated by bmbouter 2 months ago

  • Description updated (diff)

#8 Updated by bmbouter 2 months ago

  • Description updated (diff)

#9 Updated by daviddavis 2 months ago

  • Description updated (diff)

#10 Updated by daviddavis 2 months ago

  • Description updated (diff)

#11 Updated by daviddavis 2 months ago

  • Description updated (diff)

#12 Updated by fao89 2 months ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to fao89

#13 Updated by pulpbot 2 months ago

  • Status changed from ASSIGNED to POST

#14 Updated by Anonymous 2 months ago

  • Status changed from POST to MODIFIED
  • % Done changed from 0 to 100

#15 Updated by lmjachky about 2 months ago

  • Related to Refactor #7270: NoArtifactContentUploadViewSet should use PulpTemporaryFile instead of Artifact to store temporary data added

#16 Updated by dkliban@redhat.com about 2 months ago

  • Sprint/Milestone set to 3.6.0

#17 Updated by pulpbot about 2 months ago

  • Status changed from MODIFIED to CLOSED - CURRENTRELEASE

Please register to edit this issue

Also available in: Atom PDF