This is how we can use multiple providers to allow installing databases. Provider choice COULD be a node attribute, but the database recipe REALLY shouldn't be used directly except in testing. Consumers should define their own database recipe that handles getting their credentials securely and then calls the database lwrp with appropriate data.

I added an "extras" parameter on the lwrp so that consumers can pass arbitrary data to their own custom providers in their wrapper cookbooks. If there is extra configuration needed for Providers that come with this cookbook (maybe Postgres will need something extra) it should probably go directly on the resource and not in the "extras" hash.

https://gist.github.com/andrewGarson/5313242