class Fog::Compute::UKCloud::Real
Constants
- UKCLOUD_DEFAULT_ENDPOINT
Attributes
ukcloud_endpoint[R]
ukcloud_username[R]
Public Class Methods
new(options={})
click to toggle source
# File lib/fog/ukcloud/compute.rb, line 29 def initialize(options={}) @ukcloud_username = options[:ukcloud_username] @ukcloud_password = options[:ukcloud_password] @ukcloud_endpoint = options[:ukcloud_endpoint] || UKCLOUD_DEFAULT_ENDPOINT @path = 'api' @connection_options = options[:connection_options] || {} @connection_options[:omit_default_port] = true unless @connection_options[:omit_default_port] @cookies = '' scheme = 'https' port = '443' url = sprintf('%s://%s:%s', scheme, @ukcloud_endpoint, port) @connection = Fog::XML::Connection.new(url, false, @connection_options) end
Public Instance Methods
get_my_vm()
click to toggle source
# File lib/fog/ukcloud/requests/compute/get_my_vm.rb, line 5 def get_my_vm request( :expects => 200, :method => 'GET', :parser => Fog::ToHashDocument.new, :path => "#{@path}/my_vm" ) end
get_ping()
click to toggle source
# File lib/fog/ukcloud/requests/compute/get_ping.rb, line 5 def get_ping request( :expects => 200, :method => 'GET', #:parser => Fog::ToHashDocument.new, :path => "#{@path}/ping" ) end
login()
click to toggle source
# File lib/fog/ukcloud/compute.rb, line 87 def login response = post_login_session @cookies = response.headers['Set-Cookie'] if response[:cookies].empty? && response.status == 201 then err = RuntimeError.new("No Cookie In Response") raise Fog::UKCloud::Errors::ServiceError.slurp(err) end end
post_login_session()
click to toggle source
# File lib/fog/ukcloud/requests/compute/post_login_session.rb, line 7 def post_login_session body = { :email => @ukcloud_username, :password => @ukcloud_password } begin @connection.request( :headers => {'Accept' => 'application/json'}, :expects => 201, :method => 'POST', :body => Fog::JSON.encode(body), :path => "#{@path}/authenticate" ) rescue Excon::Errors::HTTPStatusError => error raise case error when Excon::Errors::BadRequest then Fog::UKCloud::Errors::BadRequest.slurp(error); when Excon::Errors::Unauthorized then Fog::UKCloud::Errors::Unauthorised.slurp(error); when Excon::Errors::Forbidden then Fog::UKCloud::Errors::Forbidden.slurp(error); when Excon::Errors::Conflict then Fog::UKCloud::Errors::Conflict.slurp(error); else Fog::UKCloud::Errors::ServiceError.slurp(error) end end end
request(params)
click to toggle source
# File lib/fog/ukcloud/compute.rb, line 52 def request(params) path = params[:path] params[:body] = Fog::JSON.encode(params[:body]) if params[:body] begin headers = { 'Accept' => 'application/json', 'Content-Type' => 'application/json', 'Cookie' => get_cookies } @connection.request({ :body => params[:body], :expects => params[:expects], :headers => headers.merge!(params[:headers] || {}), :idempotent => params[:idempotent], :method => params[:method], :parser => params[:parser], :path => path, :query => params[:query] }) rescue Excon::Errors::HTTPStatusError => error raise case error when Excon::Errors::BadRequest then Fog::UKCloud::Errors::BadRequest.slurp(error); when Excon::Errors::Unauthorized then Fog::UKCloud::Errors::Unauthorised.slurp(error); when Excon::Errors::Forbidden then Fog::UKCloud::Errors::Forbidden.slurp(error); when Excon::Errors::Conflict then Fog::UKCloud::Errors::Conflict.slurp(error); else Fog::UKCloud::Errors::ServiceError.slurp(error) end end end