| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | require "db/exceptions/invalid_record" | 
					
						
							| 
									
										
										
										
											2014-06-24 13:40:52 +04:00
										 |  |  | 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" | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-24 13:40:52 +04:00
										 |  |  | class DeployEnv | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def self.create hash | 
					
						
							| 
									
										
										
										
											2014-06-24 13:40:52 +04:00
										 |  |  |     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) | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end |