class Lono::Sets::Base

Public Class Methods

new(options={}) click to toggle source
Calls superclass method Lono::AbstractBase::new
# File lib/lono/sets/base.rb, line 3
def initialize(options={})
  options[:iam] = true # easy to forget the --iam option. Default to turning it on for StackSets
  super
end

Public Instance Methods

build_options() click to toggle source
# File lib/lono/sets/base.rb, line 26
def build_options
  parameters = generate_all
  options = {
    stack_set_name: @stack,
    parameters: parameters,
    capabilities: capabilities, # ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"]
  }
  options[:tags] = tags unless tags.empty?
  options[:operation_preferences] = operation_preferences unless operation_preferences.empty?
  options.reject! {|k, v| v.nil? }
  set_template_url!(options)
  options
end
exit_unless_updatable!() click to toggle source
# File lib/lono/sets/base.rb, line 13
def exit_unless_updatable!
  return true if ENV['LONO_ENV']
  return false if @options[:noop]

  status = Status.new(@options) # using status for completed?
  return if status.stack_instances.empty?
  completed = status.completed?(status.stack_set_status)
  unless completed
    puts "Cannot update stack set because #{@stack} is not in an updatable state.  Stack set status: #{status.stack_set_status}".color(:red)
    quit(1)
  end
end
operation_preferences() click to toggle source
# File lib/lono/sets/base.rb, line 40
def operation_preferences
  o = {}
  o[:failure_tolerance_count] = @options[:failure_tolerance_count]
  o[:failure_tolerance_percentage] = @options[:failure_tolerance_percentage]
  o[:max_concurrent_count] = @options[:max_concurrent_count]
  o[:max_concurrent_percentage] = @options[:max_concurrent_percentage]
  o.reject! {|k, v| v.nil? }
  o
end
run() click to toggle source
# File lib/lono/sets/base.rb, line 8
def run
  generate_all
  save
end