| 
									
										
										
										
											2015-08-13 15:49:37 +03:00
										 |  |  | require "db/mongo/models/deploy_env/deploy_env_base" | 
					
						
							| 
									
										
										
										
											2015-09-24 17:56:20 +03:00
										 |  |  | #require "db/validators/deploy_env/cloud_parameters" | 
					
						
							|  |  |  | require "db/validators/deploy_env/flavor" | 
					
						
							|  |  |  | require "db/validators/deploy_env/image" | 
					
						
							|  |  |  | require "db/validators/deploy_env/subnet_not_empty" | 
					
						
							|  |  |  | require "db/validators/deploy_env/subnet_belongs_to_provider" | 
					
						
							|  |  |  | require "db/validators/deploy_env/groups" | 
					
						
							|  |  |  | require "db/validators/deploy_env/stack_template" | 
					
						
							| 
									
										
										
										
											2015-08-13 15:49:37 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | module Devops | 
					
						
							|  |  |  |   module Model | 
					
						
							|  |  |  |     class CloudDeployEnv < DeployEnvBase | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       attr_accessor :flavor, :image, :subnets, :groups, :stack_template | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  | =begin | 
					
						
							|  |  |  | @Deprecated | 
					
						
							| 
									
										
										
										
											2015-08-13 15:49:37 +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}, | 
					
						
							|  |  |  |             :groups => {:type => Array, :empty => false}, | 
					
						
							|  |  |  |             :stack_template => {:type => String, :empty => false, :nil => true} | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  | =end | 
					
						
							| 
									
										
										
										
											2015-08-13 15:49:37 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |       set_validators ::Validators::DeployEnv::Flavor, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::Image, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::SubnetNotEmpty, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::SubnetBelongsToProvider, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::Groups, | 
					
						
							|  |  |  |                      ::Validators::DeployEnv::StackTemplate | 
					
						
							| 
									
										
										
										
											2015-09-24 17:56:20 +03:00
										 |  |  | #      set_validators ::Validators::DeployEnv::CloudParameters | 
					
						
							| 
									
										
										
										
											2015-10-06 13:50:26 +03:00
										 |  |  |       set_field_validators :flavor, ::Validators::FieldValidator::Nil, | 
					
						
							|  |  |  |                                     ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                     ::Validators::FieldValidator::Flavor | 
					
						
							|  |  |  |       set_field_validators :image, ::Validators::FieldValidator::Nil, | 
					
						
							|  |  |  |                                    ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                    ::Validators::FieldValidator::Image | 
					
						
							|  |  |  |       set_field_validators :subnets, ::Validators::FieldValidator::Nil, | 
					
						
							|  |  |  |                                      ::Validators::FieldValidator::FieldType::Array | 
					
						
							|  |  |  | #                                     ::Validators::FieldValidator::Subnets.new | 
					
						
							|  |  |  |       set_field_validators :groups, ::Validators::FieldValidator::Nil, | 
					
						
							|  |  |  |                                     ::Validators::FieldValidator::FieldType::Array | 
					
						
							|  |  |  | #                                    ::Validators::FieldValidator::Groups.new | 
					
						
							|  |  |  |       set_field_validators :stack_template, ::Validators::FieldValidator::Nil, | 
					
						
							|  |  |  |                                             ::Validators::FieldValidator::FieldType::String, | 
					
						
							|  |  |  |                                             ::Validators::FieldValidator::NotEmpty, | 
					
						
							|  |  |  | #                                            ::Validators::FieldValidator::StackTemplate.new | 
					
						
							| 
									
										
										
										
											2015-08-13 15:49:37 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |       def initialize d={} | 
					
						
							|  |  |  |         super(d) | 
					
						
							|  |  |  |         self.flavor = d["flavor"] | 
					
						
							|  |  |  |         self.image = d["image"] | 
					
						
							|  |  |  |         self.stack_template = d["stack_template"] | 
					
						
							|  |  |  |         b = d["subnets"] || [] | 
					
						
							|  |  |  |         self.subnets = b.uniq | 
					
						
							|  |  |  |         b = d["groups"] || ["default"] | 
					
						
							|  |  |  |         self.groups = b.uniq | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def to_hash | 
					
						
							|  |  |  |         h = super | 
					
						
							|  |  |  |         h.merge!({ | 
					
						
							|  |  |  |           "flavor" => self.flavor, | 
					
						
							|  |  |  |           "image" => self.image, | 
					
						
							|  |  |  |           "subnets" => self.subnets, | 
					
						
							|  |  |  |           "groups" => self.groups, | 
					
						
							|  |  |  |           "stack_template" => self.stack_template | 
					
						
							|  |  |  |         }) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 |