class MCollective::Data::Base - mcollective version 2.12.5

# class MCollective::Data::Base

### Attributes

ddl[R]
name[R]
result[R]
timeout[R]

### Public Class Methods

activate?() click to toggle source

Always be active unless a specific block is given with `activate_when`

       # File lib/mcollective/data/base.rb
    60 def self.activate?
    61   return true
    62 end

activate_when(&block) click to toggle source

`activate_when` do

    file.exist?("/usr/bin/puppet")

end

       # File lib/mcollective/data/base.rb
    53 def self.activate_when(&block)
    54   (class << self; self; end).instance_eval do
    55     define_method("activate?", &block)
    56   end
    57 end

inherited(klass) click to toggle source

Register plugins that inherits base

       # File lib/mcollective/data/base.rb
     7 def self.inherited(klass)
     8   type = klass.to_s.split("::").last.downcase
     9
    10   PluginManager << {:type => type, :class => klass.to_s, :single_instance => false}
    11 end

new() click to toggle source

       # File lib/mcollective/data/base.rb
    13 def initialize
    14   @name = self.class.to_s.split("::").last.downcase
    15   @ddl = DDL.new(@name, :data)
    16   @result = Result.new(@ddl.dataquery_interface[:output])
    17   @timeout = @ddl.meta[:timeout] || 1
    18
    19   startup_hook
    20 end

query(&block) click to toggle source

       # File lib/mcollective/data/base.rb
    42 def self.query(&block)
    43   self.module_eval { define_method("query_data", &block) }
    44 end

### Public Instance Methods

ddl_validate(what) click to toggle source

       # File lib/mcollective/data/base.rb
    46 def ddl_validate(what)
    47   Data.ddl_validate(@ddl, what)
    48 end

lookup(what) click to toggle source

       # File lib/mcollective/data/base.rb
    22 def lookup(what)
    23   ddl_validate(what)
    24
    25   Log.debug("Doing data query %s for '%s'" % [ @name, what ])
    26
    27   Timeout::timeout(@timeout) do
    28     query_data(what)
    29   end
    30
    31   @result
    32 rescue Timeout::Error
    33   # Timeout::Error is a inherited from Interrupt which seems a really
    34   # strange choice, making it an equivelant of ^C and such.  Catch it
    35   # and raise something less critical that will not the runner to just
    36   # give up the ghost
    37   msg = "Data plugin %s timed out on query '%s'" % [@name, what]
    38   Log.error(msg)
    39   raise MsgTTLExpired, msg
    40 end

startup_hook() click to toggle source

       # File lib/mcollective/data/base.rb
    64 def startup_hook;end