class Deltacloud::Library

Attributes

backend[R]
credentials[R]

Public Class Methods

new(driver_name, opts={}) { |backend| ... } click to toggle source
# File lib/deltacloud/api.rb, line 81
def initialize(driver_name, opts={}, &block)
  Thread.current[:driver] = driver_name.to_s
  Thread.current[:provider] = opts[:provider]
  @backend = driver
  opts[:user] ||= 'mockuser'
  opts[:password] ||= 'mockpassword'
  @credentials = OpenStruct.new(:user => opts[:user], :password => opts[:password])
  yield backend if block_given?
end

Public Instance Methods

current_driver() click to toggle source
# File lib/deltacloud/api.rb, line 99
def current_driver
  Thread.current[:driver]
end
current_provider() click to toggle source
# File lib/deltacloud/api.rb, line 95
def current_provider
  Thread.current[:provider]
end
method_missing(name, *args) click to toggle source
# File lib/deltacloud/api.rb, line 115
def method_missing(name, *args)
  return super unless backend.respond_to? name
  begin
    params = ([@credentials] + args).flatten
    backend.send(name, *params)
  rescue ArgumentError => e
    puts "[W] Wrong arguments for #{name}. Omitting credentials injection. (#{e.message})"
    backend.send(name, *args)
  end
end
provider(opts={}) click to toggle source
# File lib/deltacloud/api.rb, line 111
def provider(opts={})
  providers.find { |p| p.id == opts[:id] }
end
providers() click to toggle source
# File lib/deltacloud/api.rb, line 103
def providers
  if backend.respond_to? :providers
    backend.providers(@credentials)
  else
    Deltacloud.drivers[current_driver.to_sym]
  end
end
version() click to toggle source
# File lib/deltacloud/api.rb, line 91
def version
  Deltacloud::API_VERSION
end