2009-08-10 11:30:28 -04:00
module Fog
module AWS
def self . reload
2009-09-14 00:24:22 -04:00
load " fog/aws/ec2.rb "
load " fog/aws/simpledb.rb "
load " fog/aws/s3.rb "
2009-08-10 11:30:28 -04:00
end
2010-01-31 17:07:26 -05:00
def self . indexed_param ( key , values )
params = { }
[ * values ] . each_with_index do | value , index |
params [ " #{ key } . #{ index } " ] = value
end
params
end
2009-08-14 12:18:55 -04:00
if Fog . mocking?
srand ( Time . now . to_i )
class Mock
2009-08-22 01:04:12 -04:00
def self . availability_zone
" us-east-1 " << random_selection ( 'abcd' , 1 )
end
2009-09-08 00:25:50 -04:00
def self . box_usage
sprintf ( " %0.10f " , rand / 100 ) . to_f
end
2009-09-11 23:47:32 -04:00
def self . console_output
'This is my console. There are many like it, but this one is mine. My console is my best friend. It is my life. I must master it as I master my life. My console, without me, is useless. Without my console, I am useless.'
end
2009-08-14 13:35:16 -04:00
def self . etag
hex ( 32 )
end
2009-09-12 14:58:05 -04:00
def self . image
path = [ ]
( rand ( 3 ) + 2 ) . times do
path << letters ( rand ( 9 ) + 8 )
end
{
" imageOwnerId " = > letters ( rand ( 5 ) + 4 ) ,
" productCodes " = > [ ] ,
" kernelId " = > kernel_id ,
" ramdiskId " = > ramdisk_id ,
" imageState " = > " available " ,
" imageId " = > image_id ,
" architecture " = > " i386 " ,
" isPublic " = > true ,
" imageLocation " = > path . join ( '/' ) ,
" imageType " = > " machine "
}
end
def self . image_id
" ami- #{ hex ( 8 ) } "
end
2009-08-17 01:19:35 -04:00
def self . key_fingerprint
fingerprint = [ ]
20 . times do
fingerprint << hex ( 2 )
end
fingerprint . join ( ':' )
end
2009-08-22 01:04:12 -04:00
def self . image_id
" ami- #{ hex ( 8 ) } "
end
2009-08-14 13:35:16 -04:00
def self . instance_id
2009-08-22 01:04:12 -04:00
" i- #{ hex ( 8 ) } "
2009-08-14 13:35:16 -04:00
end
def self . ip_address
ip = [ ]
4 . times do
ip << numbers ( rand ( 3 ) + 1 ) . to_i . to_s # remove leading 0
end
ip . join ( '.' )
end
2009-08-22 01:04:12 -04:00
def self . kernel_id
" aki- #{ hex ( 8 ) } "
end
2009-08-17 01:19:35 -04:00
def self . key_material
key_material = [ '-----BEGIN RSA PRIVATE KEY-----' ]
20 . times do
key_material << base64 ( 76 )
end
key_material << base64 ( 67 ) + '='
key_material << '-----END RSA PRIVATE KEY-----'
key_material . join ( " \n " )
end
2009-08-17 12:45:00 -04:00
def self . owner_id
numbers ( 12 )
end
2009-09-12 14:58:05 -04:00
def self . ramdisk_id
" ari- #{ hex ( 8 ) } "
end
2009-08-14 13:35:16 -04:00
def self . request_id
request_id = [ ]
request_id << hex ( 8 )
3 . times do
request_id << hex ( 4 )
end
request_id << hex ( 12 )
request_id . join ( '-' )
end
2009-08-22 01:04:12 -04:00
def self . reservation_id
" r- #{ hex ( 8 ) } "
end
2009-08-15 18:19:07 -04:00
def self . snapshot_id
" snap- #{ hex ( 8 ) } "
end
2009-08-14 13:35:16 -04:00
def self . volume_id
2009-08-15 18:19:07 -04:00
" vol- #{ hex ( 8 ) } "
2009-08-14 13:35:16 -04:00
end
private
def self . random_selection ( characters , length )
selection = ''
length . times do
position = rand ( characters . length )
selection << characters [ position .. position ]
end
selection
end
2009-08-14 12:18:55 -04:00
def self . letters ( length )
random_selection (
'abcdefghijklmnopqrstuvwxyz' ,
length
)
end
def self . numbers ( length )
random_selection (
'0123456789' ,
length
)
end
def self . hex ( length )
random_selection (
'0123456789abcdef' ,
length
)
end
2009-08-17 01:19:35 -04:00
def self . base64 ( length )
random_selection (
2009-09-12 14:58:05 -04:00
" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ " ,
2009-08-17 01:19:35 -04:00
length
)
end
2009-08-14 12:18:55 -04:00
end
end
2009-08-10 11:30:28 -04:00
end
end
2009-08-17 18:11:53 -04:00
Fog :: AWS . reload