31 lines
679 B
Ruby
31 lines
679 B
Ruby
require_relative "stack_base"
|
|
require_relative "stack_openstack"
|
|
require_relative "stack_ec2"
|
|
|
|
module Devops
|
|
module Model
|
|
class StackFactory
|
|
|
|
def self.create(provider, attrs, out)
|
|
get_class(provider).create(attrs, out)
|
|
end
|
|
|
|
def self.build_from_bson(provider, attrs)
|
|
get_class(provider).build_from_bson(attrs)
|
|
end
|
|
|
|
def self.get_class(provider)
|
|
case provider
|
|
when ::Provider::Openstack::PROVIDER
|
|
StackOpenstack
|
|
when ::Provider::Ec2::PROVIDER
|
|
StackEc2
|
|
else
|
|
raise InvalidRecord.new "Invalid provider: '#{provider}'"
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|