Sha256: 47232c9442d8cdf9ff30873a0c434153bd92cd08fe83ccdde5fb562effa4fbd6

Contents?: true

Size: 1.6 KB

Versions: 31

Compression:

Stored size: 1.6 KB

Contents

require 'puppet/configurer'
require 'puppet/resource/catalog'

class Puppet::Configurer::Downloader
  attr_reader :name, :path, :source, :ignore

  # Evaluate our download, returning the list of changed values.
  def evaluate
    Puppet.info "Retrieving #{name}"

    files = []
    begin
      ::Timeout.timeout(Puppet[:configtimeout]) do
        catalog.apply do |trans|
          trans.changed?.find_all do |resource|
            yield resource if block_given?
            files << resource[:path]
          end
        end
      end
    rescue Puppet::Error, Timeout::Error => detail
      Puppet.log_exception(detail, "Could not retrieve #{name}: #{detail}")
    end

    files
  end

  def initialize(name, path, source, ignore = nil, environment = nil)
    @name, @path, @source, @ignore, @environment = name, path, source, ignore, environment
  end

  def catalog
    catalog = Puppet::Resource::Catalog.new
    catalog.host_config = false
    catalog.add_resource(file)
    catalog.environment = @environment
    catalog
  end

  def file
    args = default_arguments.merge(:path => path, :source => source)
    args[:ignore] = ignore.split if ignore
    Puppet::Type.type(:file).new(args)
  end

  private

  require 'sys/admin' if Puppet.features.microsoft_windows?

  def default_arguments
    {
      :path => path,
      :recurse => true,
      :source => source,
      :tag => name,
      :purge => true,
      :force => true,
      :backup => false,
      :noop => false
    }.merge(
      Puppet.features.microsoft_windows? ? {} :
      {
        :owner => Process.uid,
        :group => Process.gid
      }
    )
  end
end

Version data entries

31 entries across 31 versions & 2 rubygems

Version Path
puppet-3.3.2 lib/puppet/configurer/downloader.rb
puppet-3.3.1 lib/puppet/configurer/downloader.rb
puppet-3.3.1.rc3 lib/puppet/configurer/downloader.rb
puppet-3.3.1.rc2 lib/puppet/configurer/downloader.rb
puppet-3.3.1.rc1 lib/puppet/configurer/downloader.rb
puppet-3.3.0 lib/puppet/configurer/downloader.rb
puppet-3.3.0.rc3 lib/puppet/configurer/downloader.rb
puppet-3.3.0.rc2 lib/puppet/configurer/downloader.rb
puppet-3.2.4 lib/puppet/configurer/downloader.rb
puppet-3.2.3 lib/puppet/configurer/downloader.rb
puppet-3.2.3.rc1 lib/puppet/configurer/downloader.rb
puppet-3.2.2 lib/puppet/configurer/downloader.rb
puppet-3.2.1 lib/puppet/configurer/downloader.rb
puppet-3.2.1.rc1 lib/puppet/configurer/downloader.rb
puppet-3.2.0.rc2 lib/puppet/configurer/downloader.rb
librarian-puppet-0.9.9 vendor/gems/ruby/1.9.1/gems/puppet-3.1.0/lib/puppet/configurer/downloader.rb
puppet-3.2.0.rc1 lib/puppet/configurer/downloader.rb
puppet-3.1.1 lib/puppet/configurer/downloader.rb
librarian-puppet-0.9.8 vendor/gems/ruby/1.9.1/gems/puppet-3.1.0/lib/puppet/configurer/downloader.rb
puppet-3.1.0 lib/puppet/configurer/downloader.rb