class Stacker::Stack::Parameters

Public Instance Methods

diff(*args) click to toggle source
# File lib/stacker/stack/parameters.rb, line 61
def diff *args
  Differ.yaml_diff Hash[resolved.sort], Hash[remote.sort], *args
end
local() click to toggle source

template defaults merged with region and stack-specific overrides

# File lib/stacker/stack/parameters.rb, line 22
def local
  region_defaults = stack.region.defaults.fetch 'parameters', {}

  template_defaults = Hash[
    template_definitions.select { |_, opts|
      opts.key?('Default')
    }.map { |name, opts|
      [name, opts['Default']]
    }
  ]

  available = template_defaults.merge(
    region_defaults.merge(
      stack.options.fetch 'parameters', {}
    )
  )

  available.slice(*template_definitions.keys)
end
missing() click to toggle source
# File lib/stacker/stack/parameters.rb, line 42
def missing
  template_definitions.keys - local.keys
end
region_defaults() click to toggle source
# File lib/stacker/stack/parameters.rb, line 17
def region_defaults
  stack.region.defaults.fetch 'parameters', {}
end
remote() click to toggle source
# File lib/stacker/stack/parameters.rb, line 46
def remote
  client.parameters
end
resolved() click to toggle source
# File lib/stacker/stack/parameters.rb, line 51
def resolved
  resolver.resolved
end
resolver() click to toggle source
# File lib/stacker/stack/parameters.rb, line 56
def resolver
  Resolver.new stack.region, local
end
template_definitions() click to toggle source

everything required by the template

# File lib/stacker/stack/parameters.rb, line 13
def template_definitions
  stack.template.local.fetch 'Parameters', {}
end