As a dotmesh user, I want to know if my commit data is valid so that I don't have to understand weird errors during snapshotting.
If you give dotmesh an RPC call to Commit and pass it keys which contain invalid zfs values, like Uppercase, % etc, it will fail with the error "failed-snapshotting" and something about "cannot modify this value" which is zfs for "I don't like those characters in that key you gave me".
We should fix this by:
[ ] having dotmesh reject the call explicitly upfront, and indicate which keys are not zfs-compliant
[ ] having dotmesh encode and decode the keys in a similar way to url encoding - only encode the characters which are not zfs compliant.
The former should be enough to avoid strange errors in future, the latter should mean users don't need to care what zfs wants
User requirement
As a dotmesh user, I want to know if my commit data is valid so that I don't have to understand weird errors during snapshotting.
If you give dotmesh an RPC call to Commit and pass it keys which contain invalid zfs values, like Uppercase, % etc, it will fail with the error "failed-snapshotting" and something about "cannot modify this value" which is zfs for "I don't like those characters in that key you gave me".
We should fix this by:
The former should be enough to avoid strange errors in future, the latter should mean users don't need to care what zfs wants