* Make sure the EC2 backend does the Provision::API * Add a builder to EC2 backend so that it uses the right image * Fix some typos and missing variables * Add stubby resize() method to conform to the API * Move checking for the ENV variables up to the top level of the configuration * Make sure that the Provision class creates a new Config object to pass through * Remove builders from ::Provision::API since we're passing that in now * Make Provision::Config mutable for now * Fix up the tests so that we pass in all the correct data * Remove extraneous and stale test directory Conflicts: t/Provision/01-EC2/01-basic.t
* Move from Provision composing Roles to Provision using delegates Using delegation over composition makes it easier to understand the model of what is going on. It also will make configuration easier in the long run as you can use Bread::Board or other pieces to assemble your application from a configuration file. * Promote Configuration options to a First Class Object that is passed through I'm not particularly happy with this one, but it makes passing through (and verifying) the configuration data much easier. The existing code looked like it had waffled between this style and using first-class methods on $self. * Create a Role to define Provisioning Backend API This allows us to keep the API we had set up before, where Oyster::Provision has create/delete/resize methods, but they are now delegated to backend objects rather composed directly into Oyster::Provision via Roles. This also means that creating a new backend class is simply a matter of writing to the API. * Move Common backend logic into the API The API had some common behaviors that came with properly initializing the object. Since this behavior was identical, and should be across all backends it makes sense to put it in a common location. * Create EC2 specific tests Time to start testing that we can actually provision something. I haven't actually run this test yet since doing so will require paying for AWS for an hour. I plan on doing this soon.