fix several bugs

This commit is contained in:
Anton Chuchkalov 2015-08-28 17:00:48 +03:00
parent 6c7a700861
commit da7d78f843
6 changed files with 19 additions and 11 deletions

View File

@ -19,7 +19,7 @@ module Devops
def create_stack_template provider def create_stack_template provider
body = parser.create body = parser.create
template_model = Model::StackTemplateFactory.create(provider, {'template_body' => body.to_json}) template_model = Model::StackTemplateFactory.create(provider, body)
Devops::Db.connector.stack_template_insert(template_model) Devops::Db.connector.stack_template_insert(template_model)
template_model template_model
end end

View File

@ -34,7 +34,7 @@ module Devops
body = create_object_from_json_body body = create_object_from_json_body
check_string(body["name"], "Parameter 'name' must be a not empty string") check_string(body["name"], "Parameter 'name' must be a not empty string")
check_array(body["deploy_envs"], "Parameter 'deploy_envs' must be a not empty array of objects", Hash) check_array(body["deploy_envs"], "Parameter 'deploy_envs' must be a not empty array of objects", Hash)
check_array(body["run_list"], "Parameter 'run_list' must be a not empty array of string", String, false, true) # check_array(body["run_list"], "Parameter 'run_list' must be a not empty array of string", String, false, true)
Devops::Model::Project.new(body) Devops::Model::Project.new(body)
end end
@ -46,7 +46,7 @@ module Devops
def update def update
body = create_object_from_json_body body = create_object_from_json_body
check_array(body["deploy_envs"], "Parameter 'deploy_envs' must be a not empty array of objects", Hash) check_array(body["deploy_envs"], "Parameter 'deploy_envs' must be a not empty array of objects", Hash)
check_array(body["run_list"], "Parameter 'run_list' must be a not empty array of string", String, false, true) # check_array(body["run_list"], "Parameter 'run_list' must be a not empty array of string", String, false, true)
Devops::Model::Project.new(body) Devops::Model::Project.new(body)
end end

View File

@ -1,4 +1,6 @@
require "db/mongo/models/model_with_provider" require "db/mongo/models/model_with_provider"
require "providers/exceptions/name_conflict"
module Devops module Devops
module Model module Model
class StackBase < MongoModel class StackBase < MongoModel
@ -41,12 +43,17 @@ module Devops
name: name, name: name,
parameters: parameters, parameters: parameters,
# details are required to proper status handling # details are required to proper status handling
details: details, details: bson_safe_details,
stack_status: stack_status, stack_status: stack_status,
owner: owner owner: owner
} }
end end
# overrided in ec2
def bson_safe_details
details
end
def create_stack_in_cloud! out def create_stack_in_cloud! out
begin begin
provider_instance.create_stack(self, out) provider_instance.create_stack(self, out)
@ -60,7 +67,7 @@ module Devops
end end
def sync_details! def sync_details!
self.details = provider_instance.stack_details(self)#.attributes self.details = provider_instance.stack_details(self)
end end
def resources def resources

View File

@ -11,11 +11,12 @@ module Devops
details['StackStatus'] if details details['StackStatus'] if details
end end
=begin def bson_safe_details
def self.provider return unless details
'ec2' result = details.dup
result['CreationTime'] = result['CreationTime'].to_s
result
end end
=end
end end
end end

View File

@ -7,7 +7,7 @@ module Devops
class StackTemplateFactory class StackTemplateFactory
def self.create(provider, attrs) def self.create(provider, attrs)
attrs['id'] = "#{provider}_stack_template_#{Time.new.to_i}" attrs['id'] ||= "#{provider}_stack_template_#{Time.new.to_i}"
attrs['provider'] = provider attrs['provider'] = provider
st = get_class(provider).create(attrs) st = get_class(provider).create(attrs)
end end

View File

@ -274,7 +274,7 @@ module Provider
end end
def create_default_stack_name s def create_default_stack_name s
"stack-#{self.ssh_key}-#{s.project}-#{s.deploy_env}-#{Time.now.to_i}" "stack-#{self.ssh_key}-#{s.project}-#{s.deploy_env}-#{Time.now.to_i}".gsub('_', '-')
end end
private private
def convert_groups list def convert_groups list