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_validators ::Validators::DeployEnv::CloudParameters 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 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