Class: CloudGarage::API
- Inherits:
-
Object
- Object
- CloudGarage::API
- Defined in:
- lib/cloudgarage/api.rb
Constant Summary collapse
- BASE_URI =
'https://api.cloudgarage.jp'.freeze
Instance Attribute Summary collapse
-
#token ⇒ Object
Returns the value of attribute token.
Instance Method Summary collapse
- #contracts(contract_id = nil) ⇒ Object
- #create_server(name, password, contract_id: nil, spec: {}, ports: [], image_id: nil, keyname: nil, comment: nil) ⇒ Object
- #delete_server(resource_id, notify = true) ⇒ Object
-
#images(image_type = nil) ⇒ Object
image_type: :os, :application, :private.
-
#initialize(token = nil) ⇒ API
constructor
A new instance of API.
- #keypairs(keypair_id = nil) ⇒ Object
- #login(client_id, client_secret) ⇒ Object
-
#operate_servers(operation, servers) ⇒ Object
operation: :start, :restart, :restart_hard, :stop servers: array of server UUIDs.
- #restart_hard_servers(servers) ⇒ Object
- #restart_servers(servers) ⇒ Object
- #server_auto_backup_info(server_id) ⇒ Object
- #server_info(server_id) ⇒ Object
- #server_security_info(server_id) ⇒ Object
- #servers ⇒ Object
- #start_servers(servers) ⇒ Object
- #stop_servers(servers) ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize(token = nil) ⇒ API
Returns a new instance of API.
16 17 18 |
# File 'lib/cloudgarage/api.rb', line 16 def initialize(token = nil) @token = token end |
Instance Attribute Details
#token ⇒ Object
Returns the value of attribute token.
14 15 16 |
# File 'lib/cloudgarage/api.rb', line 14 def token @token end |
Instance Method Details
#contracts(contract_id = nil) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/cloudgarage/api.rb', line 25 def contracts(contract_id = nil) if contract_id get("contracts/#{contract_id}")[:contract] else get('contracts')[:contracts] end end |
#create_server(name, password, contract_id: nil, spec: {}, ports: [], image_id: nil, keyname: nil, comment: nil) ⇒ Object
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/cloudgarage/api.rb', line 67 def create_server(name, password, contract_id: nil, spec: {}, ports: [], image_id: nil, keyname: nil, comment: nil) payload = {'name' => name, 'password' => password} payload['contract_id'] = contract_id if contract_id payload['spec'] = spec unless spec.empty? payload['ports'] = ports unless ports.empty? payload['image_id'] = image_id if image_id payload['keyname'] = keyname if keyname payload['comment'] = comment if comment post('servers', payload)[:resource_id] end |
#delete_server(resource_id, notify = true) ⇒ Object
89 90 91 92 |
# File 'lib/cloudgarage/api.rb', line 89 def delete_server(resource_id, notify = true) delete("servers/#{resource_id}?sendMail=#{notify ? 'true': 'false'}") return true end |
#images(image_type = nil) ⇒ Object
image_type: :os, :application, :private
34 35 36 37 38 39 40 41 |
# File 'lib/cloudgarage/api.rb', line 34 def images(image_type = nil) images = get("images")[:images] if image_type image_type = image_type.to_s.upcase images.select!{|i| i[:image_type] == image_type} end return images end |
#keypairs(keypair_id = nil) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/cloudgarage/api.rb', line 43 def keypairs(keypair_id = nil) if keypair_id get("keypairs/#{keypair_id}")[:keypair] else get('keypairs')[:keypairs] end end |
#login(client_id, client_secret) ⇒ Object
20 21 22 23 |
# File 'lib/cloudgarage/api.rb', line 20 def login(client_id, client_secret) payload = {'client_id' => client_id, 'client_secret' => client_secret} @token = post('tokens', payload)[:token][:id] end |
#operate_servers(operation, servers) ⇒ Object
operation: :start, :restart, :restart_hard, :stop servers: array of server UUIDs
80 81 82 83 |
# File 'lib/cloudgarage/api.rb', line 80 def operate_servers(operation, servers) payload = {'operate' => operation.to_s.upcase, 'servers' => [servers].flatten} post('servers/operate', payload) end |
#restart_hard_servers(servers) ⇒ Object
86 |
# File 'lib/cloudgarage/api.rb', line 86 def restart_hard_servers(servers); operate_servers(:restart_hard, servers); end |
#restart_servers(servers) ⇒ Object
85 |
# File 'lib/cloudgarage/api.rb', line 85 def restart_servers(servers); operate_servers(:restart, servers); end |
#server_auto_backup_info(server_id) ⇒ Object
59 60 61 |
# File 'lib/cloudgarage/api.rb', line 59 def server_auto_backup_info(server_id) get("servers/#{server_id}/autoBackup")[:autoBackup] end |
#server_info(server_id) ⇒ Object
55 56 57 |
# File 'lib/cloudgarage/api.rb', line 55 def server_info(server_id) get("servers/#{server_id}")[:server_detail] end |
#server_security_info(server_id) ⇒ Object
63 64 65 |
# File 'lib/cloudgarage/api.rb', line 63 def server_security_info(server_id) get("servers/#{server_id}/security")[:securityRules] end |
#servers ⇒ Object
51 52 53 |
# File 'lib/cloudgarage/api.rb', line 51 def servers() get('servers')[:servers] end |
#start_servers(servers) ⇒ Object
84 |
# File 'lib/cloudgarage/api.rb', line 84 def start_servers(servers); operate_servers(:start, servers); end |
#stop_servers(servers) ⇒ Object
87 |
# File 'lib/cloudgarage/api.rb', line 87 def stop_servers(servers); operate_servers(:stop, servers); end |
#version ⇒ Object
94 95 96 |
# File 'lib/cloudgarage/api.rb', line 94 def version get("version")[:version] end |