Module: CloudClient
- Defined in:
- lib/CloudClient.rb
Overview
The CloudClient module contains general functionality to implement a Cloud Client
Defined Under Namespace
Classes: Error
Constant Summary collapse
- DEFAULT_AUTH_FILE =
######################################################################### Default location for the authentication file #########################################################################
ENV["HOME"]+"/.one/one_auth"
Class Method Summary collapse
-
.get_one_auth ⇒ Object
######################################################################### Gets authorization credentials from ONE_AUTH or default auth file.
-
.http_start(url, &block) ⇒ Object
######################################################################### Starts an http connection and calls the block provided.
-
.is_error?(value) ⇒ Boolean
######################################################################### Returns true if the object returned by a method of the OpenNebula library is an Error #########################################################################.
Class Method Details
.get_one_auth ⇒ Object
######################################################################### Gets authorization credentials from ONE_AUTH or default auth file.
Raises an error if authorization is not found #########################################################################
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/CloudClient.rb', line 51 def self.get_one_auth if ENV["ONE_AUTH"] and !ENV["ONE_AUTH"].empty? and File.file?(ENV["ONE_AUTH"]) one_auth=File.read(ENV["ONE_AUTH"]).strip.split(':') elsif File.file?(DEFAULT_AUTH_FILE) one_auth=File.read(DEFAULT_AUTH_FILE).strip.split(':') else raise "No authorization data present" end raise "Authorization data malformed" if one_auth.length < 2 one_auth end |
.http_start(url, &block) ⇒ Object
######################################################################### Starts an http connection and calls the block provided. SSL flag is set if needed. #########################################################################
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/CloudClient.rb', line 70 def self.http_start(url, &block) http = Net::HTTP.new(url.host, url.port) if url.scheme=='https' http.use_ssl = true http.verify_mode=OpenSSL::SSL::VERIFY_NONE end begin http.start do |connection| block.call(connection) end rescue Errno::ECONNREFUSED => e str = "Error connecting to server (#{e.to_s})." str << "Server: #{url.host}:#{url.port}" return CloudClient::Error.new(str) end end |
.is_error?(value) ⇒ Boolean
######################################################################### Returns true if the object returned by a method of the OpenNebula library is an Error #########################################################################
110 111 112 |
# File 'lib/CloudClient.rb', line 110 def self.is_error?(value) value.class==CloudClient::Error end |