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

Methods

Public Instance methods

records valid capabilities for discovery plugins

[Source]

    # 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

[Source]

    # 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

[Source]

    # File lib/mcollective/ddl/discoveryddl.rb, line 17
17:       def discovery_interface
18:         @entities[:discovery]
19:       end

[Validate]