class Fog::Compute::Glesys::Real
Public Class Methods
new(options)
click to toggle source
# File lib/fog/glesys/compute.rb, line 77 def initialize(options) require 'base64' @api_url = options[:glesys_api_url] || API_URL @glesys_username = options[:glesys_username] @glesys_api_key = options[:glesys_api_key] @connection_options = options[:connection_options] || {} @persistent = options[:persistent] || false @connection = Fog::XML::Connection.new(@api_url, @persistent, @connection_options) end
Public Instance Methods
create(options = {})
click to toggle source
# File lib/fog/glesys/requests/compute/create.rb, line 5 def create(options = {}) request('server/create/',options) end
destroy(options)
click to toggle source
# File lib/fog/glesys/requests/compute/destroy.rb, line 5 def destroy(options) if options[:keepip].nil? options[:keepip] = 0 end request("/server/destroy", options) end
edit(options = {})
click to toggle source
# File lib/fog/glesys/requests/compute/edit.rb, line 5 def edit(options = {}) request('server/edit/',options) end
ip_add(params)
click to toggle source
# File lib/fog/glesys/requests/compute/ip_add.rb, line 5 def ip_add(params) request("/ip/add", params) end
ip_details(params)
click to toggle source
# File lib/fog/glesys/requests/compute/ip_details.rb, line 5 def ip_details(params) request("/ip/details", params) end
ip_list_free(options = {})
click to toggle source
# File lib/fog/glesys/requests/compute/ip_list_free.rb, line 5 def ip_list_free(options = {}) request("/ip/listfree", options) end
ip_list_own(options = {})
click to toggle source
# File lib/fog/glesys/requests/compute/ip_list_own.rb, line 5 def ip_list_own(options = {}) request("/ip/listown", options) end
ip_release(params)
click to toggle source
# File lib/fog/glesys/requests/compute/ip_release.rb, line 5 def ip_release(params) request("/ip/release", params) end
ip_remove(params)
click to toggle source
# File lib/fog/glesys/requests/compute/ip_remove.rb, line 5 def ip_remove(params) request("/ip/remove", params) end
ip_take(params)
click to toggle source
# File lib/fog/glesys/requests/compute/ip_take.rb, line 5 def ip_take(params) request("/ip/take", params) end
list_servers(serverid = nil, options = {})
click to toggle source
# File lib/fog/glesys/requests/compute/list_servers.rb, line 5 def list_servers(serverid = nil, options = {}) unless serverid.nil? options[:serverid] = serverid end request("/server/list", options) end
reboot(param)
click to toggle source
# File lib/fog/glesys/requests/compute/reboot.rb, line 5 def reboot(param) request("/server/reboot", param) end
request(method_name, options = {})
click to toggle source
# File lib/fog/glesys/compute.rb, line 88 def request(method_name, options = {}) options.merge!( {:format => 'json'}) begin parser = options.delete(:parser) data = @connection.request( :expects => 200, :method => "POST", :body => urlencode(options), :parser => parser, :path => method_name, :headers => { 'Authorization' => "Basic #{encoded_api_auth}", 'Content-Type' => 'application/x-www-form-urlencoded' } ) data.body = Fog::JSON.decode(data.body) response_code = data.body['response']['status']['code'] unless response_code.to_i == 200 raise Fog::Compute::Glesys::Error, "#{data.body['response']['status']['text']}" end data rescue Excon::Errors::HTTPStatusError => error raise case error when Excon::Errors::NotFound Fog::Compute::Glesys::NotFound.slurp(error) else error end end end
server_details(serverid, options = {})
click to toggle source
# File lib/fog/glesys/requests/compute/server_details.rb, line 5 def server_details(serverid, options = {}) request("/server/details", { :serverid => serverid }.merge!(options) ) end
server_status(serverid)
click to toggle source
# File lib/fog/glesys/requests/compute/server_status.rb, line 5 def server_status(serverid) request("/server/status", { :serverid => serverid } ) end
ssh_key_add(options)
click to toggle source
# File lib/fog/glesys/requests/compute/ssh_key_add.rb, line 5 def ssh_key_add(options) request("sshkey/add", options) end
ssh_key_list(options = {})
click to toggle source
# File lib/fog/glesys/requests/compute/ssh_key_list.rb, line 5 def ssh_key_list(options = {}) request("sshkey/list", options) end
ssh_key_remove(options)
click to toggle source
# File lib/fog/glesys/requests/compute/ssh_key_remove.rb, line 5 def ssh_key_remove(options) request("sshkey/remove", options) end
start(param)
click to toggle source
# File lib/fog/glesys/requests/compute/start.rb, line 5 def start(param) request("/server/start", param) end
stop(param)
click to toggle source
# File lib/fog/glesys/requests/compute/stop.rb, line 5 def stop(param) request("/server/stop", param) end
template_list()
click to toggle source
# File lib/fog/glesys/requests/compute/template_list.rb, line 5 def template_list request("/server/templates") end
Private Instance Methods
encoded_api_auth()
click to toggle source
# File lib/fog/glesys/compute.rb, line 125 def encoded_api_auth token = [@glesys_username, @glesys_api_key].join(':') Base64.encode64(token).delete("\r\n") end
urlencode(hash)
click to toggle source
# File lib/fog/glesys/compute.rb, line 130 def urlencode(hash) hash.to_a.map! { |k, v| "#{k}=#{CGI.escape(v.to_s)}" }.join("&") end