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

Inherits:
Object
  • Object
show all
Defined in:
lib/fog/glesys/compute.rb,
lib/fog/glesys/requests/compute/stop.rb,
lib/fog/glesys/requests/compute/start.rb,
lib/fog/glesys/requests/compute/create.rb,
lib/fog/glesys/requests/compute/reboot.rb,
lib/fog/glesys/requests/compute/ip_add.rb,
lib/fog/glesys/requests/compute/ip_take.rb,
lib/fog/glesys/requests/compute/destroy.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/ip_list_own.rb,
lib/fog/glesys/requests/compute/list_servers.rb,
lib/fog/glesys/requests/compute/ip_list_free.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

Instance Method Summary (collapse)

Constructor Details

- (Real) initialize(options)



69
70
71
72
73
74
75
76
77
78
# File 'lib/fog/glesys/compute.rb', line 69

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

- (Object) create(options = {})



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

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

- (Object) destroy(options)



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

- (Object) ip_add(params)



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

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

- (Object) ip_details(params)



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

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

- (Object) ip_list_free(options = {})



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

- (Object) ip_list_own(options = {})



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

- (Object) ip_release(params)



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

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

- (Object) ip_remove(params)



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

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

- (Object) ip_take(params)



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

def ip_take(params)
  request("/ip/take", params)
end

- (Object) list_servers(serverid = nil, options = {})



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

- (Object) reboot(param)



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

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

- (Object) request(method_name, options = {})



80
81
82
83
84
85
86
87
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
# File 'lib/fog/glesys/compute.rb', line 80

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

- (Object) server_details(serverid, options = {})



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

- (Object) server_status(serverid)



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

def server_status(serverid)
  request("/server/status", { :serverid => serverid } )
end

- (Object) start(param)



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

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

- (Object) stop(param)



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

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

- (Object) template_list



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

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