class Confine
Common module for the Boolean confines. It currently contains just enough code to implement PUP-9336.
Attributes
name[RW]
for_binary[RW]
Mark that this confine is used for testing binary existence.
label[RW]
Used for logging.
values[R]
Public Class Methods
inherited(klass)
click to toggle source
# File lib/puppet/confine.rb 15 def self.inherited(klass) 16 name = klass.to_s.split("::").pop.downcase.to_sym 17 raise "Test #{name} is already defined" if @tests.include?(name) 18 19 klass.name = name 20 21 @tests[name] = klass 22 end
new(values)
click to toggle source
# File lib/puppet/confine.rb 52 def initialize(values) 53 values = [values] unless values.is_a?(Array) 54 @values = values 55 end
test(name)
click to toggle source
# File lib/puppet/confine.rb 24 def self.test(name) 25 unless @tests.include?(name) 26 begin 27 require "puppet/confine/#{name}" 28 rescue LoadError => detail 29 unless detail.to_s =~ /No such file|cannot load such file/i 30 Puppet.warning("Could not load confine test '#{name}': #{detail}") 31 end 32 # Could not find file 33 if !Puppet[:always_retry_plugins] 34 @tests[name] = nil 35 end 36 end 37 end 38 @tests[name] 39 end
Public Instance Methods
for_binary?()
click to toggle source
# File lib/puppet/confine.rb 45 def for_binary? 46 for_binary 47 end
message(value)
click to toggle source
Provide a hook for the message when there's a failure.
# File lib/puppet/confine.rb 58 def message(value) 59 "" 60 end
reset()
click to toggle source
Provide a hook for subclasses.
# File lib/puppet/confine.rb 82 def reset 83 end
result()
click to toggle source
Collect the results of all of them.
# File lib/puppet/confine.rb 63 def result 64 values.collect { |value| pass?(value) } 65 end
valid?()
click to toggle source
Test whether our confine matches.
# File lib/puppet/confine.rb 68 def valid? 69 values.each do |value| 70 unless pass?(value) 71 Puppet.debug { label + ": " + message(value) } 72 return false 73 end 74 end 75 76 return true 77 ensure 78 reset 79 end