Class: Fog::Compute::Glesys::Real

Inherits:
Object
  • Object
show all
Defined in:
lib/fog/glesys/compute.rb,
lib/fog/glesys/requests/compute/edit.rb,
lib/fog/glesys/requests/compute/stop.rb,
lib/fog/glesys/requests/compute/start.rb,
lib/fog/glesys/requests/compute/ip_add.rb,
lib/fog/glesys/requests/compute/reboot.rb,
lib/fog/glesys/requests/compute/create.rb,
lib/fog/glesys/requests/compute/destroy.rb,
lib/fog/glesys/requests/compute/ip_take.rb,
lib/fog/glesys/requests/compute/ip_remove.rb,
lib/fog/glesys/requests/compute/ip_details.rb,
lib/fog/glesys/requests/compute/ip_release.rb,
lib/fog/glesys/requests/compute/ssh_key_add.rb,
lib/fog/glesys/requests/compute/ip_list_own.rb,
lib/fog/glesys/requests/compute/ip_list_free.rb,
lib/fog/glesys/requests/compute/list_servers.rb,
lib/fog/glesys/requests/compute/ssh_key_list.rb,
lib/fog/glesys/requests/compute/template_list.rb,
lib/fog/glesys/requests/compute/server_status.rb,
lib/fog/glesys/requests/compute/server_details.rb,
lib/fog/glesys/requests/compute/ssh_key_remove.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Real

Returns a new instance of Real



77
78
79
80
81
82
83
84
85
86
# 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

Instance Method Details

#create(options = {}) ⇒ Object



5
6
7
# File 'lib/fog/glesys/requests/compute/create.rb', line 5

def create(options = {})
  request('server/create/',options)
end

#destroy(options) ⇒ Object



5
6
7
8
9
10
11
# 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 = {}) ⇒ Object



5
6
7
# File 'lib/fog/glesys/requests/compute/edit.rb', line 5

def edit(options = {})
  request('server/edit/',options)
end

#ip_add(params) ⇒ Object



5
6
7
# File 'lib/fog/glesys/requests/compute/ip_add.rb', line 5

def ip_add(params)
  request("/ip/add", params)
end

#ip_details(params) ⇒ Object



5
6
7
# File 'lib/fog/glesys/requests/compute/ip_details.rb', line 5

def ip_details(params)
  request("/ip/details", params)
end

#ip_list_free(options = {}) ⇒ Object



5
6
7
# 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 = {}) ⇒ Object



5
6
7
# 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) ⇒ Object



5
6
7
# File 'lib/fog/glesys/requests/compute/ip_release.rb', line 5

def ip_release(params)
  request("/ip/release", params)
end

#ip_remove(params) ⇒ Object



5
6
7
# File 'lib/fog/glesys/requests/compute/ip_remove.rb', line 5

def ip_remove(params)
  request("/ip/remove", params)
end

#ip_take(params) ⇒ Object



5
6
7
# 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 = {}) ⇒ Object



5
6
7
8
9
10
11
# 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) ⇒ Object



5
6
7
# File 'lib/fog/glesys/requests/compute/reboot.rb', line 5

def reboot(param)
  request("/server/reboot", param)
end

#request(method_name, options = {}) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# 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 = {}) ⇒ Object



5
6
7
# 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) ⇒ Object



5
6
7
# 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) ⇒ Object



5
6
7
# 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 = {}) ⇒ Object



5
6
7
# 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) ⇒ Object



5
6
7
# File 'lib/fog/glesys/requests/compute/ssh_key_remove.rb', line 5

def ssh_key_remove(options)
  request("sshkey/remove", options)
end

#start(param) ⇒ Object



5
6
7
# File 'lib/fog/glesys/requests/compute/start.rb', line 5

def start(param)
  request("/server/start", param)
end

#stop(param) ⇒ Object



5
6
7
# File 'lib/fog/glesys/requests/compute/stop.rb', line 5

def stop(param)
  request("/server/stop", param)
end

#template_listObject



5
6
7
# File 'lib/fog/glesys/requests/compute/template_list.rb', line 5

def template_list
  request("/server/templates")
end