cfn-status 0.4.6 → 0.5.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
  SHA256:
3
- metadata.gz: d783959f733a3175c56612fc8b1f9be8124f4c21fc591d87df3fc2457b57040f
4
- data.tar.gz: c78bffbbfd322f25fa4b6c00ed8b0c98e386dac24042bfec825d409e2e4ea357
3
+ metadata.gz: 8995a22b702f88f6b8474940ff4cedcad0ed03f5959662f858b20597b3b7bd75
4
+ data.tar.gz: 9d0a502a23754203bfdc2a7043c587b168379fc0419b2849cb76374525c9516b
5
5
  SHA512:
6
- metadata.gz: a2a89727d0321574dda3f212dbdfeff7ffae32ae3621de889191f6632d8b1aae8c98dd5f8b16c32c80789864fe0d63665fca304831c07e2bc015c5db310e6c34
7
- data.tar.gz: e691c6788d1a5400d80e4e2ff01157dd80985f0464c58118cf78e04364bf055f24784cc662d93f72237d415f497c0d0eb1ec0b7a3c24872f903fec4eff5c6e43
6
+ metadata.gz: 39b82b43b28f88fc08b784a6c595d27f553f641add1f27f0ae207de62182b05269fbba62f0c094d84da918b8cf450d4ffa8d050fb73a73a63bbdbda957cd7d2e
7
+ data.tar.gz: f6c0b78894e28f66285c9bafb6c48775c4e13dc72d2c5908c3168368c6cf4d571ab66e464b5f9bdebc7b48ab9166f88fbd8090164fe85a3ace2624af2557e589
data/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
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
+
6
12
  ## [0.4.6] - 2022-02-21
7
13
  - show took time for deletion also
8
14
 
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.6"
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
@@ -75,7 +75,7 @@ class CfnStatus
75
75
 
76
76
  if last_event_status =~ /_FAILED/
77
77
  puts "Stack failed: #{last_event_status}".color(:red)
78
- puts "Stack reason #{@events[0]["resource_status_reason"]}".color(:red)
78
+ puts "Stack reason #{@events.dig(0,"resource_status_reason")}".color(:red)
79
79
  elsif last_event_status =~ /_ROLLBACK_/
80
80
  puts "Stack rolled back: #{last_event_status}".color(:red)
81
81
  else # success
@@ -94,8 +94,8 @@ class CfnStatus
94
94
 
95
95
  def completed
96
96
  last_event_status =~ /(_COMPLETE|_FAILED)$/ &&
97
- @events[0]["logical_resource_id"] == @stack_name &&
98
- @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"
99
99
  end
100
100
 
101
101
  def last_event_status
@@ -123,7 +123,7 @@ class CfnStatus
123
123
  print_event(e)
124
124
  end
125
125
 
126
- @last_shown_event_id = @events[0]["event_id"]
126
+ @last_shown_event_id = @events.dig(0, "event_id")
127
127
  # puts "@last_shown_event_id #{@last_shown_event_id.inspect}"
128
128
  end
129
129
 
@@ -191,9 +191,14 @@ class CfnStatus
191
191
 
192
192
  # Should always find a "User Initiated" stack event when @last_shown_index is not set
193
193
  def start_index
194
+ start_index_before_delete = @options[:start_index_before_delete]
195
+
194
196
  @events.find_index do |event|
197
+ skip = start_index_before_delete && event["resource_status"] == "DELETE_IN_PROGRESS"
198
+
195
199
  event["resource_type"] == "AWS::CloudFormation::Stack" &&
196
- event["resource_status_reason"] == "User Initiated"
200
+ event["resource_status_reason"] == "User Initiated" &&
201
+ !skip
197
202
  end
198
203
  end
199
204
 
@@ -204,12 +209,12 @@ class CfnStatus
204
209
  end
205
210
 
206
211
  def success?
207
- resource_status = @events[0]["resource_status"]
212
+ resource_status = @events.dig(0,"resource_status")
208
213
  %w[CREATE_COMPLETE UPDATE_COMPLETE].include?(resource_status)
209
214
  end
210
215
 
211
216
  def update_rollback?
212
- @events[0]["resource_status"] == "UPDATE_ROLLBACK_COMPLETE"
217
+ @events.dig(0,"resource_status") == "UPDATE_ROLLBACK_COMPLETE"
213
218
  end
214
219
 
215
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.6
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-21 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