lib/fog/linode/requests/compute/linode_disk_list.rb
module Fog
module Compute
class Linode
class Real
def linode_disk_list(linode_id, disk_id=nil)
options = {}
if disk_id
options.merge!(:diskId => disk_id)
end
request(
:expects => 200,
:method => 'GET',
:query => { :api_action => 'linode.disk.list', :linodeId => linode_id }.merge!(options)
)
end
end
class Mock
def linode_disk_list(linode_id, disk_id=nil)
response = Excon::Response.new
response.status = 200
body = {
"ERRORARRAY" => [],
"ACTION" => "linode.disk.list"
}
if disk_id
mock_disk = create_mock_disk(linode_id, disk_id)
response.body = body.merge("DATA" => [mock_disk])
else
mock_disks = []
2.times do
disk_id = rand(10000..99999)
mock_disks << create_mock_disk(linode_id, disk_id)
end
response.body = body.merge("DATA" => mock_disks)
end
response
end
private
def create_mock_disk(linode_id, disk_id)
{
"CREATE_DT" => "2012-02-29 12:55:29.0",
"DISKID" => disk_id,
"ISREADONLY" => 0,
"LABEL" => "test_#{linode_id}_main",
"LINODEID" => linode_id,
"SIZE" => 39936,
"STATUS" => 1,
"TYPE" => "ext3",
"UPDATE_DT" => "2012-02-29 12:55:53.0"
}
end
end
end
end
end