Method: Puppet::Util::Settings#use

Defined in:
lib/vendor/puppet/util/settings.rb

#use(*sections) ⇒ Object

Create the necessary objects to use a section. This is idempotent; you can ‘use’ a section as many times as you want.



604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
# File 'lib/vendor/puppet/util/settings.rb', line 604

def use(*sections)
  sections = sections.collect { |s| s.to_sym }
  @sync.synchronize do # yay, thread-safe
    sections = sections.reject { |s| @used.include?(s) }

    return if sections.empty?

    begin
      catalog = to_catalog(*sections).to_ral
    rescue => detail
      puts detail.backtrace if Puppet[:trace]
      Puppet.err "Could not create resources for managing Puppet's files and directories in sections #{sections.inspect}: #{detail}"

      # We need some way to get rid of any resources created during the catalog creation
      # but not cleaned up.
      return
    end

    catalog.host_config = false
    catalog.apply do |transaction|
      if transaction.any_failed?
        report = transaction.report
        failures = report.logs.find_all { |log| log.level == :err }
        raise "Got #{failures.length} failure(s) while initializing: #{failures.collect { |l| l.to_s }.join("; ")}"
      end
    end

    sections.each { |s| @used << s }
    @used.uniq!
  end
end