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::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
|
|
|
|
|
|