X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=lib%2Fmcollective%2Ffacts.rb;fp=lib%2Fmcollective%2Ffacts.rb;h=f2bd19f197ae4177d40e1a6f88fb72dbe9e6dfd8;hb=b87d2f4e68281062df1913440ca5753ae63314a9;hp=0000000000000000000000000000000000000000;hpb=ab0ea530b8ac956091f17b104ab2311336cfc250;p=packages%2Fprecise%2Fmcollective.git diff --git a/lib/mcollective/facts.rb b/lib/mcollective/facts.rb new file mode 100644 index 0000000..f2bd19f --- /dev/null +++ b/lib/mcollective/facts.rb @@ -0,0 +1,39 @@ +module MCollective + # This is a class that gives access to the configured fact provider + # such as MCollectives::Facts::Facter that uses Reductive Labs facter + # + # The actual provider is pluggable and configurable using the 'factsource' + # configuration option. + # + # To develop a new factsource simply create a class under MCollective::Facts:: + # and provide the following classes: + # + # self.get_fact(fact) + # self.has_fact?(fact) + # + # You can also just inherit from MCollective::Facts::Base and provide just the + # + # self.get_facts + # + # method that should return a hash of facts. + module Facts + autoload :Base, "mcollective/facts/base" + + @@config = nil + + # True if we know of a specific fact else false + def self.has_fact?(fact, value) + PluginManager["facts_plugin"].get_fact(fact) == value ? true : false + end + + # Get the value of a fact + def self.get_fact(fact) + PluginManager["facts_plugin"].get_fact(fact) + end + + # Get the value of a fact + def self.[](fact) + PluginManager["facts_plugin"].get_fact(fact) + end + end +end