63 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "db/mongo/models/deploy_env/deploy_env_base"
 | |
| #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"
 | |
| 
 | |
| module Devops
 | |
|   module Model
 | |
|     class CloudDeployEnv < DeployEnvBase
 | |
| 
 | |
|       attr_accessor :flavor, :image, :subnets, :groups, :stack_template
 | |
| 
 | |
|       set_validators ::Validators::DeployEnv::Flavor,
 | |
|                      ::Validators::DeployEnv::Image,
 | |
|                      ::Validators::DeployEnv::Groups,
 | |
|                      ::Validators::DeployEnv::StackTemplate
 | |
|       set_field_validators :flavor, [::Validators::FieldValidator::Nil,
 | |
|                                     ::Validators::FieldValidator::FieldType::String,
 | |
|                                     ::Validators::FieldValidator::Flavor], order: 2
 | |
|       set_field_validators :image, [::Validators::FieldValidator::Nil,
 | |
|                                    ::Validators::FieldValidator::FieldType::String,
 | |
|                                    ::Validators::FieldValidator::Image], order: 2
 | |
|       set_field_validators :subnets, [::Validators::FieldValidator::Nil,
 | |
|                                      ::Validators::FieldValidator::FieldType::Array], order: 4
 | |
| #                                     ::Validators::FieldValidator::Subnets.new
 | |
|       set_field_validators :groups, [::Validators::FieldValidator::Nil,
 | |
|                                     ::Validators::FieldValidator::FieldType::Array], order: 4
 | |
| #                                    ::Validators::FieldValidator::Groups.new
 | |
|       set_field_validators :stack_template, [::Validators::FieldValidator::Nil,
 | |
|                                             ::Validators::FieldValidator::FieldType::String,
 | |
|                                             ::Validators::FieldValidator::NotEmpty], order: 2
 | |
| #                                            ::Validators::FieldValidator::StackTemplate.new
 | |
| 
 | |
|       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
 | |
| 
 | 
