Goal
My goal today is to finish implementing the plan from last time.
Plan
See last time.
Notes
I seem to have made a good plan last time.
Well, not all the way, though. The trait I specified for the client repository is fine, but could have a method for opening a client by name:
fn open_client(&self, engine: &Engine, wanted: &str) -> Result<(Id, ClientChunk>), ClientRepositoryError>{...}In addition, the type only deals with client and credential chunks, not data chunks. That's also fine, but it needs a way to access the underlying repository for data chunks. That's a bit ugly, though, but I can't think of a better way in this heat.
Further, changing from the
BackupRepositorytype to a trait of the same name is too big a change in one step. I'll split it into- add
trait BackupRepositorywithout deleting the type - convert everything to use the trait
- delete the type
- add
This got me a little further, but then I ran into another mismatch between how I originally implemented repository access and how I'm doing it now.
I have a command to list all chunks. I'm not sure I want that, going forward. I'll disable it. The problem is it'll be a heavy operation on a large repository, and I'm not currently sure it makes sense. Dropping it.
There's a command to show the path to a chunk. That makes no real sense for non-local repositories and the repository interface doesn't support it. It's also a leaky abstraction. Dropped that, too.
Code now uses new types and traits for accessing a repository. It's not yet quite there: there's a couple of places where a local repository is still assumed, and there's not support for using a remote repository. I'll fix these next time, but merging the current state, because it's already a big step forward.
Summary
- I ran over time, because I'm slow when the temperatures are too high, but I made good progress. I have things to fix, but still.
Support?
If you'd like to fund Obnam development, see my funding page. My high level goal is described on the architecture page. What is most important about backup software to you?