stackit 0.1.0 → 0.1.1
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/stackit.rb +2 -2
- data/lib/stackit/stack.rb +3 -3
- data/lib/stackit/stack/managed_stack.rb +10 -21
- data/lib/stackit/version.rb +1 -1
- data/stackit.gemspec +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: 2aff5ca524ea49528392a501576e27e9aa944e6c
|
4
|
+
data.tar.gz: c21c2bd9ea0fa51735eb6fc4fe0ef537aed4e6e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a01703e3394799d829b01e4a9b783169df5e6b705d7141e5d78488e147d76061fbc6d5593c390041d129be0237b25fc7f555a7b0e7fb0f2f20cc50b6091b6b8
|
7
|
+
data.tar.gz: 9ea4daf3f9fb5775886d72afd792fdd7e634c32011dcc71d65fef8f26cb637d7496fb230933bbc54b436bdbfec1d190c09043f8ee19808b34f5e2cc3419c7048
|
data/lib/stackit.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require "logger"
|
2
2
|
require "pp"
|
3
|
-
require "
|
4
|
-
require 'json'
|
3
|
+
require "json"
|
5
4
|
require "active_support"
|
6
5
|
require "active_support/all"
|
7
6
|
require "awsclient"
|
7
|
+
require "stackit/version"
|
8
8
|
require "stackit/aws"
|
9
9
|
require "stackit/template"
|
10
10
|
require "stackit/stack/default_notifier"
|
data/lib/stackit/stack.rb
CHANGED
@@ -43,7 +43,7 @@ module Stackit
|
|
43
43
|
def parameters
|
44
44
|
@parameters ||= begin
|
45
45
|
stack.parameters.inject({}) do |hash, param|
|
46
|
-
hash.merge(param[:parameter_key] => param[:parameter_value])
|
46
|
+
hash.merge(param[:parameter_key].to_sym => param[:parameter_value])
|
47
47
|
end
|
48
48
|
rescue ::Aws::CloudFormation::Errors::ValidationError => e
|
49
49
|
[] if e.message =~ /Stack with id #{stack_name} does not exist/
|
@@ -53,7 +53,7 @@ module Stackit
|
|
53
53
|
def outputs
|
54
54
|
@outputs ||= begin
|
55
55
|
stack.outputs.inject({}) do |hash, output|
|
56
|
-
hash.merge(output[:output_key] => output[:output_value])
|
56
|
+
hash.merge(output[:output_key].to_sym => output[:output_value])
|
57
57
|
end
|
58
58
|
rescue ::Aws::CloudFormation::Errors::ValidationError => e
|
59
59
|
[] if e.message =~ /Stack with id #{stack_name} does not exist/
|
@@ -62,7 +62,7 @@ module Stackit
|
|
62
62
|
|
63
63
|
def resources
|
64
64
|
@resources ||= list_stack_resources.inject({}) do |hash, resource|
|
65
|
-
hash.merge(resource[:logical_resource_id] => resource[:physical_resource_id])
|
65
|
+
hash.merge(resource[:logical_resource_id].to_sym => resource[:physical_resource_id])
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
@@ -40,7 +40,7 @@ module Stackit
|
|
40
40
|
if param_map
|
41
41
|
param_map.symbolize_keys!
|
42
42
|
else
|
43
|
-
|
43
|
+
{}
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
@@ -51,7 +51,10 @@ module Stackit
|
|
51
51
|
def create_template(t)
|
52
52
|
template_path = t ? t : File.join(Dir.pwd, 'cloudformation', "#{stack_name.underscore.dasherize}.json")
|
53
53
|
return unless File.exist?(template_path)
|
54
|
-
template = Template.new(
|
54
|
+
template = Template.new(
|
55
|
+
:cloudformation => cloudformation,
|
56
|
+
:template_path => template_path
|
57
|
+
)
|
55
58
|
template.parse!
|
56
59
|
end
|
57
60
|
|
@@ -219,37 +222,23 @@ module Stackit
|
|
219
222
|
end
|
220
223
|
end
|
221
224
|
|
222
|
-
def dependent_parameters
|
223
|
-
depends.inject([]) do |arr, dep|
|
224
|
-
arr.push(Stackit::Stack.new(stack_name))
|
225
|
-
end
|
226
|
-
end
|
227
|
-
|
228
225
|
def merged_parameters
|
229
|
-
|
230
|
-
parsed_parameters = template.parsed_parameters
|
226
|
+
merged_params = template.parsed_parameters
|
231
227
|
return parsed_parameters unless depends.length
|
232
|
-
|
233
|
-
validated_parameters = parsed_parameters.clone
|
234
|
-
|
235
228
|
# merge file parameters
|
236
|
-
|
237
|
-
|
238
|
-
# merge --depends
|
229
|
+
merged_params.merge!(file_parameters) if file_parameters
|
239
230
|
depends.each do |dependent_stack_name|
|
240
231
|
this_stack = Stack.new({
|
241
232
|
cloudformation: cloudformation,
|
242
233
|
stack_name: dependent_stack_name
|
243
234
|
})
|
244
|
-
|
235
|
+
merged_params.select { |param|
|
245
236
|
!this_stack[mapped_key(param.to_s)].nil?
|
246
237
|
}.each do | param_name, param_value |
|
247
|
-
|
238
|
+
merged_params.merge!(param_name => this_stack[mapped_key(param_name)])
|
248
239
|
end
|
249
240
|
end
|
250
|
-
|
251
|
-
# merge user defined parameters
|
252
|
-
validated_parameters.merge!(user_defined_parameters)
|
241
|
+
merged_params.merge!(user_defined_parameters)
|
253
242
|
end
|
254
243
|
|
255
244
|
def mapped_key(param)
|
data/lib/stackit/version.rb
CHANGED
data/stackit.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.email = ["mail@jeremyhahn.com"]
|
10
10
|
|
11
11
|
spec.summary = %q{Simple, elegant CloudFormation dependency management.}
|
12
|
-
spec.description = %q{Use existing stack values (output, resource, or parameters) as input parmeters to templates.}
|
12
|
+
spec.description = %q{Use existing stack values (output, resource, or parameters) as input parmeters to CloudFormation templates.}
|
13
13
|
spec.homepage = "https://github.com/jeremyhahn/stackit"
|
14
14
|
spec.license = "GPLv3"
|
15
15
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stackit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Hahn
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '4.2'
|
125
125
|
description: Use existing stack values (output, resource, or parameters) as input
|
126
|
-
parmeters to templates.
|
126
|
+
parmeters to CloudFormation templates.
|
127
127
|
email:
|
128
128
|
- mail@jeremyhahn.com
|
129
129
|
executables: []
|