Parent

Class/Module Index [+]

Quicksearch

Deltacloud::Drivers::RimuHosting::RimuHostingClient

Public Class Methods

new(credentials ,baseuri = 'https://rimuhosting.com/r') click to toggle source
# File lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb, line 31
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

Public Instance Methods

create_server(image_id, plan_code, name) click to toggle source
# File lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb, line 77
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) click to toggle source
# File lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb, line 73
def delete_server(id)
  request("/orders/order-#{id}-a/vps",'', 'DELETE')
end
list_images() click to toggle source
# File lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb, line 56
def list_images
  request('/distributions')["distro_infos"]
end
list_nodes() click to toggle source
# File lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb, line 64
def list_nodes
  request('/orders;include_inactive=N')["about_orders"]
end
list_plans() click to toggle source
# File lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb, line 60
def list_plans
  request('/pricing-plans;server-type=VPS')["pricing_plan_infos"]
end
request(resource, data='', method='GET') click to toggle source
# File lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb, line 38
  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)
         puts r.body
    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) click to toggle source
# File lib/deltacloud/drivers/rimuhosting/rimuhosting_client.rb, line 68
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

[Validate]

Generated with the Darkfish Rdoc Generator 2.