Class: CloudGarage
- Inherits:
-
Object
- Object
- CloudGarage
- Defined in:
- lib/cloudgarage-api.rb
Constant Summary collapse
- VERSION =
"0.1.0".freeze
- BASE_URI =
'https://api.cloudgarage.jp'.freeze
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(client_id, client_secret) ⇒ CloudGarage
constructor
A new instance of CloudGarage.
- #keypairs(keypair_id = nil) ⇒ 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
- #token ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize(client_id, client_secret) ⇒ CloudGarage
Returns a new instance of CloudGarage.
13 14 15 16 |
# File 'lib/cloudgarage-api.rb', line 13 def initialize(client_id, client_secret) @client_id, @client_secret = client_id, client_secret token end |
Instance Method Details
#contracts(contract_id = nil) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/cloudgarage-api.rb', line 23 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
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/cloudgarage-api.rb', line 65 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
87 88 89 |
# File 'lib/cloudgarage-api.rb', line 87 def delete_server(resource_id, notify = true) delete("servers/#{resource_id}?sendMail=#{notify ? 'true': 'false'}") end |
#images(image_type = nil) ⇒ Object
image_type: :os, :application, :private
32 33 34 35 36 37 38 39 |
# File 'lib/cloudgarage-api.rb', line 32 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
41 42 43 44 45 46 47 |
# File 'lib/cloudgarage-api.rb', line 41 def keypairs(keypair_id = nil) if keypair_id get("keypairs/#{keypair_id}")['keypair'] else get('keypairs')['keypairs'] end end |
#operate_servers(operation, servers) ⇒ Object
operation: :start, :restart, :restart_hard, :stop servers: array of server UUIDs
78 79 80 81 |
# File 'lib/cloudgarage-api.rb', line 78 def operate_servers(operation, servers) payload = {'operate' => operation.to_s.upcase, 'servers' => [servers].flatten} post('servers/operate', payload) end |
#restart_hard_servers(servers) ⇒ Object
84 |
# File 'lib/cloudgarage-api.rb', line 84 def restart_hard_servers(servers); operate_servers(:restart_hard, servers); end |
#restart_servers(servers) ⇒ Object
83 |
# File 'lib/cloudgarage-api.rb', line 83 def restart_servers(servers); operate_servers(:restart, servers); end |
#server_auto_backup_info(server_id) ⇒ Object
57 58 59 |
# File 'lib/cloudgarage-api.rb', line 57 def server_auto_backup_info(server_id) get("servers/#{server_id}/autoBackup")['autoBackup'] end |
#server_info(server_id) ⇒ Object
53 54 55 |
# File 'lib/cloudgarage-api.rb', line 53 def server_info(server_id) get("servers/#{server_id}")['server_detail'] end |
#server_security_info(server_id) ⇒ Object
61 62 63 |
# File 'lib/cloudgarage-api.rb', line 61 def server_security_info(server_id) get("servers/#{server_id}/security")['securityRules'] end |
#servers ⇒ Object
49 50 51 |
# File 'lib/cloudgarage-api.rb', line 49 def servers() get('servers')['servers'] end |
#start_servers(servers) ⇒ Object
82 |
# File 'lib/cloudgarage-api.rb', line 82 def start_servers(servers); operate_servers(:start, servers); end |
#stop_servers(servers) ⇒ Object
85 |
# File 'lib/cloudgarage-api.rb', line 85 def stop_servers(servers); operate_servers(:stop, servers); end |
#token ⇒ Object
18 19 20 21 |
# File 'lib/cloudgarage-api.rb', line 18 def token payload = {'client_id' => @client_id, 'client_secret' => @client_secret} @token = post('tokens', payload)['token']['id'] end |
#version ⇒ Object
91 92 93 |
# File 'lib/cloudgarage-api.rb', line 91 def version get("version")['version'] end |