2009-05-18 03:13:06 -04:00
|
|
|
require 'spec'
|
2009-10-03 18:43:19 -04:00
|
|
|
require 'open-uri'
|
2009-05-18 03:13:06 -04:00
|
|
|
|
2009-07-15 14:53:32 -04:00
|
|
|
current_directory = File.dirname(__FILE__)
|
2009-08-10 11:30:28 -04:00
|
|
|
require "#{current_directory}/../lib/fog"
|
2009-09-15 00:14:34 -04:00
|
|
|
# Fog.mock!
|
2009-05-19 02:06:49 -04:00
|
|
|
|
2009-07-13 22:25:44 -04:00
|
|
|
def credentials
|
|
|
|
@credentials ||= begin
|
2009-10-02 02:25:29 -04:00
|
|
|
credentials_path = File.expand_path('~/.fog')
|
2009-07-13 22:25:44 -04:00
|
|
|
credentials_data = File.open(credentials_path).read
|
|
|
|
YAML.load(credentials_data)
|
|
|
|
end
|
|
|
|
end
|
2009-05-19 02:06:49 -04:00
|
|
|
|
2009-08-18 01:39:44 -04:00
|
|
|
def ec2
|
|
|
|
Fog::AWS::EC2.new(
|
2009-10-10 20:25:59 -04:00
|
|
|
:aws_access_key_id => credentials[:aws_access_key_id],
|
|
|
|
:aws_secret_access_key => credentials[:aws_secret_access_key]
|
2009-08-18 01:39:44 -04:00
|
|
|
)
|
|
|
|
end
|
2009-08-12 00:40:59 -04:00
|
|
|
|
2009-08-18 01:39:44 -04:00
|
|
|
def eu_s3
|
|
|
|
Fog::AWS::S3.new(
|
2009-10-10 20:25:59 -04:00
|
|
|
:aws_access_key_id => credentials[:aws_access_key_id],
|
|
|
|
:aws_secret_access_key => credentials[:aws_secret_access_key],
|
2009-08-18 01:39:44 -04:00
|
|
|
:host => 's3-external-3.amazonaws.com'
|
|
|
|
)
|
|
|
|
end
|
2009-08-12 00:40:59 -04:00
|
|
|
|
2009-10-11 16:37:25 -04:00
|
|
|
def files
|
|
|
|
Fog::Rackspace::Files.new(
|
|
|
|
:rackspace_api_key => credentials[:rackspace_api_key],
|
|
|
|
:rackspace_username => credentials[:rackspace_username]
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
2009-08-18 01:39:44 -04:00
|
|
|
def sdb
|
|
|
|
Fog::AWS::SimpleDB.new(
|
2009-10-10 20:25:59 -04:00
|
|
|
:aws_access_key_id => credentials[:aws_access_key_id],
|
|
|
|
:aws_secret_access_key => credentials[:aws_secret_access_key]
|
2009-08-18 01:39:44 -04:00
|
|
|
)
|
|
|
|
end
|
2009-08-12 00:40:59 -04:00
|
|
|
|
2009-10-10 22:05:17 -04:00
|
|
|
def servers
|
|
|
|
Fog::Rackspace::Servers.new(
|
|
|
|
:rackspace_api_key => credentials[:rackspace_api_key],
|
|
|
|
:rackspace_username => credentials[:rackspace_username]
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
2009-08-18 01:39:44 -04:00
|
|
|
def s3
|
|
|
|
Fog::AWS::S3.new(
|
2009-10-10 20:25:59 -04:00
|
|
|
:aws_access_key_id => credentials[:aws_access_key_id],
|
|
|
|
:aws_secret_access_key => credentials[:aws_secret_access_key]
|
2009-08-18 01:39:44 -04:00
|
|
|
)
|
2009-07-22 22:28:53 -04:00
|
|
|
end
|
2009-05-19 02:06:49 -04:00
|
|
|
|
2009-07-25 21:05:49 -04:00
|
|
|
def eventually(max_delay = 16, &block)
|
|
|
|
delays = [0]
|
|
|
|
delay_step = 1
|
|
|
|
total = 0
|
|
|
|
while true
|
|
|
|
delay = 1
|
|
|
|
delay_step.times do
|
|
|
|
delay *= 2
|
|
|
|
end
|
|
|
|
delays << delay
|
|
|
|
delay_step += 1
|
|
|
|
break if delay >= max_delay
|
|
|
|
end
|
|
|
|
delays.each do |delay|
|
2009-07-16 02:37:22 -04:00
|
|
|
begin
|
|
|
|
sleep(delay)
|
|
|
|
yield
|
|
|
|
break
|
2009-07-19 19:06:33 -04:00
|
|
|
rescue => error
|
2009-07-25 21:05:49 -04:00
|
|
|
raise error if delay >= max_delay
|
2009-07-16 02:37:22 -04:00
|
|
|
end
|
2009-05-19 02:06:49 -04:00
|
|
|
end
|
2009-10-22 12:42:02 -04:00
|
|
|
end
|
|
|
|
|
2009-10-23 15:11:58 -04:00
|
|
|
unless defined?(GENTOO_AMI)
|
|
|
|
GENTOO_AMI = 'ami-5ee70037'
|
|
|
|
end
|