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
|