mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
b14c25d3af
This avoids forcing iteration through the flavor list and calling get on each member to obtain the full details of flavors.
40 lines
1.5 KiB
Ruby
40 lines
1.5 KiB
Ruby
require 'fog/core/collection'
|
|
require 'fog/rackspace/models/compute_v2/flavor'
|
|
|
|
module Fog
|
|
module Compute
|
|
class RackspaceV2
|
|
class Flavors < Fog::Collection
|
|
|
|
model Fog::Compute::RackspaceV2::Flavor
|
|
|
|
# Retrieves information for all available flavors
|
|
# @return [Fog::Compute::RackspaceV2::Flavors] list of flavors
|
|
# @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
|
|
# @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
|
|
# @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
|
|
# @raise [Fog::Compute::RackspaceV2::ServiceError]
|
|
# @note Fog's currentl implementation only returns 1000 flavors.
|
|
def all
|
|
data = service.list_flavors_detail.body['flavors']
|
|
load(data)
|
|
end
|
|
|
|
# Retrieve image
|
|
# @param [String] flavor_id id of flavor
|
|
# @return [Fog::Compute::RackspaceV2::Flavor] flavor
|
|
# @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
|
|
# @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
|
|
# @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
|
|
# @raise [Fog::Compute::RackspaceV2::ServiceError]
|
|
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Get_Flavor_Details-d1e4317.html
|
|
def get(flavor_id)
|
|
data = service.get_flavor(flavor_id).body['flavor']
|
|
new(data)
|
|
rescue Fog::Compute::RackspaceV2::NotFound
|
|
nil
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|