Class: Morpheus::RestClient

Inherits:
Object
  • Object
show all
Defined in:
lib/morpheus/rest_client.rb

Overview

A wrapper around rest_client so we can more easily deal with passing options (like turning on/off SSL verification)

Class Method Summary collapse

Class Method Details

.enable_ssl_verification=(verify) ⇒ Object



48
49
50
# File 'lib/morpheus/rest_client.rb', line 48

def enable_ssl_verification=(verify)
  @@ssl_verification_enabled = verify
end

.execute(options) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/morpheus/rest_client.rb', line 20

def execute(options)
  default_opts = {}
  # only read requests get default 30 second timeout.
  if options[:method] == :get || options[:method] == :head
    default_opts[:timeout] = 30
  end
  opts = default_opts.merge(options)
  unless ssl_verification_enabled?
    opts[:verify_ssl] = OpenSSL::SSL::VERIFY_NONE
  end

  opts[:headers] ||= {}
  opts[:headers][:user_agent] ||= self.user_agent

  ::RestClient::Request.execute opts
end

.post(url, payload) ⇒ Object



36
37
38
# File 'lib/morpheus/rest_client.rb', line 36

def post(url, payload)
  execute url: url, payload: payload, method: :post
end

.ssl_verification_enabled?Boolean

Returns:

  • (Boolean)


40
41
42
43
44
45
46
# File 'lib/morpheus/rest_client.rb', line 40

def ssl_verification_enabled?
  begin
    @@ssl_verification_enabled.nil? ? true : @@ssl_verification_enabled
  rescue
    @@ssl_verification_enabled = true
  end
end

.user_agentObject



9
10
11
12
13
14
15
16
17
18
# File 'lib/morpheus/rest_client.rb', line 9

def user_agent
  if !@user_agent
    begin
      @user_agent = "morpheus-cli #{Morpheus::Cli::VERSION}"
      @user_agent = "#{@user_agent} (#{::RestClient::Platform.architecture}) #{::RestClient::Platform.ruby_agent_version}"
    rescue => e
    end
  end
  return @user_agent
end