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 +4 -4
- data/lib/bora/stack.rb +11 -8
- data/lib/bora/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78da414bfe432d113f09e8eeb56323ff8e8b0478
|
4
|
+
data.tar.gz: 1e28a4012d4a555b5735e8826b7d3630f3bf236d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31b37b90bac1683843dbb036c7fc686eb221c09d33f2dcae85a62a497020b021d4b7ecfcf1def47bac94a4b70a64248891e5449e14275f2484f9675bec2105e4
|
7
|
+
data.tar.gz: 097620f5e2d32289f8902959df2bf4974133213204186c6dc3cabcb4a9bd48f98801a32afbb06ed9cfe970ad8f34d5a024a4373170f8d402115aa6983139170c
|
data/lib/bora/stack.rb
CHANGED
@@ -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 =
|
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 =
|
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
|
-
|
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
|
-
|
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 =
|
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 =
|
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 =
|
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
|
|
data/lib/bora/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2016-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|