@@ -39,43 +39,11 @@ def stack_params(environment)
3939 unless config [ 'stack' ] . is_a? Hash
4040 raise Thor ::Error . new ( "No stack defined in #{ config_path } . Add 'stack: ...'." )
4141 end
42+ params = StackParams . expanded ( config [ 'stack' ] )
4243
43- # Dup & symbolize keys
44- params = config [ 'stack' ] . map { |k , v | [ k . to_sym , v ] } . to_h
45-
46- # Expand params
47- if params [ :parameters ] . is_a? Hash
48- expanded_params = params [ :parameters ] . map do |key , value |
49- { parameter_key : key , parameter_value : value }
50- end
51- params [ :parameters ] = expanded_params
52- end
53-
54- # Expand tags
55- if params [ :tags ] . is_a? Hash
56- tags = params [ :tags ] . map do |key , value |
57- { key : key , value : value }
58- end
59-
60- params [ :tags ] = tags
61- end
62-
63- # Append CfnFlow tags
64- params [ :tags ] ||= [ ]
65- params [ :tags ] << { key : 'CfnFlowService' , value : service }
66- params [ :tags ] << { key : 'CfnFlowEnvironment' , value : environment }
67-
68- # Expand template body
69- if params [ :template_body ] . is_a? String
70- begin
71- body = CfnFlow ::Template . new ( params [ :template_body ] ) . to_json
72- params [ :template_body ] = body
73- rescue CfnFlow ::Template ::Error
74- # Do nothing
75- end
76- end
77-
78- params
44+ params .
45+ add_tag ( 'CfnFlowService' => service ) .
46+ add_tag ( 'CfnFlowEnvironment' => environment )
7947 end
8048
8149 def template_s3_bucket
@@ -113,6 +81,7 @@ def cfn_resource
11381 # Clear aws sdk clients & config (for tests)
11482 def clear!
11583 @config = @cfn_client = @cfn_resource = nil
84+ CachedStack . stack_cache . clear
11685 end
11786
11887 # Exit with status code = 1 when raising a Thor::Error
@@ -131,6 +100,8 @@ def exit_on_failure=(value)
131100 end
132101end
133102
103+ require 'cfn_flow/cached_stack'
104+ require 'cfn_flow/stack_params'
134105require 'cfn_flow/template'
135106require 'cfn_flow/git'
136107require 'cfn_flow/event_presenter'
0 commit comments