Goal

  • My goal for today is to implement rudimentary restore of a backup.

Plan

  • Fix the client to get the client key using credentials, by default. This is not strictly related to restores, but makes manual testing easier, and that's worth it.

  • Implement obnam restore ID, where ID is the chunk ID of a backup chunk.

  • If there's time, add a verification scenario for making a backup and restoring that.

Notes

  • I have had code to get the client key using configured credentials for a long time, I've just not used it. Making use of it was easy enough.

  • Restoring is also not difficult, as such, but I realized the code is horribly not-fun to read in a bad way. I'm going to need to build abstractions to make it nicer. But first I'll make it work at all. I'll need time to design good abstractions that work for more than today's challenges. I just did some of this work, but I'll need to get back to it. It's crucial that such foundational helper layers are ergonomic.

  • Oops, it seems the backup logic doesn't actually store the IDs of file data chunks in the files database. In fact, there is no place to store them in the database. I'll fix that later. Today is running long already.

Summary

  • Obnam can almost restore a backup now. There's a bit of bug fixing to do to get there, but that should be doable next session.

  • There's further need for some refactoring to build convenient, comfortable, ergonomic abstractions. I'll need to get back to that soon.

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?