Module: Hyperb::Volumes

Includes:
Utils
Included in:
API
Defined in:
lib/hyperb/volumes/volumes.rb

Overview

volumes module

Instance Method Summary collapse

Methods included from Utils

#camelize, #check_arguments, #downcase_symbolize, #prepare_json, #underscore

Instance Method Details

#create_volume(params = {}) ⇒ Hash

create volume

Parameters:

  • params (Hash) (defaults to: {})

    A customizable set of params.

Options Hash (params):

  • :name (String)

    volume’s name

  • :size (Fixnum)

    volume size unit of GB, from 10-1000 (1TB).

  • :snapshot (String)

    snapshotId

Returns:

  • (Hash)

    downcased symbolized volume information.

Raises:

See Also:



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/hyperb/volumes/volumes.rb', line 26

def create_volume(params = {})
  path = '/volumes/create'
  body = {}
  body[:driver] = 'hyper'
  body[:name] = params[:name] if params.key?(:name)

  # setup driver opts
  body[:driveropts] = {}
  body[:driveropts][:snapshot] = params[:snapshot]
  body[:driveropts][:size] = params[:size].to_s

  response = JSON.parse(Hyperb::Request.new(self, path, {}, 'post', body).perform)
  downcase_symbolize(response)
end

#inspect_volume(params = {}) ⇒ Hash

inspect a volume

Parameters:

  • params (Hash) (defaults to: {})

    A customizable set of params.

Options Hash (params):

  • :id (String)

    volume id or name

Returns:

  • (Hash)

    of downcase symbolized json response.

Raises:

See Also:



89
90
91
92
93
# File 'lib/hyperb/volumes/volumes.rb', line 89

def inspect_volume(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'id')
  path = '/volumes/' + params[:id]
  downcase_symbolize(JSON.parse(Hyperb::Request.new(self, path, {}, 'get').perform))
end

#remove_volume(params = {}) ⇒ Object

remove volume

Parameters:

  • params (Hash) (defaults to: {})

    A customizable set of params.

Options Hash (params):

  • :id (String)

    volume id or name

  • :all (String)

    default is true

  • :filter (String)

    only return image with the specified name

Raises:

See Also:



73
74
75
76
77
# File 'lib/hyperb/volumes/volumes.rb', line 73

def remove_volume(params = {})
  raise ArgumentError, 'Invalid arguments.' unless check_arguments(params, 'id')
  path = '/volumes/' + params[:id]
  Hyperb::Request.new(self, path, {}, 'delete').perform
end

#volumes(params = {}) ⇒ Hyperb::Volume

list volumes

TODO: @option params [String] :filters JSON encoded value of the filters TODO: @option params filters [Boolean] :dangling

Parameters:

  • params (Hash) (defaults to: {})

    A customizable set of params.

Returns:

Raises:

See Also:



52
53
54
55
56
57
58
59
60
61
# File 'lib/hyperb/volumes/volumes.rb', line 52

def volumes(params = {})
  path = '/volumes'
  query = {}
  query[:filters] = params[:filters] if params.key?(:filters)
  response = JSON.parse(Hyperb::Request.new(self, path, query, 'get').perform)

  # hyper response atm comes inside a Volumes: [], unlike the images API
  # which is returned in a []
  response['Volumes'].map { |vol| Hyperb::Volume.new(vol) }
end