Implement a CLI tool that allows for manually triggering repository verification
Praefect will soon have a background goroutine for verifying repository metadata through #4080 (closed). Periodically verifying repositories would alert admins to problems that have occurred during normal operations. Administrators may want to manually trigger background verification when they suspect the metadata may be out of sync to speed up the process. For example, if the periodic verification happened every three days and the admin knows that there were some problems with the disks just now, they'd likely want to verify everything is still fine in the repositories.
We should add a sub-command in Praefect to allow marking repositories as needing background verification. For example:
praefect reverify -virtual-storage <virtual_storage>
would mark all repositories for reverification on a virtual storage.
praefect reverify -virtual-storage <virtual_storage> -storage <storage>
would mark all replicas on the given storage for reverification.
praefect reverify -repository-id <id>
would mark replicas of a specific repository for reverification.
The implementation should likely just mark verified_at = NULL
in the database as described in the implementation of #4080 (closed). verified_at is null
is prioritized by the background workers doing the verification and this would allow for the work to happen in the background without the client needing to stay connected.