bora 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 430ba291be8abc9a0c129e8bca4639fa29020dd0
4
- data.tar.gz: c7c059203422cc63a92b775d58dddd8cf026439e
3
+ metadata.gz: 78da414bfe432d113f09e8eeb56323ff8e8b0478
4
+ data.tar.gz: 1e28a4012d4a555b5735e8826b7d3630f3bf236d
5
5
  SHA512:
6
- metadata.gz: 7c5759c5c000c0d890c05f08bd81bf00a7b38ec398228ea2e5dc0b003113d7aa61ab5b3c87508a5d5b814e0f4b3d97b1300cf81e34f55dae534de6ca93755487
7
- data.tar.gz: ba94c9c28df960b73753a45549bf8670defcb83f48b6adcfb62a1b6c507ffb3c238c4a17a1eadcc0b0e2ba9b4ace1d270f90111bbcad663b5f5d7f7e5c6b991d
6
+ metadata.gz: 31b37b90bac1683843dbb036c7fc686eb221c09d33f2dcae85a62a497020b021d4b7ecfcf1def47bac94a4b70a64248891e5449e14275f2484f9675bec2105e4
7
+ data.tar.gz: 097620f5e2d32289f8902959df2bf4974133213204186c6dc3cabcb4a9bd48f98801a32afbb06ed9cfe970ad8f34d5a024a4373170f8d402115aa6983139170c
@@ -12,7 +12,6 @@ module Bora
12
12
 
13
13
  def initialize(stack_name)
14
14
  @stack_name = stack_name
15
- @cfn = Aws::CloudFormation::Client.new
16
15
  @processed_events = Set.new
17
16
  end
18
17
 
@@ -39,7 +38,7 @@ module Bora
39
38
 
40
39
  def events
41
40
  return if !exists?
42
- events = @cfn.describe_stack_events({stack_name: underlying_stack.stack_id}).stack_events
41
+ events = cloudformation.describe_stack_events({stack_name: underlying_stack.stack_id}).stack_events
43
42
  events.reverse.map { |e| Event.new(e) }
44
43
  end
45
44
 
@@ -50,7 +49,7 @@ module Bora
50
49
 
51
50
  def template(pretty = true)
52
51
  return if !exists?
53
- template = @cfn.get_template({stack_name: @stack_name}).template_body
52
+ template = cloudformation.get_template({stack_name: @stack_name}).template_body
54
53
  template = JSON.pretty_generate(JSON.parse(template)) if pretty
55
54
  template
56
55
  end
@@ -71,7 +70,7 @@ module Bora
71
70
  end
72
71
 
73
72
  def validate(options)
74
- @cfn.validate_template(resolve_options(options).select { |k| [:template_body, :template_url].include?(k) })
73
+ cloudformation.validate_template(resolve_options(options).select { |k| [:template_body, :template_url].include?(k) })
75
74
  end
76
75
 
77
76
  def status
@@ -86,6 +85,10 @@ module Bora
86
85
  # =============================================================================================
87
86
  private
88
87
 
88
+ def cloudformation
89
+ @cfn ||= Aws::CloudFormation::Client.new
90
+ end
91
+
89
92
  def method_missing(sym, *args, &block)
90
93
  underlying_stack ? underlying_stack.send(sym, *args, &block) : nil
91
94
  end
@@ -96,7 +99,7 @@ module Bora
96
99
  @previous_event_time = last_event_time
97
100
  begin
98
101
  action_options = {stack_name: @stack_name}.merge(resolve_options(options))
99
- @cfn.method("#{action.to_s.downcase}_stack").call(action_options)
102
+ cloudformation.method("#{action.to_s.downcase}_stack").call(action_options)
100
103
  wait_for_completion(&block)
101
104
  rescue Aws::CloudFormation::Errors::ValidationError => e
102
105
  raise e unless e.message.include?(NO_UPDATE_MESSAGE)
@@ -133,7 +136,7 @@ module Bora
133
136
  def underlying_stack(refresh: false)
134
137
  if !@_stack || refresh
135
138
  begin
136
- response = @cfn.describe_stacks({stack_name: @stack_name})
139
+ response = cloudformation.describe_stacks({stack_name: @stack_name})
137
140
  @_stack = response.stacks[0]
138
141
  rescue Aws::CloudFormation::Errors::ValidationError
139
142
  @_stack = nil
@@ -144,7 +147,7 @@ module Bora
144
147
 
145
148
  def unprocessed_events
146
149
  return [] if !underlying_stack
147
- events = @cfn.describe_stack_events({stack_name: underlying_stack.stack_id}).stack_events
150
+ events = cloudformation.describe_stack_events({stack_name: underlying_stack.stack_id}).stack_events
148
151
  unprocessed_events = events.select do |event|
149
152
  !@processed_events.include?(event.event_id) && @previous_event_time < event.timestamp
150
153
  end
@@ -154,7 +157,7 @@ module Bora
154
157
 
155
158
  def last_event_time
156
159
  return Time.at(0) if !underlying_stack
157
- events = @cfn.describe_stack_events({stack_name: @stack_name}).stack_events
160
+ events = cloudformation.describe_stack_events({stack_name: @stack_name}).stack_events
158
161
  events.length > 0 ? events[0].timestamp : Time.at(0)
159
162
  end
160
163
 
@@ -1,3 +1,3 @@
1
1
  module Bora
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bora
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Blaxland
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-21 00:00:00.000000000 Z
11
+ date: 2016-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk