1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/linode/requests/compute/image_list.rb
2014-09-03 02:01:30 -04:00

64 lines
1.8 KiB
Ruby

module Fog
module Compute
class Linode
class Real
def image_list(pending=nil, image_id=nil)
options = {}
if pending
options.merge!(:pending => pending)
end
if image_id
options.merge!(:imageId => image_id)
end
request(
:expects => 200,
:method => 'GET',
:query => { :api_action => 'image.list' }.merge!(options)
)
end
end
class Mock
def image_list(pending=nil, image_id=nil)
response = Excon::Response.new
response.status = 200
body = {
"ERRORARRAY" => [],
"ACTION" => "image.list"
}
if image_id
mock_image = create_mock_image(image_id)
response.body = body.merge("DATA" => [mock_image])
else
mock_images = []
rand(1..3).times do
image_id = Fog::Mock.random_numbers(5)
mock_images << create_mock_image(image_id)
end
response.body = body.merge("DATA" => mock_images)
end
response
end
private
def create_mock_image(image_id, status='available')
size = rand(1...999999)
{
"LAST_USED_DT" => "2014-07-29 12:55:29.0",
"DESCRIPTION" => "Fog Mock Linode Image #{image_id}",
"LABEL" => "test_#{image_id}_image",
"STATUS" => status,
"TYPE" => "manual",
"ISPUBLIC" => rand(0...1),
"CREATE_DT" => "2014-06-29 5:39:19.0",
"MINSIZE" => Fog::Mock.random_numbers(5),
"FS_TYPE" => "ext4",
"CREATOR" => "test_username",
"IMAGEID" => image_id
}
end
end
end
end
end