fluke/devops-service/db/mongo/models/deploy_env.rb
2014-06-24 13:40:52 +04:00

26 lines
666 B
Ruby

require "db/exceptions/invalid_record"
require "db/mongo/models/deploy_env_static"
require "db/mongo/models/deploy_env_openstack"
require "db/mongo/models/deploy_env_ec2"
require "providers/static"
require "providers/openstack"
require "providers/ec2"
class DeployEnv
def self.create hash
c = case(hash["provider"])
when ::Provider::Static::PROVIDER
DeployEnvStatic
when ::Provider::Ec2::PROVIDER
DeployEnvEc2
when ::Provider::Openstack::PROVIDER
DeployEnvOpenstack
else
raise InvalidRecord.new "Invalid provider '#{hash["provider"]}' for deploy envirenment '#{hash["identifier"]}'"
end
c.new(hash)
end
end