bora 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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