aws-cft-tools 0.1.1 → 0.1.2
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 153baa62a12a723ecc3749c8e64e04a005f48dd0
|
4
|
+
data.tar.gz: ff49055bd3a98f3262fa9d3e890bf3f9f894ac61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6ddab54a09a0dfe5bc2a3b5472cbf3cf89c42e1d1bd9780140784a39893ee18861287ad11307373caa6a2887e95f17ad8e5605a00694a595fe4abbec84a1253
|
7
|
+
data.tar.gz: 8332135791348d11749c743e7e9342dee76b56aa1fc2f4dde2e35bc3aa0b31edeb75197d2ff617c9e6c2bc08af6240a2ffd9057e383150b47f259c743b7ff0f5
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [0.1.2] - 2017-12-22
|
4
|
+
|
5
|
+
### Changed
|
6
|
+
|
7
|
+
* When retracting stacks, a template that hadn't been deployed yet could block removal of any templates it
|
8
|
+
depended on. Now, retraction only considers templates that have been deployed. (Issue #18)
|
9
|
+
|
3
10
|
## [0.1.1] - 2017-12-15
|
4
11
|
|
5
12
|
### Added
|
@@ -98,12 +98,25 @@ module AwsCftTools
|
|
98
98
|
private
|
99
99
|
|
100
100
|
def close_subset(set, &block)
|
101
|
-
|
102
|
-
set - items_outside_subset(set, &block)
|
101
|
+
find_all_available(set.to_a) { |all, acc| find_next_candidate(all, acc, &block) }
|
103
102
|
end
|
104
103
|
|
105
|
-
def
|
106
|
-
|
104
|
+
def find_all_available(candidates)
|
105
|
+
available = []
|
106
|
+
while candidates.any?
|
107
|
+
candidate = yield(candidates, available)
|
108
|
+
return available unless candidate
|
109
|
+
available << candidate
|
110
|
+
candidates.delete(candidate)
|
111
|
+
end
|
112
|
+
available
|
113
|
+
end
|
114
|
+
|
115
|
+
def find_next_candidate(candidates, selected)
|
116
|
+
return unless block_given?
|
117
|
+
candidates.detect do |candidate|
|
118
|
+
(yield(candidate) - selected).empty?
|
119
|
+
end
|
107
120
|
end
|
108
121
|
end
|
109
122
|
end
|
@@ -55,7 +55,10 @@ module AwsCftTools
|
|
55
55
|
# report_undefined_image - provide list of undefined imports that block stack deployment
|
56
56
|
#
|
57
57
|
def report_template_dependencies
|
58
|
-
|
58
|
+
free = free_templates
|
59
|
+
deployed = client.stacks.map(&:name)
|
60
|
+
all = templates.select { |template| deployed.include?(template.name) }
|
61
|
+
diff = (all - free).map { |template| template.filename.to_s }
|
59
62
|
error_on_dependencies(diff) if diff.any?
|
60
63
|
end
|
61
64
|
|
@@ -28,8 +28,11 @@ module AwsCftTools
|
|
28
28
|
#
|
29
29
|
# @return [AwsCftTools::TemplateSet]
|
30
30
|
def free_templates
|
31
|
-
|
32
|
-
client.templates.
|
31
|
+
deployed = client.stacks.map(&:name)
|
32
|
+
universe = AwsCftTools::TemplateSet.new(client.templates.select do |template|
|
33
|
+
deployed.include?(template.name)
|
34
|
+
end)
|
35
|
+
universe.closed_subset(templates).reverse
|
33
36
|
end
|
34
37
|
|
35
38
|
##
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-cft-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Small Business Administration
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|