Class: Lono::Cfn::Diff
- Includes:
- AwsServices
- Defined in:
- lib/lono/cfn/diff.rb
Instance Method Summary collapse
- #diff_viewer ⇒ Object
- #download_existing_cfn_template ⇒ Object
- #existing_template_path ⇒ Object
-
#new_cfn_template ⇒ Object
for clarity.
- #run ⇒ Object
- #show_changes ⇒ 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 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
#diff_viewer ⇒ Object
41 42 43 44 |
# File 'lib/lono/cfn/diff.rb', line 41 def diff_viewer return ENV['LONO_DIFF'] if ENV['LONO_DIFF'] system("type colordiff > /dev/null") ? "colordiff" : "diff" end |
#download_existing_cfn_template ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/lono/cfn/diff.rb', line 21 def download_existing_cfn_template resp = cfn.get_template( stack_name: @stack_name, template_stage: "Original" ) resp.template_body IO.write(existing_template_path, resp.template_body) end |
#existing_template_path ⇒ Object
46 47 48 |
# File 'lib/lono/cfn/diff.rb', line 46 def existing_template_path "/tmp/existing_cfn_template.yml" end |
#new_cfn_template ⇒ Object
for clarity
37 38 39 |
# File 'lib/lono/cfn/diff.rb', line 37 def new_cfn_template @template_path end |
#run ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/lono/cfn/diff.rb', line 5 def run unless stack_exists?(@stack_name) puts "WARN: Cannot create a diff for the stack because the #{@stack_name} does not exists.".color(:yellow) return end if @options[:noop] puts "NOOP Generating CloudFormation source code diff..." else generate_all # from Base superclass. Generates the output lono teplates puts "Generating CloudFormation source code diff..." download_existing_cfn_template show_changes end end |
#show_changes ⇒ Object
30 31 32 33 34 |
# File 'lib/lono/cfn/diff.rb', line 30 def show_changes command = "#{diff_viewer} #{existing_template_path} #{new_cfn_template}" puts "Running: #{command}" system(command) end |