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

confine(hash) click to toggle source

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 :operatingsystem => [:redhat, :fedora]
confine :true { ... }

@param hash [Hash<{Symbol => Object}>] hash of confines @return [void] @api public

   # File lib/puppet/confiner.rb
26 def confine(hash)
27   confine_collection.confine(hash)
28 end
confine_collection() click to toggle source

@return [Puppet::ConfineCollection] the collection of confines @api private

   # File lib/puppet/confiner.rb
33 def confine_collection
34   @confine_collection ||= Puppet::ConfineCollection.new(self.to_s)
35 end
suitable?(short = true) click to toggle source

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
43 def suitable?(short = true)
44   return(short ? confine_collection.valid? : confine_collection.summary)
45 end