cfn-status 0.4.5 → 0.5.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
  SHA256:
3
- metadata.gz: 7b8d3f2b5eaaab5d41d434b53fdb4ed16337bac065772db5efd0da6869f03d7c
4
- data.tar.gz: 7412b786f0ab988f2c20100222026a13fa8cd1385742efc2cc074d6bfb319925
3
+ metadata.gz: 8995a22b702f88f6b8474940ff4cedcad0ed03f5959662f858b20597b3b7bd75
4
+ data.tar.gz: 9d0a502a23754203bfdc2a7043c587b168379fc0419b2849cb76374525c9516b
5
5
  SHA512:
6
- metadata.gz: 1b32d13db397770b601204ec8c9dcc33d28c0f7671863d84a8e3e225adfd2feb5674eba8ff06e808cb8399f5452e3fb9b3d9f267cc4b90288da0e02c16ea5604
7
- data.tar.gz: 97dfb7f30531b3269c255af4d892e4c67084cc6c21670adc43efa48c5927088317983fdfe00888ee29a5a3395fbfb3c162c632aba34470aa67b7b1056875b6aa
6
+ metadata.gz: 39b82b43b28f88fc08b784a6c595d27f553f641add1f27f0ae207de62182b05269fbba62f0c094d84da918b8cf450d4ffa8d050fb73a73a63bbdbda957cd7d2e
7
+ data.tar.gz: f6c0b78894e28f66285c9bafb6c48775c4e13dc72d2c5908c3168368c6cf4d571ab66e464b5f9bdebc7b48ab9166f88fbd8090164fe85a3ace2624af2557e589
data/CHANGELOG.md CHANGED
@@ -3,6 +3,15 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *loosely* adheres to [Semantic Versioning](http://semver.org/), even before v1.0.
5
5
 
6
+ ## [0.5.0] - 2023-12-17
7
+ - [#6](https://github.com/tongueroo/cfn-status/pull/6) Use events.dig instead of brackets
8
+ - [#7](https://github.com/tongueroo/cfn-status/pull/7) Add start_index_before_delete option
9
+ - add add_development_dependency nokogiri
10
+ - improve dev dependency version pins
11
+
12
+ ## [0.4.6] - 2022-02-21
13
+ - show took time for deletion also
14
+
6
15
  ## [0.4.5] - 2022-02-20
7
16
  - [#5](https://github.com/tongueroo/cfn-status/pull/5) cfn-status retry options
8
17
 
data/cfn-status.gemspec CHANGED
@@ -24,7 +24,8 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_dependency "aws-sdk-cloudformation"
26
26
 
27
- spec.add_development_dependency "bundler", "~> 2.0"
28
- spec.add_development_dependency "rake", "~> 10.0"
29
- spec.add_development_dependency "rspec", "~> 3.0"
27
+ spec.add_development_dependency "nokogiri"
28
+ spec.add_development_dependency "bundler"
29
+ spec.add_development_dependency "rake", ">= 12.3.3"
30
+ spec.add_development_dependency "rspec", ">= 3.0"
30
31
  end
@@ -1,3 +1,3 @@
1
1
  class CfnStatus
2
- VERSION = "0.4.5"
2
+ VERSION = "0.5.0"
3
3
  end
data/lib/cfn_status.rb CHANGED
@@ -23,7 +23,7 @@ class CfnStatus
23
23
  return true
24
24
  end
25
25
 
26
- puts "The current status for the stack #{@stack_name.color(:green)} is #{stack.stack_status.color(:green)}"
26
+ puts "Stack #{@stack_name.color(:green)} Status: #{stack.stack_status.color(:green)}"
27
27
  if in_progress?
28
28
  puts "Stack events (tailing):"
29
29
  # tail all events until done
@@ -66,6 +66,7 @@ class CfnStatus
66
66
 
67
67
  if @stack_deletion_completed
68
68
  puts "Stack #{@stack_name} deleted."
69
+ show_took(start_time)
69
70
  return
70
71
  end
71
72
 
@@ -74,7 +75,7 @@ class CfnStatus
74
75
 
75
76
  if last_event_status =~ /_FAILED/
76
77
  puts "Stack failed: #{last_event_status}".color(:red)
77
- puts "Stack reason #{@events[0]["resource_status_reason"]}".color(:red)
78
+ puts "Stack reason #{@events.dig(0,"resource_status_reason")}".color(:red)
78
79
  elsif last_event_status =~ /_ROLLBACK_/
79
80
  puts "Stack rolled back: #{last_event_status}".color(:red)
80
81
  else # success
@@ -82,15 +83,19 @@ class CfnStatus
82
83
  end
83
84
 
84
85
  return if @hide_time_took # set in run
85
- took = Time.now - start_time
86
- puts "Time took: #{pretty_time(took).color(:green)}."
86
+ show_took(start_time)
87
87
  success?
88
88
  end
89
89
 
90
+ def show_took(start_time)
91
+ took = Time.now - start_time
92
+ puts "Time took: #{pretty_time(took).color(:green)}"
93
+ end
94
+
90
95
  def completed
91
96
  last_event_status =~ /(_COMPLETE|_FAILED)$/ &&
92
- @events[0]["logical_resource_id"] == @stack_name &&
93
- @events[0]["resource_type"] == "AWS::CloudFormation::Stack"
97
+ @events.dig(0,"logical_resource_id") == @stack_name &&
98
+ @events.dig(0,"resource_type") == "AWS::CloudFormation::Stack"
94
99
  end
95
100
 
96
101
  def last_event_status
@@ -118,7 +123,7 @@ class CfnStatus
118
123
  print_event(e)
119
124
  end
120
125
 
121
- @last_shown_event_id = @events[0]["event_id"]
126
+ @last_shown_event_id = @events.dig(0, "event_id")
122
127
  # puts "@last_shown_event_id #{@last_shown_event_id.inspect}"
123
128
  end
124
129
 
@@ -186,9 +191,14 @@ class CfnStatus
186
191
 
187
192
  # Should always find a "User Initiated" stack event when @last_shown_index is not set
188
193
  def start_index
194
+ start_index_before_delete = @options[:start_index_before_delete]
195
+
189
196
  @events.find_index do |event|
197
+ skip = start_index_before_delete && event["resource_status"] == "DELETE_IN_PROGRESS"
198
+
190
199
  event["resource_type"] == "AWS::CloudFormation::Stack" &&
191
- event["resource_status_reason"] == "User Initiated"
200
+ event["resource_status_reason"] == "User Initiated" &&
201
+ !skip
192
202
  end
193
203
  end
194
204
 
@@ -199,12 +209,12 @@ class CfnStatus
199
209
  end
200
210
 
201
211
  def success?
202
- resource_status = @events[0]["resource_status"]
212
+ resource_status = @events.dig(0,"resource_status")
203
213
  %w[CREATE_COMPLETE UPDATE_COMPLETE].include?(resource_status)
204
214
  end
205
215
 
206
216
  def update_rollback?
207
- @events[0]["resource_status"] == "UPDATE_ROLLBACK_COMPLETE"
217
+ @events.dig(0,"resource_status") == "UPDATE_ROLLBACK_COMPLETE"
208
218
  end
209
219
 
210
220
  def find_update_failed_event
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfn-status
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-20 00:00:00.000000000 Z
11
+ date: 2023-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-cloudformation
@@ -24,46 +24,60 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '2.0'
47
+ version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '2.0'
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: '10.0'
61
+ version: 12.3.3
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: '10.0'
68
+ version: 12.3.3
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rspec
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - "~>"
73
+ - - ">="
60
74
  - !ruby/object:Gem::Version
61
75
  version: '3.0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - "~>"
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '3.0'
69
83
  description:
@@ -108,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
122
  - !ruby/object:Gem::Version
109
123
  version: '0'
110
124
  requirements: []
111
- rubygems_version: 3.2.32
125
+ rubygems_version: 3.4.20
112
126
  signing_key:
113
127
  specification_version: 4
114
128
  summary: CloudFormation status library