Class: Lono::Cfn::Preview::Param
- Includes:
- AwsServices, DiffViewer
- Defined in:
- lib/lono/cfn/preview/param.rb
Instance Method Summary collapse
- #existing_parameters ⇒ Object
- #ignore_parameters ⇒ Object
- #new_parameters ⇒ Object
- #run ⇒ Object
- #stack_parameters ⇒ Object
Methods included from AwsServices
#cfn, #ec2, #iam, #s3, #s3_presigner, #s3_resource, #sts
Methods included from AwsServices::Util
#find_stack, #rollback_complete?, #stack_exists?, #testing_update?
Methods included from DiffViewer
Methods inherited from Base
#build_files, #build_scripts, #capabilities, #check_files, #check_for_errors, #command_with_iam, #continue_update_rollback, #continue_update_rollback_sure?, #delete_rollback_stack, #ensure_s3_bucket_exist, #exit_unless_updatable!, #generate_all, #generate_templates, #initialize, #param_generator, #post_process_templates, #pretty_path, #prompt_for_iam, #quit, #set_template_body!, #show_parameters, #stack_status, #starting_message, #status, #tags, #upload_files, #upload_scripts, #upload_templates
Methods included from Util
#are_you_sure?, #switch_current
Methods included from Suffix
#allow_suffix?, #append_suffix, #random_suffix, #remove_suffix, #stack_name_suffix
Methods included from Lono::Conventions
Methods included from Blueprint::Root
#bundler_groups, #find_blueprint_root, #require_bundle_gems, #set_blueprint_root
Constructor Details
This class inherits a constructor from Lono::Cfn::Base
Instance Method Details
#existing_parameters ⇒ Object
29 30 31 32 33 |
# File 'lib/lono/cfn/preview/param.rb', line 29 def existing_parameters existing = stack_parameters existing = existing.reject { |p| ignore_parameters.include?(p.parameter_key) } convert_to_cfn_format(existing) end |
#ignore_parameters ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/lono/cfn/preview/param.rb', line 35 def ignore_parameters # Remove optional parameters if they match already. Produces better diff. optional = optional_parameters.map { |logical_id, attributes| logical_id } noecho = stack_parameters.select { |p| p.parameter_value == '****' } noecho = noecho.map { |p| p.parameter_key } optional + noecho end |
#new_parameters ⇒ Object
24 25 26 27 |
# File 'lib/lono/cfn/preview/param.rb', line 24 def new_parameters params = generate_all params.reject { |p| ignore_parameters.include?(p[:parameter_key]) } end |
#run ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/lono/cfn/preview/param.rb', line 9 def run return unless stack_exists?(@stack_name) puts "Parameter Diff Preview:".color(:green) if @options[:noop] puts "NOOP CloudFormation parameters preview for #{@stack_name} update" return end write_to_tmp(existing_path, existing_parameters) write_to_tmp(new_path, new_parameters) show_diff(existing_path, new_path) end |
#stack_parameters ⇒ Object
44 45 46 47 48 |
# File 'lib/lono/cfn/preview/param.rb', line 44 def stack_parameters resp = cfn.describe_stacks(stack_name: @stack_name) stack = resp.stacks.first stack.parameters end |