fog/fog — pull request #1134 by zsiddique (2012-09-08 01:04:36+00:00)
Title: [AWS|Compute] Add the ablity to pass :version and use newer AWS API

So the main gist of the change is the ability to use :version so you can use newer AWS API. This is useful for new features AWS add that you can use without any fog changes like the new ebs_optimzed flag. Not having this feature has caused a patch to Opscode Knife to be blocked till a new fog release, http://tickets.opscode.com/browse/KNIFE_EC2-79

So now you can write code like this:
connection = Fog::Compute.new({
:provider => 'AWS',
:aws_access_key_id => 'XXXXXXXX',
:aws_secret_access_key => 'XXXXXXXXXX',
:region => 'us-west-1',
:version => '2012-07-20'
})

server = connection.servers.create({:flavor_id => 'm1.large',:ebs_optimized => true})

But to get this change to work I was required to modify /fog/compute.rb as it turned out some bad code was added that stripped out :version since it was used for Rackspace version switching. I pushed that code inside the case statement for when Rackspace is used as I see no one else uses :versions in the way Rackspace does.

I dont have a Rackspace Cloud Server account right now so I cant test but I am pretty confident on a pure code level it is safe.

Also during compute testing I found that the test had a deleted Window AMI used and this caused the test to hang for me. I updated the AMI to the latest but I see a few other failures not related to the code I touched so I left it alone. Looks like the test code can use some TLC.

And lastest, where is my fog t-shirt from my last commits ;)