module Puppet::Confiner
The Confiner module contains methods for managing a Provider's confinement (suitability under given conditions). The intent is to include this module in an object where confinement management is wanted. It lazily adds an instance variable `@confine_collection` to the object where it is included.
Public Instance Methods
Confines a provider to be suitable only under the given conditions. The hash describes a confine using mapping from symbols to values or predicate code.
-
fact_name => value of fact (or array of facts)
-
`:exists` => the path to an existing file
-
`:true` => a predicate code block returning true
-
`:false` => a predicate code block returning false
-
`:feature` => name of system feature that must be present
-
`:any` => an array of expressions that will be ORed together
@example
confine 'os.name' => [:redhat, :fedora]
confine :true { ... }
@param hash [Hash<{Symbol => Object}>] hash of confines @return [void] @api public
# File lib/puppet/confiner.rb 27 def confine(hash) 28 confine_collection.confine(hash) 29 end
@return [Puppet::ConfineCollection] the collection of confines @api private
# File lib/puppet/confiner.rb 34 def confine_collection 35 @confine_collection ||= Puppet::ConfineCollection.new(self.to_s) 36 end
Checks whether this implementation is suitable for the current platform (or returns a summary of all confines if short == false). @return [Boolean. Hash] Returns whether the confines are all valid (if short == true), or a hash of all confines
if short == false.
@api public
# File lib/puppet/confiner.rb 44 def suitable?(short = true) 45 return(short ? confine_collection.valid? : confine_collection.summary) 46 end