module Sfn::CommandModule::Planning

Planning helpers

Public Instance Methods

build_planner(stack) click to toggle source

Create a new planner instance

@param [Miasma::Models::Orchestration::Stack] @return [Sfn::Planner]

# File lib/sfn/command_module/planning.rb, line 12
def build_planner(stack)
  klass_name = stack.api.class.to_s.split("::").last
  if Planner.const_defined?(klass_name)
    Planner.const_get(klass_name).new(ui, config, arguments, stack)
  else
    warn "Failed to build planner for current provider. No provider implemented. (`#{klass_name}`)"
    nil
  end
end
display_plan_information(result) click to toggle source

Display plan result on the UI

@param result [Miasma::Models::Orchestration::Stack::Plan]

# File lib/sfn/command_module/planning.rb, line 25
def display_plan_information(result)
  ui.info ui.color("Pre-update resource planning report:", :bold)
  unless print_plan_result(result, [result.name])
    ui.info "No resources life cycle changes detected in this update!"
  end
  if config[:plan_apply]
    return ui.info "Realizing this stack plan..."
  elsif config[:plan_only]
    return
  end
  ui.confirm "Realize this stack plan?"
end
print_plan_items(info, key, color) click to toggle source

Print planning items

@param info [Miasma::Models::Orchestration::Stack::Plan] plan @param key [Symbol] key of items @param color [Symbol] color to flag

print_plan_result(info, names = []) click to toggle source

Print plan information to the UI

@param info [Miasma::Models::Orchestration::Stack::Plan] @param names [Array<String>] nested names