mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[rackspace|compute_v2] Image list returns details
Ensure consistency with detailed Flavor lists
This commit is contained in:
parent
b14c25d3af
commit
c9b2fed02d
3 changed files with 55 additions and 2 deletions
|
@ -76,6 +76,7 @@ module Fog
|
|||
|
||||
request :create_image
|
||||
request :list_images
|
||||
request :list_images_detail
|
||||
request :get_image
|
||||
request :delete_image
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
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
|
Loading…
Add table
Reference in a new issue