class MCollective::DDL::DiscoveryDDL
DDL
for discovery plugins, a full example can be seen below
metadata :name => “mc”,
:description => "MCollective Broadcast based discovery", :author => "R.I.Pienaar <rip@devco.net>", :license => "ASL 2.0", :version => "0.1", :url => "https://docs.puppetlabs.com/mcollective/", :timeout => 2
discovery do
capabilities [:classes, :facts, :identity, :agents, :compound]
end
Public Instance Methods
capabilities(*caps)
click to toggle source
records valid capabilities for discovery plugins
# File lib/mcollective/ddl/discoveryddl.rb 22 def capabilities(*caps) 23 caps = [caps].flatten 24 25 raise "Discovery plugin capabilities can't be empty" if caps.empty? 26 27 caps.each do |cap| 28 if [:classes, :facts, :identity, :agents, :compound].include?(cap) 29 @entities[:discovery][:capabilities] << cap 30 else 31 raise "%s is not a valid capability, valid capabilities are :classes, :facts, :identity, :agents and :compound" % cap 32 end 33 end 34 end
discovery(&block)
click to toggle source
Creates the definition for new discovery plugins
discovery do capabilities [:classes, :facts, :identity, :agents, :compound] end
# File lib/mcollective/ddl/discoveryddl.rb 41 def discovery(&block) 42 raise "Discovery plugins can only have one definition" if @entities[:discovery] 43 44 @entities[:discovery] = {:capabilities => []} 45 46 @current_entity = :discovery 47 block.call if block_given? 48 @current_entity = nil 49 end
discovery_interface()
click to toggle source
# File lib/mcollective/ddl/discoveryddl.rb 17 def discovery_interface 18 @entities[:discovery] 19 end