Class: Deltacloud::Drivers::RimuHosting::RimuHostingClient
- Inherits:
-
Object
- Object
- Deltacloud::Drivers::RimuHosting::RimuHostingClient
- Defined in:
- lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb
Instance Method Summary collapse
- #create_server(image_id, plan_code, name) ⇒ Object
- #delete_server(id) ⇒ Object
-
#initialize(credentials, baseuri = 'https://rimuhosting.com/r') ⇒ RimuHostingClient
constructor
A new instance of RimuHostingClient.
- #list_images ⇒ Object
- #list_nodes ⇒ Object
- #list_plans ⇒ Object
- #request(resource, data = '', method = 'GET') ⇒ Object
- #set_server_state(id, state) ⇒ Object
Constructor Details
#initialize(credentials, baseuri = 'https://rimuhosting.com/r') ⇒ RimuHostingClient
Returns a new instance of RimuHostingClient.
26 27 28 29 30 31 |
# File 'lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb', line 26 def initialize(credentials ,baseuri = 'https://rimuhosting.com/r') @uri = URI.parse(baseuri) @service = Net::HTTP.new(@uri.host, @uri.port) @service.use_ssl = true @auth = "rimuhosting apikey=#{credentials.password}" end |
Instance Method Details
#create_server(image_id, plan_code, name) ⇒ Object
71 72 73 74 75 |
# File 'lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb', line 71 def create_server(image_id, plan_code, name) json = {:new_vps => {:instantiation_options => {:domain_name => name, :distro => image_id}, :pricing_plan_code => plan_code}}.to_json request('/orders/new-vps',json, 'POST')[:about_order] end |
#delete_server(id) ⇒ Object
67 68 69 |
# File 'lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb', line 67 def delete_server(id) request("/orders/order-#{id}-a/vps",'', 'DELETE') end |
#list_images ⇒ Object
50 51 52 |
# File 'lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb', line 50 def list_images request('/distributions')["distro_infos"] end |
#list_nodes ⇒ Object
58 59 60 |
# File 'lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb', line 58 def list_nodes request('/orders;include_inactive=N')["about_orders"] end |
#list_plans ⇒ Object
54 55 56 |
# File 'lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb', line 54 def list_plans request('/pricing-plans;server-type=VPS')["pricing_plan_infos"] end |
#request(resource, data = '', method = 'GET') ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb', line 33 def request(resource, data='', method='GET') headers = {"Accept" => "application/json", "Content-Type" => "application/json"} if(!@auth.nil?) headers["Authorization"] = @auth end safely do r = @service.send_request(method, @uri.path + resource, data, headers) res = JSON.parse(r.body) res = res[res.keys[0]] if(res['response_type'] == "ERROR" and ( (res['error_info']['error_class'] == "PermissionException") or (res['error_info']['error_class'] == "LoginRequired") )) raise "AuthFailure" end res end def list_images request('/distributions')["distro_infos"] end def list_plans request('/pricing-plans;server-type=VPS')["pricing_plan_infos"] end def list_nodes request('/orders;include_inactive=N')["about_orders"] end def set_server_state(id, state) json = {"reboot_request" => {"running_state" => state}}.to_json request("/orders/order-#{id}-a/vps/running-state", json, 'PUT') end def delete_server(id) request("/orders/order-#{id}-a/vps",'', 'DELETE') end def create_server(image_id, plan_code, name) json = {:new_vps => {:instantiation_options => {:domain_name => name, :distro => image_id}, :pricing_plan_code => plan_code}}.to_json request('/orders/new-vps',json, 'POST')[:about_order] end end |
#set_server_state(id, state) ⇒ Object
62 63 64 65 |
# File 'lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb', line 62 def set_server_state(id, state) json = {"reboot_request" => {"running_state" => state}}.to_json request("/orders/order-#{id}-a/vps/running-state", json, 'PUT') end |