| Class | MCollective::DDL::DiscoveryDDL |
| In: |
lib/mcollective/ddl/discoveryddl.rb
|
| Parent: | Base |
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 => "http://marionette-collective.org/",
:timeout => 2
discovery do
capabilities [:classes, :facts, :identity, :agents, :compound]
end
records valid capabilities for discovery plugins
# File lib/mcollective/ddl/discoveryddl.rb, line 22
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
Creates the definition for new discovery plugins
discovery do
capabilities [:classes, :facts, :identity, :agents, :compound]
end
# File lib/mcollective/ddl/discoveryddl.rb, line 41
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