Sha256: e32567f580b2748ec9c799875f2968e9c696bd3c975525c539ee858b17e065c2
Contents?: true
Size: 1.63 KB
Versions: 4
Compression:
Stored size: 1.63 KB
Contents
# The class that handles testing whether our providers # actually work or not. require 'puppet/util' class Puppet::Confine include Puppet::Util @tests = {} class << self attr_accessor :name end def self.inherited(klass) name = klass.to_s.split("::").pop.downcase.to_sym raise "Test #{name} is already defined" if @tests.include?(name) klass.name = name @tests[name] = klass end def self.test(name) unless @tests.include?(name) begin require "puppet/confine/#{name}" rescue LoadError => detail unless detail.to_s =~ /No such file|cannot load such file/i Puppet.warning("Could not load confine test '#{name}': #{detail}") end # Could not find file if !Puppet[:always_retry_plugins] @tests[name] = nil end end end @tests[name] end attr_reader :values # Mark that this confine is used for testing binary existence. attr_accessor :for_binary def for_binary? for_binary end # Used for logging. attr_accessor :label def initialize(values) values = [values] unless values.is_a?(Array) @values = values end # Provide a hook for the message when there's a failure. def message(value) "" end # Collect the results of all of them. def result values.collect { |value| pass?(value) } end # Test whether our confine matches. def valid? values.each do |value| unless pass?(value) Puppet.debug(label + ": " + message(value)) return false end end return true ensure reset end # Provide a hook for subclasses. def reset end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
puppet-6.17.0 | lib/puppet/confine.rb |
puppet-6.17.0-x86-mingw32 | lib/puppet/confine.rb |
puppet-6.17.0-x64-mingw32 | lib/puppet/confine.rb |
puppet-6.17.0-universal-darwin | lib/puppet/confine.rb |