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/avail_distributions.rb
2012-05-17 11:31:15 -07:00

67 lines
1.8 KiB
Ruby

module Fog
module Compute
class Linode
class Real
# Get available distributions
#
# ==== Parameters
# * distributionId<~Integer>: id to limit results to
#
# ==== Returns
# * response<~Excon::Response>:
# * body<~Array>:
# TODO: docs
def avail_distributions(distribution_id=nil)
options = {}
if distribution_id
options.merge!(:distributionId => distribution_id)
end
request(
:expects => 200,
:method => 'GET',
:query => { :api_action => 'avail.distributions' }.merge!(options)
)
end
end
class Mock
def avail_distributions(distribution_id=nil)
response = Excon::Response.new
response.status = 200
body = {
"ERRORARRAY" => [],
"ACTION" => "avail.distributions"
}
if distribution_id
mock_distribution = create_mock_distribution(distribution_id)
response.body = body.merge("DATA" => [mock_distribution])
else
mock_distributions = []
10.times do
distribution_id = rand(1..99)
mock_distributions << create_mock_distribution(distribution_id)
end
response.body = body.merge("DATA" => mock_distributions)
end
response
end
private
def create_mock_distribution(distribution_id)
{
"CREATE_DT" => "2012-04-26 17:25:16.0",
"DISTRIBUTIONID" => distribution_id,
"IS64BIT" => 0,
"LABEL" => "Ubuntu 12.04 LTS",
"MINIMAGESIZE" => 600,
"REQUIRESPVOPSKERNEL" => 1
}
end
end
end
end
end