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
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