module Fog::Oracle::Core

Public Instance Methods

core_initialize(options) click to toggle source
# File lib/fog/oracle/core.rb, line 50
def core_initialize(options)
  @api_url                  = options[:oracle_url]
  @username                 = options[:oracle_username]
  @password                 = options[:oracle_password]
  @connection_options       = options[:connection_options] || {}
  @persistent               = options[:persistent] || false
  @connection = Fog::XML::Connection.new(@api_url, @persistent, @connection_options)
end
escape(str) click to toggle source
# File lib/fog/oracle/core.rb, line 59
def escape(str)
  str.gsub(/([^a-zA-Z0-9_.-]+)/) do
    '%' + $1.unpack('H2' * $1.bytesize).join('%').upcase
  end
end
request(opts) click to toggle source
# File lib/fog/oracle/core.rb, line 65
def request(opts)
  opts[:path] = '/ovm/core/wsapi/rest/' + opts[:path]

  hash = Base64.encode64(@username + ":" + @password).delete("\r\n")

  opts[:headers] = {
    "Accept" => "application/json",
    'Authorization' => "Basic #{hash}"
  }.merge(opts[:headers] || {})

  if opts[:body]
    opts[:headers]["Content-Type"] = "application/json"
    opts[:body] = json_encode(opts[:body])
  end

  response = @connection.request(opts)

  if response.headers["Content-Type"] == "application/json"
    response.body = json_decode(response.body)
  end

  # puts @api_url, opts, response

  response
end