Managing the puppet filebucket?

We're implementing Puppet and hoping to use the filebucket to replace an in-house file change tracker. The physical layout of the filebucket into a hashed directory tree and the lack of "which client" metadata on the master-side file bucket make this a bit challenging.

I've found the filebucket utility that ships with puppet, and the quick-and-dirty indexing recipe at http://reductivelabs.com/trac/puppet/wiki/Recipes/FileBucket. I can see it wouldn't be a huge deal to use those as building blocks for a reasonable management interface. But rather than reinvent the wheel ...

Anyone got anything better?


Sadly, there's not a good solution in this space yet. The community would welcome anything you can whip up, or you can call Reductive Labs and give them some consulting business. I looked at doing this awhile back and found it to be a little more challenging than I had time to tackle.

Feel free to hit up the IRC channel (#puppet on Freenode) - there are a lot of really helpful folks there who would be glad to offer advice/assistance, especially if it leads to a tool that is contributed to the Puppet ecosystem.


For the record, this is out there now in puppet 2.7 with the 'puppet filebucket' subcommand:

puppet filebucket <mode> [-h|--help] [-V|--version] [-d|--debug]
[-v|--verbose] [-l|--local] [-r|--remote] [-s|--server <server>]
[-b|--bucket <directory>] <file> <file> ...

Puppet filebucket can operate in three modes, with only one mode per call:

backup:
 Send one or more files to the specified file bucket. Each sent file is
 printed with its resulting md5 sum.

get:
 Return the text associated with an md5 sum. The text is printed to
 stdout, and only one file can be retrieved at a time.

restore:
 Given a file path and an md5 sum, store the content associated with
 the sum into the specified file path. You can specify an entirely new
 path to this argument; you are not restricted to restoring the content
 to its original location.

During the Velocity 2008 Conference Luke Kanies mentioned that Reductive Labs would probably be developing a more user-friendly interface for the filebucket. As currently implemented it is rather difficult to lookup the md5 checksum for the change you are interested in and revert to that version of the file. Apparently this is on their development roadmap and it seemed like a feature that customers might pay for and therefore a source of revenue for their company. (They were trying to find a way to pay the bills...)