Sha256: 306e8885722ccb30d0445a0b101d9f864a164410329e0055a2a597d3900e8b90

Contents?: true

Size: 1.57 KB

Versions: 5

Compression:

Stored size: 1.57 KB

Contents

require 'fog/digitalocean/models/paging_collection'

module Fog
  module Compute
    class DigitalOcean
      class Volumes < Fog::Compute::DigitalOcean::PagingCollection
        model Fog::Compute::DigitalOcean::Volume

        # Retrieves volumes
        # @return [Fog::Compute::DigitalOcean::Volume]
        # @raise [Fog::Compute::DigitalOcean::NotFound] - HTTP 404
        # @raise [Fog::Compute::DigitalOcean::BadRequest] - HTTP 400
        # @raise [Fog::Compute::DigitalOcean::InternalServerError] - HTTP 500
        # @raise [Fog::Compute::DigitalOcean::ServiceError]
        # @see https://developers.digitalocean.com/documentation/v2/#list-all-images
        def all(filters = {})
          data = service.list_volumes(filters)
          links = data.body["links"]
          get_paged_links(links) 
          volumes = data.body["volumes"]
          load(volumes)
        end

        # Retrieves volume
        # @param [String] id for volume to be returned
        # @return [Fog::Compute::DigitalOcean:Image]
        # @raise [Fog::Compute::DigitalOcean::NotFound] - HTTP 404
        # @raise [Fog::Compute::DigitalOcean::BadRequest] - HTTP 400
        # @raise [Fog::Compute::DigitalOcean::InternalServerError] - HTTP 500
        # @raise [Fog::Compute::DigitalOcean::ServiceError]
        # @see https://developers.digitalocean.com/documentation/v2/#retrieve-an-existing-image-by-id
        def get(id)
          volume = service.get_volume_details(id).body['volume']
          new(volume) if volume
        rescue Fog::Errors::NotFound
          nil
        end

      end
    end
  end
end

Version data entries

5 entries across 3 versions & 2 rubygems

Version Path
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-digitalocean-0.3.0/lib/fog/digitalocean/models/compute/volumes.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-digitalocean-0.3.0/lib/fog/digitalocean/models/compute/volumes.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-digitalocean-0.3.0/lib/fog/digitalocean/models/compute/volumes.rb
fog-digitalocean-0.3.0 lib/fog/digitalocean/models/compute/volumes.rb
fog-digitalocean-0.2.0 lib/fog/digitalocean/models/compute/volumes.rb