Module: Ropenstack::Database::Version1

Defined in:
lib/ropenstack/database/v1.rb

Overview

  • Name: DatabaseVersion1

  • Description: Implementation of the Block Storage V1.0 API Client in Ruby.

  • Author: Sam ‘Tehsmash’ Betts, John Davidge

  • Date: 30/06/2014

Instance Method Summary collapse

Instance Method Details

#address(endpoint) ⇒ Object



105
106
107
# File 'lib/ropenstack/database/v1.rb', line 105

def address(endpoint)
  super(endpoint) + @accountid
end

#database_create(instance, name) ⇒ Object



68
69
70
71
72
73
74
75
76
# File 'lib/ropenstack/database/v1.rb', line 68

def database_create(instance, name)
  data = { :databases => [
      {
        :name => name
      }
    ]
  }
  post_request(address("/instances/" + instance + "/databases"), data, @token)
end

#database_delete(instance, name) ⇒ Object



78
79
80
# File 'lib/ropenstack/database/v1.rb', line 78

def database_delete(instance, name)
  delete_request(address("/instances/" + instance + "/databases/" + name), @token)
end

#databases(instance) ⇒ Object

Databases



64
65
66
# File 'lib/ropenstack/database/v1.rb', line 64

def databases(instance)
  get_request(address("/instances/" + instance + "/databases"), @token)
end

#flavors(id) ⇒ Object

Flavors



97
98
99
100
101
102
103
# File 'lib/ropenstack/database/v1.rb', line 97

def flavors(id)
  if id.nil? 
    get_request(address("/flavors"), @token)
  else
    get_request(address("/flavors/" + id), @token)
  end
end

#instance_action(id, action, param) ⇒ Object

Database Instance Actions



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/ropenstack/database/v1.rb', line 46

def instance_action(id, action, param)
  case action
  when "RESTART" 
    post_request(address("/instances/" + id + "/action"), {:restart => {}}, @token)
  when "RESIZE"
    if param.is_a? String
      post_request(address("/instances/" + id + "/action"), {:resize => {:flavorRef => param }}, @token)
    elsif param.is_a? Int
      post_request(address("/instances/" + id + "/action"), {:resize => {:volume => {:size => param }}}, @token)
    else
      raise Ropenstack::RopenstackError, "Invalid Parameter Passed"
    end
  else
    raise Ropenstack::RopenstackError, "Invalid Action Passed"
  end
end

#instance_create(databases, flavorRef, name, users, volume) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ropenstack/database/v1.rb', line 18

def instance_create(databases, flavorRef, name, users, volume)
  ## Construct data
  data = { :instance => {
      :databases => databases,
      :flavorRef => flavorRef, 
      :name => name,
      :users => users,
      :volume => volume
    }
  }

  post_request(address("/instances"), data, @token)
end

#instance_delete(id) ⇒ Object



32
33
34
# File 'lib/ropenstack/database/v1.rb', line 32

def instance_delete(id)
  delete_request(address("/instances/" + id), @token)
end

#instance_root(id) ⇒ Object



36
37
38
# File 'lib/ropenstack/database/v1.rb', line 36

def instance_root(id)
  get_request(address("/instances/" + id + "/root"), @token)
end

#instance_root_enable(id) ⇒ Object



40
41
42
43
# File 'lib/ropenstack/database/v1.rb', line 40

def instance_root_enable(id)
  ## Empty data field
  post_request(address("/instances/" + id + "/root"), {}, @token)
end

#instances(id) ⇒ Object

Database Instances



10
11
12
13
14
15
16
# File 'lib/ropenstack/database/v1.rb', line 10

def instances(id)
  if id.nil? 
    get_request(address("/instances"), @token)
  else
    get_request(address("/instances/" + id), @token)
  end
end

#user_create(instance, name, databases) ⇒ Object



87
88
89
90
# File 'lib/ropenstack/database/v1.rb', line 87

def user_create(instance, name, databases)
  ## TODO Make this work
  post_request(address("/instances/" + instance + "/users"), data, @token)
end

#user_delete(instance, name) ⇒ Object



92
93
94
# File 'lib/ropenstack/database/v1.rb', line 92

def user_delete(instance, name)
  post_request(address("/instances/" + instance + "/users/" + name), @token)
end

#users(instance) ⇒ Object

Users



83
84
85
# File 'lib/ropenstack/database/v1.rb', line 83

def users(instance)
  get_request(address("/instances/" + instance + "/users"), @token)
end

#versionObject



109
110
111
# File 'lib/ropenstack/database/v1.rb', line 109

def version
  "V1"
end