26 lines
		
	
	
		
			666 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			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
 | 
