cfn-status 0.4.5 → 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: 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