Story #9591

[FUSE] Undelete collections by moving them out of the TrashDirectory

Added by Brett Smith almost 5 years ago. Updated over 4 years ago.

Assigned To:
Tom Morris
Target version:
Start date:
Due date:
% Done:


Estimated time:
Story points:


Basic idea: When FUSE is mounted --read-write, a user can undelete a collection by moving the collection directory from anywhere under the TrashDirectory to a ProjectDirectory outside the TrashDirectory. rename methods see this operation and update the collection to set its expires_at attribute to null, and update the owner_uuid and name if appropriate.

#9590 says that the TrashDirectory and everything under it should be read-only. This story adds some nuance to that rule: only collection directories under the TrashDirectory, and their contents, should be read-only. The TrashDirectory itself and all ProjectDirectories under it should be read-write, to indicate to the user that they can do (some) write operations on the contents, like this move.

Moving the collection directory anywhere else (like somewhere else under TrashDirectory, or to the mount root when it's not a ProjectDirectory) is still an error.

If updating the API record fails, that should be reflected as an I/O error from the rename operation.

Related issues

Related to Arvados - Story #9278: [Crunch2] Document/fix handling of collections with non-nil expires_at fieldIn Progress06/01/2016


#1 Updated by Brett Smith almost 5 years ago

I wanted to write it down for discussion, but this is the UI proposal I feel least sure of. Requiring the user to move directories is not ideal: if all they want to do at the API level is "set expires_at to null," they have to re-find the owning project elsewhere in the mount, and move the collection there.

Other ideas have their own problems, though. For example, allowing undelete by touching or writing to a special file is harder to discover, and doesn't follow filesystem idioms as well. And if the user does it while they're inside the collection directory under TrashDirectory, suddenly their working directory is gone. That's not a fatal problem, but it seems unfortunate.

#2 Updated by Tom Morris over 4 years ago

  • Assigned To changed from Brett Smith to Tom Morris

#3 Updated by Tom Morris over 4 years ago

  • Target version set to Arvados Future Sprints

Also available in: Atom PDF