Skip to content

Implement actual removal from storage(s)

This MR is probably best reviewed by commit.

First, we split removal from the cli module into a new operations module and adjust CLI, logging, output and tests accordingly. The core removal operation is implemented in a Remover helper class.

Once this is done, implementing actual removal can be done with proper unit testing in the Remover.remove() method.

When calling this method, the CLI will make sure to restore the just-created recovery bundle in case it errors.

Remover.remove() is then modified to verify if any new references have been added to the objects we just removed. Unless they are also coming from objects we’ve just removed, we raise an exception. This will make the CLI roll back from the recovery bundle if this happens.

Finally, we add support from removal from multiple storage.

Edited by Jérémy Bobbio (Lunar)

Merge request reports