fluke/devops-service/db/mongo/models/stack/stack_factory.rb

31 lines
669 B
Ruby
Raw Normal View History

2015-02-12 13:01:05 +03:00
require_relative "stack_base"
require_relative "stack_openstack"
require_relative "stack_ec2"
2015-03-06 12:20:30 +03:00
module Devops
module Model
class StackFactory
2015-02-12 13:01:05 +03:00
2015-03-06 12:20:30 +03:00
def self.create(provider, attrs)
get_class(provider).create(attrs)
end
2015-02-12 13:01:05 +03:00
2015-03-06 12:20:30 +03:00
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}'"
2015-03-06 12:20:30 +03:00
end
end
2015-02-12 13:01:05 +03:00
end
end
end