I quite like this. It'd be quite sweet if there was a dry run mode that validated the arguments for an action without doing it or if there was a validate function one could call.

I actually do wrap the libcloud API with a layer that can do dry-runs in one of my tools.

If you were a defensive coder consuming libcloud i guess what you might like to do is first of all inspect the current state of your cloud app and work out what actions you want to perform. Then validate your inputs as much as you can. Then actually try and make the changes. Obviously you still need to code for the worst case, but it's a lot nicer if you can detect the faulty container name before you start making lots of changes to other parts of a system.

A half way house might be some standard way of collecting and organising information like the AZURE_CONTAINER regex within libcloud but don't enforce it? Some sort of .validators dictionary on the driver?