class Lono::Template::ConfigsetInjector

Public Class Methods

new(options={}) click to toggle source
Calls superclass method Lono::AbstractBase::new
# File lib/lono/template/configset_injector.rb, line 3
def initialize(options={})
  super
end

Public Instance Methods

inject() click to toggle source
# File lib/lono/template/configset_injector.rb, line 14
def inject
  metadata_map.each do |logical_id, metadata_configset|
    resource = @cfn["Resources"][logical_id]

    unless resource
      puts "WARN: Resources.#{logical_id} not found in the template. Are you sure you are specifying the correct resource id in your configsets configs?".color(:yellow)
      next
    end

    resource["Metadata"] ||= metadata_configset["Metadata"]

    # metdata = resource["Metadata"] ||= {}
    # metdata["AWS::CloudFormation::Init"] ||= {}
    # # The metadata_configset has been combined with the original AWS::CloudFormation::Init if it exists
    # metdata["AWS::CloudFormation::Init"] = metadata_configset["AWS::CloudFormation::Init"]
  end

  @cfn
end
load_template() click to toggle source
# File lib/lono/template/configset_injector.rb, line 44
def load_template
  YAML.load_file(template_path)
end
metadata_map() click to toggle source
# File lib/lono/template/configset_injector.rb, line 34
def metadata_map
  combiner = Lono::Configset::Combiner.new(@cfn, @options)
  combiner.metadata_map
end
run() click to toggle source
# File lib/lono/template/configset_injector.rb, line 7
def run
  @cfn = load_template # initial
  @cfn = inject # overwrite
  write(@cfn)
  @cfn
end
template_path() click to toggle source
# File lib/lono/template/configset_injector.rb, line 48
def template_path
  "#{Lono.config.output_path}/#{@blueprint}/templates/#{@template}.yml"
end
write(cfn) click to toggle source
# File lib/lono/template/configset_injector.rb, line 40
def write(cfn)
  IO.write(template_path, YAML.dump(cfn))
end