1 <?xml version="1.0" encoding="iso-8859-1"?>
3 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
8 <title>Class: MCollective::DDL::DiscoveryDDL</title>
9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10 <meta http-equiv="Content-Script-Type" content="text/javascript" />
11 <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12 <script type="text/javascript">
15 function popupCode( url ) {
16 window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
19 function toggleCode( id ) {
20 if ( document.getElementById )
21 elem = document.getElementById( id );
22 else if ( document.all )
23 elem = eval( "document.all." + id );
27 elemStyle = elem.style;
29 if ( elemStyle.display != "block" ) {
30 elemStyle.display = "block"
32 elemStyle.display = "none"
38 // Make codeblocks hidden by default
39 document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
49 <div id="classHeader">
50 <table class="header-table">
51 <tr class="top-aligned-row">
52 <td><strong>Class</strong></td>
53 <td class="class-name-in-header">MCollective::DDL::DiscoveryDDL</td>
55 <tr class="top-aligned-row">
56 <td><strong>In:</strong></td>
58 <a href="../../../files/lib/mcollective/ddl/discoveryddl_rb.html">
59 lib/mcollective/ddl/discoveryddl.rb
65 <tr class="top-aligned-row">
66 <td><strong>Parent:</strong></td>
75 <!-- banner header -->
77 <div id="bodyContent">
81 <div id="contextContent">
83 <div id="description">
85 <a href="../DDL.html">DDL</a> for <a
86 href="DiscoveryDDL.html#M000165">discovery</a> plugins, a full example can
90 metadata :name => "mc",
93 :description => "MCollective Broadcast based discovery",
94 :author => "R.I.Pienaar <rip@devco.net>",
95 :license => "ASL 2.0",
96 :version => "0.1",
97 :url => "http://marionette-collective.org/",
101 <a href="DiscoveryDDL.html#M000165">discovery</a> do
104 capabilities [:classes, :facts, :identity, :agents, :compound]
115 <div id="method-list">
116 <h3 class="section-bar">Methods</h3>
118 <div class="name-list">
119 <a href="#M000164">capabilities</a>
120 <a href="#M000165">discovery</a>
121 <a href="#M000163">discovery_interface</a>
139 <!-- if method_list -->
141 <h3 class="section-bar">Public Instance methods</h3>
143 <div id="method-M000164" class="method-detail">
144 <a name="M000164"></a>
146 <div class="method-heading">
147 <a href="#M000164" class="method-signature">
148 <span class="method-name">capabilities</span><span class="method-args">(*caps)</span>
152 <div class="method-description">
154 records valid <a href="DiscoveryDDL.html#M000164">capabilities</a> for <a
155 href="DiscoveryDDL.html#M000165">discovery</a> plugins
157 <p><a class="source-toggle" href="#"
158 onclick="toggleCode('M000164-source');return false;">[Source]</a></p>
159 <div class="method-source-code" id="M000164-source">
161 <span class="ruby-comment cmt"># File lib/mcollective/ddl/discoveryddl.rb, line 22</span>
162 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">capabilities</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">caps</span>)
163 23: <span class="ruby-identifier">caps</span> = [<span class="ruby-identifier">caps</span>].<span class="ruby-identifier">flatten</span>
165 25: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Discovery plugin capabilities can't be empty"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">caps</span>.<span class="ruby-identifier">empty?</span>
167 27: <span class="ruby-identifier">caps</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cap</span><span class="ruby-operator">|</span>
168 28: <span class="ruby-keyword kw">if</span> [<span class="ruby-identifier">:classes</span>, <span class="ruby-identifier">:facts</span>, <span class="ruby-identifier">:identity</span>, <span class="ruby-identifier">:agents</span>, <span class="ruby-identifier">:compound</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">cap</span>)
169 29: <span class="ruby-ivar">@entities</span>[<span class="ruby-identifier">:discovery</span>][<span class="ruby-identifier">:capabilities</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">cap</span>
170 30: <span class="ruby-keyword kw">else</span>
171 31: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"%s is not a valid capability, valid capabilities are :classes, :facts, :identity, :agents and :compound"</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">cap</span>
172 32: <span class="ruby-keyword kw">end</span>
173 33: <span class="ruby-keyword kw">end</span>
174 34: <span class="ruby-keyword kw">end</span>
180 <div id="method-M000165" class="method-detail">
181 <a name="M000165"></a>
183 <div class="method-heading">
184 <a href="#M000165" class="method-signature">
185 <span class="method-name">discovery</span><span class="method-args">(&block)</span>
189 <div class="method-description">
191 Creates the definition for new <a
192 href="DiscoveryDDL.html#M000165">discovery</a> plugins
196 capabilities [:classes, :facts, :identity, :agents, :compound]
199 <p><a class="source-toggle" href="#"
200 onclick="toggleCode('M000165-source');return false;">[Source]</a></p>
201 <div class="method-source-code" id="M000165-source">
203 <span class="ruby-comment cmt"># File lib/mcollective/ddl/discoveryddl.rb, line 41</span>
204 41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">discovery</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
205 42: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Discovery plugins can only have one definition"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@entities</span>[<span class="ruby-identifier">:discovery</span>]
207 44: <span class="ruby-ivar">@entities</span>[<span class="ruby-identifier">:discovery</span>] = {<span class="ruby-identifier">:capabilities</span> =<span class="ruby-operator">></span> []}
209 46: <span class="ruby-ivar">@current_entity</span> = <span class="ruby-identifier">:discovery</span>
210 47: <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
211 48: <span class="ruby-ivar">@current_entity</span> = <span class="ruby-keyword kw">nil</span>
212 49: <span class="ruby-keyword kw">end</span>
218 <div id="method-M000163" class="method-detail">
219 <a name="M000163"></a>
221 <div class="method-heading">
222 <a href="#M000163" class="method-signature">
223 <span class="method-name">discovery_interface</span><span class="method-args">()</span>
227 <div class="method-description">
228 <p><a class="source-toggle" href="#"
229 onclick="toggleCode('M000163-source');return false;">[Source]</a></p>
230 <div class="method-source-code" id="M000163-source">
232 <span class="ruby-comment cmt"># File lib/mcollective/ddl/discoveryddl.rb, line 17</span>
233 17: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">discovery_interface</span>
234 18: <span class="ruby-ivar">@entities</span>[<span class="ruby-identifier">:discovery</span>]
235 19: <span class="ruby-keyword kw">end</span>
248 <div id="validator-badges">
249 <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>