mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
Merge pull request #2093 from cwuest/rackspace_compute_v2_flavors_detail
[rackspace|compute_v2] Flavor list returns details
This commit is contained in:
commit
58a5cb438d
7 changed files with 106 additions and 4 deletions
|
@ -76,10 +76,12 @@ module Fog
|
|||
|
||||
request :create_image
|
||||
request :list_images
|
||||
request :list_images_detail
|
||||
request :get_image
|
||||
request :delete_image
|
||||
|
||||
request :list_flavors
|
||||
request :list_flavors_detail
|
||||
request :get_flavor
|
||||
|
||||
request :attach_volume
|
||||
|
|
|
@ -15,9 +15,8 @@ module Fog
|
|||
# @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
|
||||
# @raise [Fog::Compute::RackspaceV2::ServiceError]
|
||||
# @note Fog's currentl implementation only returns 1000 flavors.
|
||||
# @note Fog does not retrieve all flavor details. Please use #get to retrieve all details for a specific flavor.
|
||||
def all
|
||||
data = service.list_flavors.body['flavors']
|
||||
data = service.list_flavors_detail.body['flavors']
|
||||
load(data)
|
||||
end
|
||||
|
||||
|
|
|
@ -39,7 +39,6 @@ module Fog
|
|||
# @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
|
||||
# @raise [Fog::Compute::RackspaceV2::ServiceError]
|
||||
# @note Fog's current implementation only returns 1000 images.
|
||||
# @note Fog does not retrieve all image details. Please use get to retrieve all details for a specific image.
|
||||
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Images-d1e4435.html
|
||||
def all(options = {})
|
||||
options = {
|
||||
|
@ -51,7 +50,7 @@ module Fog
|
|||
}.merge!(options)
|
||||
merge_attributes(options)
|
||||
|
||||
data = service.list_images(options).body['images']
|
||||
data = service.list_images_detail(options).body['images']
|
||||
load(data)
|
||||
end
|
||||
|
||||
|
|
39
lib/fog/rackspace/requests/compute_v2/list_flavors_detail.rb
Normal file
39
lib/fog/rackspace/requests/compute_v2/list_flavors_detail.rb
Normal file
|
@ -0,0 +1,39 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class RackspaceV2
|
||||
class Real
|
||||
|
||||
# Retrieves a list of flavors
|
||||
# @return [Excon::Response] response:
|
||||
# * body [Hash]:
|
||||
# * flavors [Array]:
|
||||
# * [Hash]:
|
||||
# * id [String] - flavor id
|
||||
# * links [Array] - flavor links
|
||||
# * name [String] - flavor name
|
||||
# * ram [Fixnum] - flavor ram
|
||||
# * disk [Fixnum] - flavor disk
|
||||
# * vcpus [Fixnum] - flavor vcpus
|
||||
# @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/List_Flavors-d1e4188.html
|
||||
def list_flavors_detail
|
||||
request(
|
||||
:expects => [200, 203],
|
||||
:method => 'GET',
|
||||
:path => 'flavors/detail'
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
class Mock
|
||||
def list_flavors_detail
|
||||
flavors = self.data[:flavors].values.map { |f| Fog::Rackspace::MockData.keep(f, 'id', 'name', 'links') }
|
||||
response(:body => {"flavors" => flavors})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
53
lib/fog/rackspace/requests/compute_v2/list_images_detail.rb
Normal file
53
lib/fog/rackspace/requests/compute_v2/list_images_detail.rb
Normal file
|
@ -0,0 +1,53 @@
|
|||
module Fog
|
||||
module Compute
|
||||
class RackspaceV2
|
||||
class Real
|
||||
|
||||
# Retrieves a list of images
|
||||
# ==== Parameters
|
||||
# * options<~String>:
|
||||
# * 'name'<~String> - Filters the list of images by image name
|
||||
# * 'limit'<~String> - Maximum number of objects to return
|
||||
# * 'marker'<~String> - Only return objects whose name is greater than marker
|
||||
# * 'status'<~String> - Filters the list of images by status
|
||||
# * 'type'<~String> - Filters base Rackspace images or anyn custom server images that have been created
|
||||
#
|
||||
# @return [Excon::Response] response:
|
||||
# * body [Hash]:
|
||||
# * images [Array]:
|
||||
# * [Hash]:
|
||||
# * id [String] - image id
|
||||
# * links [Array] - image links
|
||||
# * name [String] - image name
|
||||
# * minDisk [Fixnum] - image minimum disk required
|
||||
# * minRam [Fixnum] - image minimum ram required
|
||||
# * created [String] - image creation date (ISO 8601 format)
|
||||
# * updated [String] - date of most recent image update
|
||||
# * state [String] - image status (e.g. ACTIVE, SAVING, ERROR)
|
||||
# * progress [Fixnum] - image saving progress
|
||||
#
|
||||
# @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/List_Images-d1e4435.html
|
||||
def list_images_detail(options = {})
|
||||
options = options.reject {|key, value| value.nil?}
|
||||
request(
|
||||
:expects => [200, 203],
|
||||
:method => 'GET',
|
||||
:path => 'images/detail',
|
||||
:query => {'format' => 'json'}.merge!(options)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
class Mock
|
||||
def list_images_detail(options = {})
|
||||
images = self.data[:images].values
|
||||
response(:body => {"images" => images})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -34,6 +34,12 @@ Shindo.tests('Fog::Compute::RackspaceV2 | flavor_tests', ['rackspace']) do
|
|||
body
|
||||
end
|
||||
|
||||
tests('#list_flavors_detail').formats(list_flavor_format) do
|
||||
body = service.list_flavors_detail.body
|
||||
flavor_id = body['flavors'][0]['id']
|
||||
body
|
||||
end
|
||||
|
||||
tests('#get_flavor').formats(get_flavor_format) do
|
||||
service.get_flavor(flavor_id).body
|
||||
end
|
||||
|
|
|
@ -48,6 +48,10 @@ Shindo.tests('Fog::Compute::RackspaceV2 | image_tests', ['rackspace']) do
|
|||
service.list_images.body
|
||||
end
|
||||
|
||||
tests('#list_images_detail').formats(list_image_format) do
|
||||
service.list_images_detail.body
|
||||
end
|
||||
|
||||
tests('#get_image').formats(get_image_format, false) do
|
||||
service.get_image(@image_id).body
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue