class Rackspace::StorageApi

Attributes

api[R]

Public Class Methods

new(rackspace_credentials) click to toggle source
Calls superclass method Rackspace::Api::new
# File lib/rackspace/storage_api.rb, line 5
def initialize(rackspace_credentials)
  super rackspace_credentials
  @api ||= Fog::Rackspace::BlockStorage.new(rackspace_credentials)
end

Public Instance Methods

create(params) click to toggle source
# File lib/rackspace/storage_api.rb, line 18
def create(params)
  name = params.fetch(:name)

  api.volumes.create(
    size:          params.fetch(:size),
    display_name:  name,
    volume_type:   params.fetch(:volume_type),
  )
  wait_for(name)
end
destroy(name) click to toggle source
# File lib/rackspace/storage_api.rb, line 29
def destroy(name)
  find_by_name(name).destroy
end
find_by_id(volume_id) click to toggle source
# File lib/rackspace/storage_api.rb, line 14
def find_by_id(volume_id)
  api.get_volume volume_id
end
find_by_name(name) click to toggle source
# File lib/rackspace/storage_api.rb, line 10
def find_by_name(name)
  api.volumes.detect { |v| v.display_name == name }
end

Private Instance Methods

object_type() click to toggle source
# File lib/rackspace/storage_api.rb, line 35
def object_type
  'volume'
end
ready_state() click to toggle source
# File lib/rackspace/storage_api.rb, line 39
def ready_state
  AVAILABLE
end