Module: Mystro::Cloud

Defined in:
lib/mystro/cloud.rb,
lib/mystro/cloud/model.rb,
lib/mystro/cloud/action.rb,
lib/mystro/cloud/connect.rb,
lib/mystro/cloud/model/zone.rb,
lib/mystro/cloud/connect/aws.rb,
lib/mystro/cloud/connect/fog.rb,
lib/mystro/cloud/model/record.rb,
lib/mystro/cloud/model/volume.rb,
lib/mystro/cloud/model/compute.rb,
lib/mystro/cloud/connect/dynect.rb,
lib/mystro/cloud/model/balancer.rb,
lib/mystro/cloud/model/listener.rb,
lib/mystro/cloud/connect/aws/zone.rb,
lib/mystro/cloud/connect/aws/record.rb,
lib/mystro/cloud/connect/aws/compute.rb,
lib/mystro/cloud/connect/dynect/zone.rb,
lib/mystro/cloud/connect/aws/balancer.rb,
lib/mystro/cloud/connect/aws/listener.rb,
lib/mystro/cloud/connect/dynect/record.rb

Defined Under Namespace

Modules: Aws, Dynect, Fog Classes: Action, Balancer, Compute, Connect, Listener, Model, NotFound, Record, Volume, Zone

Class Method Summary collapse

Class Method Details

.class_for(provider, type) ⇒ Object



19
20
21
22
23
24
# File 'lib/mystro/cloud.rb', line 19

def class_for(provider, type)
  n = provider.to_s.capitalize
  t = type.to_s.capitalize
  c = "Mystro::Cloud::#{n}::#{t}"
  c.constantize
end

.new(provider, type, options = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/mystro/cloud.rb', line 4

def new(provider, type, options={})
  Mystro::Log.debug "Mystro::Cloud.new #{provider.inspect} #{type.inspect} #{options.inspect}"
  d = {
      options: {},
      config: {},
  }.merge(options)
  type = type.to_sym
  d[:options] ||= {}
  d[:config] ||= {}
  o = d[:options].merge(Mystro::Provider.get(provider).to_hash)
  c = d[:config]
  klass = class_for(provider, type)
  klass.new(o, c)
end