From 126caa26822f808f25b7ebf7ab8e4bf90e13fcac Mon Sep 17 00:00:00 2001 From: amartynov Date: Tue, 17 Nov 2015 13:23:13 +0300 Subject: [PATCH] #891: create stack events --- devops-service/commands/stack.rb | 1 + devops-service/db/mongo/models/stack/stack_base.rb | 3 ++- devops-service/providers/base_provider.rb | 4 ++++ devops-service/providers/ec2.rb | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/devops-service/commands/stack.rb b/devops-service/commands/stack.rb index 3c45863..4508fea 100644 --- a/devops-service/commands/stack.rb +++ b/devops-service/commands/stack.rb @@ -24,6 +24,7 @@ module StackCommands sleep_times.each do |sleep_time| sleep sleep_time stack.sync_details! + out.puts stack.events.inspect case stack.stack_status when 'CREATE_IN_PROGRESS' out << "." diff --git a/devops-service/db/mongo/models/stack/stack_base.rb b/devops-service/db/mongo/models/stack/stack_base.rb index b8cb4c6..015ff94 100644 --- a/devops-service/db/mongo/models/stack/stack_base.rb +++ b/devops-service/db/mongo/models/stack/stack_base.rb @@ -7,7 +7,7 @@ module Devops include ModelWithProvider - attr_accessor :id, :name, :project, :deploy_env, :stack_template, :parameters, :details, :owner, :run_list + attr_accessor :id, :name, :project, :deploy_env, :stack_template, :parameters, :details, :events, :owner, :run_list types id: {type: String, empty: false}, provider: {type: String, empty: false}, @@ -67,6 +67,7 @@ module Devops def sync_details! self.details = provider_instance.stack_details(self) + self.events = provider_instance.stack_events(self) end def resources diff --git a/devops-service/providers/base_provider.rb b/devops-service/providers/base_provider.rb index bf9ef34..5ba85a4 100644 --- a/devops-service/providers/base_provider.rb +++ b/devops-service/providers/base_provider.rb @@ -43,5 +43,9 @@ module Provider def set_stack_tags stack, out="" end + def stack_events(stack) + [] + end + end end diff --git a/devops-service/providers/ec2.rb b/devops-service/providers/ec2.rb index 52644f8..7a13e62 100644 --- a/devops-service/providers/ec2.rb +++ b/devops-service/providers/ec2.rb @@ -294,6 +294,10 @@ module Provider cloud_formation.describe_stack_resources({'StackName' => stack.name}).body['StackResources'] end + def stack_events(stack) + cloud_formation.describe_stack_events(stack.name).body['StackEvents'].map{|se| {"stack_name" => se["StackName"], "stack_id" => se["StackId"], "event_id" => se["EventId"], "reason" => se["ResourceStatusReason"]}} + end + # не работает, не используется # def stack_resource(stack, resource_id) # physical_id = fog_stack(stack).resources.get(resource_id).physical_resource_id