| 
									
										
										
										
											2015-08-13 15:49:37 +03:00
										 |  |  | require "db/mongo/models/deploy_env/cloud_deploy_env" | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  | module Devops | 
					
						
							|  |  |  |   module Model | 
					
						
							| 
									
										
										
										
											2015-08-13 15:49:37 +03:00
										 |  |  |     class DeployEnvEc2 < CloudDeployEnv | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       types :identifier => {:type => String, :empty => false}, | 
					
						
							|  |  |  |         :image => {:type => String, :empty => false}, | 
					
						
							|  |  |  |         :flavor => {:type => String, :empty => false}, | 
					
						
							|  |  |  |         :provider => {:type => String, :empty => false}, | 
					
						
							|  |  |  |         :expires => {:type => String, :empty => false, :nil => true}, | 
					
						
							|  |  |  |         :run_list => {:type => Array, :empty => true}, | 
					
						
							|  |  |  |         :users => {:type => Array, :empty => true}, | 
					
						
							|  |  |  |         :subnets => {:type => Array, :empty => true}, | 
					
						
							| 
									
										
										
										
											2015-08-13 15:49:37 +03:00
										 |  |  |         :groups => {:type => Array, :empty => false}, | 
					
						
							|  |  |  |         :stack_template => {:type => String, :empty => false, :nil => true} | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-13 15:49:37 +03:00
										 |  |  | =begin | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       set_validators ::Validators::DeployEnv::RunList, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::Expiration, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::Users, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::Flavor, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::Image, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::SubnetBelongsToProvider, | 
					
						
							| 
									
										
										
										
											2015-08-13 15:49:37 +03:00
										 |  |  |                      ::Validators::DeployEnv::Groups, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::StackTemplate | 
					
						
							|  |  |  | =end | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |       def initialize d={} | 
					
						
							|  |  |  |         super(d) | 
					
						
							| 
									
										
										
										
											2015-08-13 15:49:37 +03:00
										 |  |  |         if self.subnets.size > 1
 | 
					
						
							|  |  |  |           self.subnets = [ self.subnets[0] ] | 
					
						
							| 
									
										
										
										
											2015-03-06 12:20:30 +03:00
										 |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def self.create hash | 
					
						
							|  |  |  |         DeployEnvEc2.new(hash) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       private | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def subnets_filter | 
					
						
							|  |  |  |         networks = provider_instance.networks | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         unless self.subnets.empty? | 
					
						
							|  |  |  |           {"vpc-id" => networks.detect{|n| n["name"] == self.subnets[0]}["vpcId"] } | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2015-02-12 13:01:05 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |