Sha256: 8a16e0ce5a5eb510f57b0ba37e1550022b668e81cd967bed34633aa17716d68e

Contents?: true

Size: 1.37 KB

Versions: 15

Compression:

Stored size: 1.37 KB

Contents

class Lono::Template
  class ConfigsetInjector < Lono::AbstractBase
    def initialize(options={})
      super
    end

    def run
      @cfn = load_template # initial
      @cfn = inject # overwrite
      write(@cfn)
      @cfn
    end

    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

    def metadata_map
      combiner = Lono::Configset::Combiner.new(@cfn, @options)
      combiner.metadata_map
    end
    memoize :metadata_map

    def write(cfn)
      IO.write(template_path, YAML.dump(cfn))
    end

    def load_template
      YAML.load_file(template_path)
    end

    def template_path
      "#{Lono.config.output_path}/#{@blueprint}/templates/#{@template}.yml"
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
lono-7.5.2 lib/lono/template/configset_injector.rb
lono-7.5.1 lib/lono/template/configset_injector.rb
lono-7.5.0 lib/lono/template/configset_injector.rb
lono-7.4.11 lib/lono/template/configset_injector.rb
lono-7.4.10 lib/lono/template/configset_injector.rb
lono-7.4.9 lib/lono/template/configset_injector.rb
lono-7.4.8 lib/lono/template/configset_injector.rb
lono-7.4.7 lib/lono/template/configset_injector.rb
lono-7.4.6 lib/lono/template/configset_injector.rb
lono-7.4.5 lib/lono/template/configset_injector.rb
lono-7.4.4 lib/lono/template/configset_injector.rb
lono-7.4.3 lib/lono/template/configset_injector.rb
lono-7.4.2 lib/lono/template/configset_injector.rb
lono-7.4.1 lib/lono/template/configset_injector.rb
lono-7.4.0 lib/lono/template/configset_injector.rb