Class: GPUEater::APIv1
- Inherits:
-
Object
- Object
- GPUEater::APIv1
- Defined in:
- lib/gpueater.rb
Defined Under Namespace
Classes: ProductsResnpose
Instance Method Summary collapse
-
#__________________________ ⇒ Object
@.
-
#___________image___________ ⇒ Object
def func_post_launch(api,required_fields=[],form={}, e=nil, try=2) raise e if try <= 0 tag = form unless tag form = @alist[((rand()*100) % @alist.length).to_i] “-”@blist[((rand()*100) % @blist.length).to_i] end required_fields.each{|v| raise “Required field => #{v}” unless form.include?(v) } image = form ssh_key_id = form product_id = form unless image.kind_of?(String) end.
-
#___________instance___________ ⇒ Object
@.
-
#___________ssh_key___________ ⇒ Object
@.
-
#__________network__________ ⇒ Object
@.
-
#__________storage__________ ⇒ Object
@.
-
#_________extensions__________ ⇒ Object
@.
-
#_________payment__________ ⇒ Object
@.
-
#_________special__________ ⇒ Object
@.
-
#_________subscription__________ ⇒ Object
@.
- #_get(u, q = {}) ⇒ Object
- #_post(u, form) ⇒ Object
-
#cancel_transaction ⇒ Object
@.
-
#change_instance_tag(form) ⇒ Object
@.
-
#change_snapshot_tag(form) ⇒ Object
@.
-
#close_port(form) ⇒ Object
@.
-
#copy_file ⇒ Object
@.
-
#create_image(form) ⇒ Object
@.
-
#create_volume ⇒ Object
@.
-
#delete_file ⇒ Object
@.
-
#delete_image(form) ⇒ Object
@.
-
#delete_snapshot(form) ⇒ Object
@.
-
#delete_ssh_key(form) ⇒ Object
@.
-
#delete_volume ⇒ Object
@.
-
#emergency_restart_instance(form) ⇒ Object
@.
-
#file_list ⇒ Object
@.
- #func_get(api, required_fields = [], query = {}, e = nil, try = 2) ⇒ Object
- #func_post(api, required_fields = [], form = {}, e = nil, try = 2) ⇒ Object
- #func_post_inss(api, required_fields = [], form = {}, e = nil, try = 2) ⇒ Object
-
#generate_ssh_key ⇒ Object
@.
-
#image_list ⇒ Object
@.
-
#import_image(form) ⇒ Object
@.
-
#initialize ⇒ APIv1
constructor
A new instance of APIv1.
-
#instance_list ⇒ Object
@.
-
#invoice_list ⇒ Object
@.
-
#launch_ondemand_instance(form) ⇒ Object
@.
-
#launch_subcription_instance(form) ⇒ Object
@.
-
#live_migration ⇒ Object
@.
-
#login_instance ⇒ Object
@.
-
#make_directory ⇒ Object
@.
-
#make_invoice ⇒ Object
@.
-
#move_file ⇒ Object
@.
-
#network_description(form) ⇒ Object
@.
-
#ondemand_list ⇒ Object
@.
-
#open_port(form) ⇒ Object
@.
- #payment_test ⇒ Object
-
#port_list(form) ⇒ Object
@.
-
#refresh_ipv4(form) ⇒ Object
@.
-
#register_ssh_key(form) ⇒ Object
@.
-
#registered_image_list ⇒ Object
@.
- #relogin ⇒ Object
-
#renew_ipv4(form) ⇒ Object
@.
-
#restart_instance(form) ⇒ Object
@.
-
#snapshot_list ⇒ Object
@.
-
#ssh_key_list ⇒ Object
@.
-
#start_instance(form) ⇒ Object
@.
-
#stop_instance(form) ⇒ Object
@.
-
#subscribe_instance ⇒ Object
@.
-
#subscribe_network ⇒ Object
@.
-
#subscribe_storage ⇒ Object
@.
-
#subscription_instance_list ⇒ Object
@.
-
#subscription_invoice_list ⇒ Object
@.
-
#subscription_list ⇒ Object
@.
-
#subscription_network_list ⇒ Object
@.
-
#subscription_storage_list ⇒ Object
@.
-
#synchronize_files ⇒ Object
@.
-
#take_snapshot(form) ⇒ Object
@.
-
#terminate_instance(form) ⇒ Object
@.
-
#transfer_volume ⇒ Object
@.
-
#tunnel ⇒ Object
@.
-
#unsubscribe_instance ⇒ Object
@.
-
#unsubscribe_network ⇒ Object
@.
-
#unsubscribe_storage ⇒ Object
@.
Constructor Details
#initialize ⇒ APIv1
Returns a new instance of APIv1.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/gpueater.rb', line 10 def initialize @debug = false @base = 'https://www.gpueater.com' if ENV['GPUEATER_URL'] @base = ENV['GPUEATER_URL'] end @homedir = File.('~') @tmpdir = Dir.tmpdir @cookie_path = File.join(@tmpdir,"gpueater_cookie.txt") @g_config = {} @g_header = {'User-Agent':'RubyAPI'} @conn = Faraday::Connection.new(:url => @base) do |builder| builder.use Faraday::Request::UrlEncoded # builder.use Faraday::Response::Logger builder.use Faraday::Adapter::NetHttpPersistent # gem install net-http-persistent builder.[:timeout] = 1800 end @alist=["raccoon", "dog", "wild boar", "rabbit", "cow", "horse", "wolf", "hippopotamus", "kangaroo", "fox", "giraffe", "bear", "koala", "bat", "gorilla", "rhinoceros", "monkey", "deer", "zebra", "jaguar", "polar bear", "skunk", "elephant", "raccoon dog", "animal", "reindeer", "rat", "tiger", "cat", "mouse", "buffalo", "hamster", "panda", "sheep", "leopard", "pig", "mole", "goat", "lion", "camel", "squirrel", "donkey"] @blist=["happy", "glad", "comfortable", "pleased", "delighted", "relieved", "calm", "surprised", "exciting"] begin @g_config = JSON.load(open(".eater").read) rescue begin @g_config = JSON.load(open(File.join(@homedir,".eater")).read) rescue puts "You have to define to ~/.eater" exit(9) end end begin @g_header['cookie'] = open(@cookie_path).read rescue => e end end |
Instance Method Details
#__________________________ ⇒ Object
@
267 |
# File 'lib/gpueater.rb', line 267 def __________________________;end |
#___________image___________ ⇒ Object
def func_post_launch(api,required_fields=[],form={}, e=nil, try=2)
raise e if try <= 0
tag = form['tag']
unless tag
form['tag'] = @alist[((rand()*100) % @alist.length).to_i] +"-"+@blist[((rand()*100) % @blist.length).to_i]
end
required_fields.each{|v| raise "Required field => #{v}" unless form.include?(v) }
image = form['image']
ssh_key_id = form['ssh_key_id']
product_id = form['product_id']
unless image.kind_of?(String)
end
j = nil
begin
j = JSON.load(_post(api,form).body)
rescue => e
relogin
return func_post(api, required_fields, form, e, try-1)
end
raise j['error'] if j['error']
j['data']
end
185 |
# File 'lib/gpueater.rb', line 185 def ___________image___________;end |
#___________instance___________ ⇒ Object
@
204 |
# File 'lib/gpueater.rb', line 204 def ___________instance___________;end |
#___________ssh_key___________ ⇒ Object
@
198 |
# File 'lib/gpueater.rb', line 198 def ___________ssh_key___________;end |
#__________network__________ ⇒ Object
@
219 |
# File 'lib/gpueater.rb', line 219 def __________network__________;end |
#__________storage__________ ⇒ Object
@
228 |
# File 'lib/gpueater.rb', line 228 def __________storage__________;end |
#_________extensions__________ ⇒ Object
@
257 |
# File 'lib/gpueater.rb', line 257 def _________extensions__________;end |
#_________payment__________ ⇒ Object
@
248 |
# File 'lib/gpueater.rb', line 248 def _________payment__________;end |
#_________special__________ ⇒ Object
@
244 |
# File 'lib/gpueater.rb', line 244 def _________special__________;end |
#_________subscription__________ ⇒ Object
@
233 |
# File 'lib/gpueater.rb', line 233 def _________subscription__________;end |
#_get(u, q = {}) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/gpueater.rb', line 55 def _get(u,q={}) puts u if @debug response = @conn.get do |req| req.url u req.params = q @g_header.each{|k,v| if v req.headers[k] = v end } end return response end |
#_post(u, form) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/gpueater.rb', line 69 def _post(u,form) puts u if @debug response = @conn.post do |req| req.url u @g_header.each{|k,v| if v req.headers[k] = v end } req.body = form end return response end |
#cancel_transaction ⇒ Object
@
246 |
# File 'lib/gpueater.rb', line 246 def cancel_transaction; raise "Not implemented yet"; end |
#change_instance_tag(form) ⇒ Object
@
210 |
# File 'lib/gpueater.rb', line 210 def change_instance_tag(form); func_post('/console/servers/change_instance_tag',['instance_id','tag'],form); end |
#change_snapshot_tag(form) ⇒ Object
@
189 |
# File 'lib/gpueater.rb', line 189 def change_snapshot_tag(form); func_post('/console/servers/change_snapshot_tag',['snapshot_id','tag'],form); end |
#close_port(form) ⇒ Object
@
222 |
# File 'lib/gpueater.rb', line 222 def close_port(form); func_post('/console/servers/delete_port',['instance_id','connection_id','port'],form); end |
#copy_file ⇒ Object
@
258 |
# File 'lib/gpueater.rb', line 258 def copy_file; raise "Not implemented yet"; end |
#create_image(form) ⇒ Object
@
193 |
# File 'lib/gpueater.rb', line 193 def create_image(form); func_post('/console/servers/create_user_defined_image',['instance_id','image_name'],form); end |
#create_volume ⇒ Object
@
229 |
# File 'lib/gpueater.rb', line 229 def create_volume; raise "Not implemented yet"; end |
#delete_file ⇒ Object
@
259 |
# File 'lib/gpueater.rb', line 259 def delete_file; raise "Not implemented yet"; end |
#delete_image(form) ⇒ Object
@
194 |
# File 'lib/gpueater.rb', line 194 def delete_image(form); func_post('/console/servers/delete_user_defined_image',['fingerprint'],form); end |
#delete_snapshot(form) ⇒ Object
@
190 |
# File 'lib/gpueater.rb', line 190 def delete_snapshot(form); func_post('/console/servers/delete_snapshot',['snapshot_id'],form); end |
#delete_ssh_key(form) ⇒ Object
@
202 |
# File 'lib/gpueater.rb', line 202 def delete_ssh_key(form); func_post('/console/servers/delete_ssh_key',['id'],form); end |
#delete_volume ⇒ Object
@
230 |
# File 'lib/gpueater.rb', line 230 def delete_volume; raise "Not implemented yet"; end |
#emergency_restart_instance(form) ⇒ Object
@
216 |
# File 'lib/gpueater.rb', line 216 def emergency_restart_instance(form); func_post_inss('/console/servers/emergency_restart',['instance_id','machine_resource_id'],form); end |
#file_list ⇒ Object
@
262 |
# File 'lib/gpueater.rb', line 262 def file_list; raise "Not implemented yet"; end |
#func_get(api, required_fields = [], query = {}, e = nil, try = 2) ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/gpueater.rb', line 118 def func_get(api,required_fields=[],query={}, e=nil, try=2) raise e if try <= 0 required_fields.each{|v| raise "Required field => #{v}" unless query.include?(v) } j = nil begin j = JSON.load(_get(api,query).body) rescue => e relogin return func_get(api, required_fields, query, e, try-1) end raise j['error'] if j['error'] j['data'] end |
#func_post(api, required_fields = [], form = {}, e = nil, try = 2) ⇒ Object
132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/gpueater.rb', line 132 def func_post(api,required_fields=[],form={}, e=nil, try=2) raise e if try <= 0 required_fields.each{|v| raise "Required field => #{v}" unless form.include?(v) } j = nil begin j = JSON.load(_post(api,form).body) rescue => e relogin return func_post(api, required_fields, form, e, try-1) end raise j['error'] if j['error'] j['data'] end |
#func_post_inss(api, required_fields = [], form = {}, e = nil, try = 2) ⇒ Object
146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/gpueater.rb', line 146 def func_post_inss(api,required_fields=[],form={}, e=nil, try=2) raise e if try <= 0 required_fields.each{|v| raise "Required field => #{v}" unless form.include?(v) } form["instances"] = [{"instance_id"=>form["instance_id"],"machine_resource_id"=>form["machine_resource_id"]}].to_json; j = nil begin j = JSON.load(_post(api,form).body) rescue => e relogin return func_post(api, required_fields, form, e, try-1) end raise j['error'] if j['error'] j['data'] end |
#generate_ssh_key ⇒ Object
@
200 |
# File 'lib/gpueater.rb', line 200 def generate_ssh_key; func_get('/console/servers/ssh_key_gen'); end |
#image_list ⇒ Object
@
186 |
# File 'lib/gpueater.rb', line 186 def image_list; func_get('/console/servers/images'); end |
#import_image(form) ⇒ Object
@
195 |
# File 'lib/gpueater.rb', line 195 def import_image(form); func_post('/console/servers/import_image',['url','image_name'],form); end |
#instance_list ⇒ Object
@
209 |
# File 'lib/gpueater.rb', line 209 def instance_list; func_get('/console/servers/instance_list'); end |
#invoice_list ⇒ Object
@
249 |
# File 'lib/gpueater.rb', line 249 def invoice_list; func_get('/console/servers/charge_list'); end |
#launch_ondemand_instance(form) ⇒ Object
@
207 |
# File 'lib/gpueater.rb', line 207 def launch_ondemand_instance(form); func_post('/console/servers/launch_ondemand_instance',['product_id','image','ssh_key_id','tag'],form); end |
#launch_subcription_instance(form) ⇒ Object
@
208 |
# File 'lib/gpueater.rb', line 208 def launch_subcription_instance(form); raise "Not implemented yet"; end |
#live_migration ⇒ Object
@
245 |
# File 'lib/gpueater.rb', line 245 def live_migration; raise "Not implemented yet"; end |
#login_instance ⇒ Object
@
264 |
# File 'lib/gpueater.rb', line 264 def login_instance; raise "Not implemented yet"; end |
#make_directory ⇒ Object
@
261 |
# File 'lib/gpueater.rb', line 261 def make_directory; raise "Not implemented yet"; end |
#make_invoice ⇒ Object
@
251 |
# File 'lib/gpueater.rb', line 251 def make_invoice; raise "Not implemented yet"; end |
#move_file ⇒ Object
@
260 |
# File 'lib/gpueater.rb', line 260 def move_file; raise "Not implemented yet"; end |
#network_description(form) ⇒ Object
@
225 |
# File 'lib/gpueater.rb', line 225 def network_description(form); func_get('/console/servers/instance_info',['instance_id'],form); end |
#ondemand_list ⇒ Object
@
205 |
# File 'lib/gpueater.rb', line 205 def ondemand_list; ProductsResnpose.new(func_get('/console/servers/ondemand_launch_list')); end |
#open_port(form) ⇒ Object
@
221 |
# File 'lib/gpueater.rb', line 221 def open_port(form); func_post('/console/servers/add_port',['instance_id','connection_id','port'],form); end |
#payment_test ⇒ Object
253 254 255 |
# File 'lib/gpueater.rb', line 253 def payment_test puts invoice_list end |
#port_list(form) ⇒ Object
@
220 |
# File 'lib/gpueater.rb', line 220 def port_list(form); func_get('/console/servers/port_list',['instance_id'],form); end |
#refresh_ipv4(form) ⇒ Object
@
224 |
# File 'lib/gpueater.rb', line 224 def refresh_ipv4(form); func_post('/console/servers/refresh_ipv4',['instance_id'],form); end |
#register_ssh_key(form) ⇒ Object
@
201 |
# File 'lib/gpueater.rb', line 201 def register_ssh_key(form); func_post('/console/servers/register_ssh_key',['name','public_key'],form); end |
#registered_image_list ⇒ Object
@
192 |
# File 'lib/gpueater.rb', line 192 def registered_image_list; func_get('/console/servers/registered_image_list'); end |
#relogin ⇒ Object
83 84 85 86 87 88 89 90 91 |
# File 'lib/gpueater.rb', line 83 def relogin res = _post('/api_login',{'email':@g_config['gpueater']['email'],'password':@g_config['gpueater']['password']}) if res.headers['set-cookie'] @g_header['cookie'] = res.headers['set-cookie'] f = open(@cookie_path,"w") f.write(@g_header['cookie']) f.close end end |
#renew_ipv4(form) ⇒ Object
@
223 |
# File 'lib/gpueater.rb', line 223 def renew_ipv4(form); func_post('/console/servers/renew_ipv4',['instance_id'],form); end |
#restart_instance(form) ⇒ Object
@
214 |
# File 'lib/gpueater.rb', line 214 def restart_instance(form); func_post_inss('/console/servers/stop',['instance_id','machine_resource_id'],form); func_post_inss('/console/servers/start',['instance_id','machine_resource_id'],form); end |
#snapshot_list ⇒ Object
@
187 |
# File 'lib/gpueater.rb', line 187 def snapshot_list; func_get('/console/servers/snapshots'); end |
#ssh_key_list ⇒ Object
@
199 |
# File 'lib/gpueater.rb', line 199 def ssh_key_list; func_get('/console/servers/ssh_keys'); end |
#start_instance(form) ⇒ Object
@
212 |
# File 'lib/gpueater.rb', line 212 def start_instance(form); func_post_inss('/console/servers/start',['instance_id','machine_resource_id'],form); end |
#stop_instance(form) ⇒ Object
@
213 |
# File 'lib/gpueater.rb', line 213 def stop_instance(form); func_post_inss('/console/servers/stop',['instance_id','machine_resource_id'],form); end |
#subscribe_instance ⇒ Object
@
237 |
# File 'lib/gpueater.rb', line 237 def subscribe_instance; raise "Not implemented yet"; end |
#subscribe_network ⇒ Object
@
241 |
# File 'lib/gpueater.rb', line 241 def subscribe_network; raise "Not implemented yet"; end |
#subscribe_storage ⇒ Object
@
239 |
# File 'lib/gpueater.rb', line 239 def subscribe_storage; raise "Not implemented yet"; end |
#subscription_instance_list ⇒ Object
@
234 |
# File 'lib/gpueater.rb', line 234 def subscription_instance_list; raise "Not implemented yet"; end |
#subscription_invoice_list ⇒ Object
@
250 |
# File 'lib/gpueater.rb', line 250 def subscription_invoice_list; raise "Not implemented yet"; end |
#subscription_list ⇒ Object
@
206 |
# File 'lib/gpueater.rb', line 206 def subscription_list; raise "Not implemented yet"; end |
#subscription_network_list ⇒ Object
@
236 |
# File 'lib/gpueater.rb', line 236 def subscription_network_list; raise "Not implemented yet"; end |
#subscription_storage_list ⇒ Object
@
235 |
# File 'lib/gpueater.rb', line 235 def subscription_storage_list; raise "Not implemented yet"; end |
#synchronize_files ⇒ Object
@
263 |
# File 'lib/gpueater.rb', line 263 def synchronize_files; raise "Not implemented yet"; end |
#take_snapshot(form) ⇒ Object
@
188 |
# File 'lib/gpueater.rb', line 188 def take_snapshot(form); func_post('/console/servers/take_snapshot',['instance_id','tag'],form); end |
#terminate_instance(form) ⇒ Object
@
215 |
# File 'lib/gpueater.rb', line 215 def terminate_instance(form); func_post_inss('/console/servers/force_terminate',['instance_id','machine_resource_id'],form); end |
#transfer_volume ⇒ Object
@
231 |
# File 'lib/gpueater.rb', line 231 def transfer_volume; raise "Not implemented yet"; end |
#tunnel ⇒ Object
@
265 |
# File 'lib/gpueater.rb', line 265 def tunnel; raise "Not implemented yet"; end |
#unsubscribe_instance ⇒ Object
@
238 |
# File 'lib/gpueater.rb', line 238 def unsubscribe_instance; raise "Not implemented yet"; end |
#unsubscribe_network ⇒ Object
@
242 |
# File 'lib/gpueater.rb', line 242 def unsubscribe_network; raise "Not implemented yet"; end |
#unsubscribe_storage ⇒ Object
@
240 |
# File 'lib/gpueater.rb', line 240 def unsubscribe_storage; raise "Not implemented yet"; end |