Sha256: dfbb4f1763cc5991398409aeea4d3a501d68f4e8414a72259da99df329adf2b5

Contents?: true

Size: 1.68 KB

Versions: 48

Compression:

Stored size: 1.68 KB

Contents

require 'puppet/provider'

class Puppet::Provider::Package < Puppet::Provider
  # Prefetch our package list, yo.
  def self.prefetch(packages)
    instances.each do |prov|
      if pkg = packages[prov.name]
        pkg.provider = prov
      end
    end
  end

  # Clear out the cached values.
  def flush
    @property_hash.clear
  end

  # Look up the current status.
  def properties
    if @property_hash.empty?
      # For providers that support purging, default to purged; otherwise default to absent
      # Purged is the "most uninstalled" a package can be, so a purged package will be in-sync with
      # either `ensure => absent` or `ensure => purged`; an absent package will be out of sync with `ensure => purged`.
      default_status = self.class.feature?(:purgeable) ? :purged : :absent
      @property_hash = query || { :ensure => ( default_status )}
      @property_hash[:ensure] = default_status if @property_hash.empty?
    end
    @property_hash.dup
  end

  def validate_source(value)
    true
  end

  # Turns a array of options into flags to be passed to a command.
  # The options can be passed as a string or hash. Note that passing a hash
  # should only be used in case --foo=bar must be passed,
  # which can be accomplished with:
  #     install_options => [ { '--foo' => 'bar' } ]
  # Regular flags like '--foo' must be passed as a string.
  # @param options [Array]
  # @return Concatenated list of options
  # @api private
  def join_options(options)
    return unless options

    options.collect do |val|
      case val
        when Hash
          val.keys.sort.collect do |k|
            "#{k}=#{val[k]}"
          end
        else
          val
      end
    end.flatten
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
puppet-5.5.22 lib/puppet/provider/package.rb
puppet-5.5.22-x86-mingw32 lib/puppet/provider/package.rb
puppet-5.5.22-x64-mingw32 lib/puppet/provider/package.rb
puppet-5.5.22-universal-darwin lib/puppet/provider/package.rb
puppet-5.5.21 lib/puppet/provider/package.rb
puppet-5.5.21-x86-mingw32 lib/puppet/provider/package.rb
puppet-5.5.21-x64-mingw32 lib/puppet/provider/package.rb
puppet-5.5.21-universal-darwin lib/puppet/provider/package.rb
puppet-5.5.20 lib/puppet/provider/package.rb
puppet-5.5.20-x86-mingw32 lib/puppet/provider/package.rb
puppet-5.5.20-x64-mingw32 lib/puppet/provider/package.rb
puppet-5.5.20-universal-darwin lib/puppet/provider/package.rb
puppet-5.5.19 lib/puppet/provider/package.rb
puppet-5.5.19-x86-mingw32 lib/puppet/provider/package.rb
puppet-5.5.19-x64-mingw32 lib/puppet/provider/package.rb
puppet-5.5.19-universal-darwin lib/puppet/provider/package.rb
puppet-5.5.18 lib/puppet/provider/package.rb
puppet-5.5.18-x86-mingw32 lib/puppet/provider/package.rb
puppet-6.4.5 lib/puppet/provider/package.rb
puppet-5.5.18-x64-mingw32 lib/puppet/provider/package.rb