cloud params validator

This commit is contained in:
amartynov 2015-09-24 17:19:56 +03:00
parent 66d3df5aa6
commit e681b6dbfb
2 changed files with 44 additions and 8 deletions

View File

@ -1,12 +1,5 @@
require "db/mongo/models/deploy_env/deploy_env_base"
require "db/validators/deploy_env/run_list"
require "db/validators/deploy_env/expiration"
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"
require "db/validators/deploy_env/cloud_parameters"
module Devops
module Model
@ -25,12 +18,15 @@ module Devops
:groups => {:type => Array, :empty => false},
:stack_template => {:type => String, :empty => false, :nil => true}
=begin
set_validators ::Validators::DeployEnv::Flavor,
::Validators::DeployEnv::Image,
::Validators::DeployEnv::SubnetNotEmpty,
::Validators::DeployEnv::SubnetBelongsToProvider,
::Validators::DeployEnv::Groups,
::Validators::DeployEnv::StackTemplate
=end
set_validators ::Validators::DeployEnv::CloudParameters
def initialize d={}
super(d)

View File

@ -0,0 +1,40 @@
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 Validators
class DeployEnv::CloudParameters < Base
def valid?
is_stack = !@model.stack_template.nil?
is_server_params = !@model.flavor.nil? or !@model.image.nil? or !@model.subnets.nil? or !@model.groups.nil?
if !is_server_params and !is_stack
@msg = "You should define 'stack_template' or all instance parameters (image, flavor, subnets, groups)"
return false
end
if is_stack
StackTemplate.new(@model).validate!
end
if is_server_params
Flavor.new(@model).validate!
Image.new(@model).validate!
SubnetNotEmpty.new(@model).validate!
SubnetBelongsToProvider.new(@model).validate!
Groups.new(@model).validate!
end
return true
rescue InvalidRecord => e
@msg = e.message
return false
end
def message
@msg
end
end
end