[Pulp-list] working directories proposal

Michael Hrivnak mhrivnak at redhat.com
Mon Dec 15 19:54:10 UTC 2014


----- Original Message -----
> From: "Dennis Kliban" <dkliban at redhat.com>
> To: "pulp-list" <pulp-list at redhat.com>
> Sent: Monday, December 15, 2014 2:37:35 PM
> Subject: [Pulp-list] working directories proposal
> 
> What we have now:
> 
>   - Storage directory defined here [0]
> 
>   - The above value is used to create a path for working directories here [1]
> 
> Proposed changes:
> 
>   - Add a new config value in the 'server' section called
>   'working_directory'.  It's default value would be /var/lib/storage

We should have "pulp" in the path. /var/cache/pulp would be a good choice and works well with the FHS.

> 
>   - Change common utils [1] to use ['server']['working_dirctory'] config as
>   base path.
> 
>   - Create 'working_directories' collection in database.
> 
>   - Add a check to repository_working_dir [2] and the rest of *_working_dir
>   methods to determine if this method is called from a task.  If it is, add
>   the task id, worker id, and path to 'working_directories' collection.
> 
>   - Create a period task that will check for any tasks in final state with
>   existing working directories and delete them.  This will need to take into
>   account that the directories exist on a specific worker.

This may be complicated. The directory exists on a specific machine, which may have several workers. Dispatching the cleanup task to a specific worker or specific machine may be difficult.

Here's another option that wouldn't require a DB collection. Assume that /var/cache/pulp/ will actually be the value of the "working_directory" setting.

When a worker starts, it creates the directory /var/cache/pulp/<worker_id>/. If it already exists, any content gets blown away. On exit, the whole directory named <worker_id> gets deleted.

If a task requests temporary storage, the worker creates /var/cache/pulp/<worker_id>/<task_id>/ and makes a new temp directory within that. Multiple directories can be requested per task. When the task completes, the worker blows away the entire directory named <task_id>.

I think that covers all of our bases. Thoughts?




More information about the Pulp-list mailing list