Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / MCollective / DDL / DiscoveryDDL.html
1 <?xml version="1.0" encoding="iso-8859-1"?>
2 <!DOCTYPE html 
3      PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7 <head>
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">
13   // <![CDATA[
14
15   function popupCode( url ) {
16     window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17   }
18
19   function toggleCode( id ) {
20     if ( document.getElementById )
21       elem = document.getElementById( id );
22     else if ( document.all )
23       elem = eval( "document.all." + id );
24     else
25       return false;
26
27     elemStyle = elem.style;
28     
29     if ( elemStyle.display != "block" ) {
30       elemStyle.display = "block"
31     } else {
32       elemStyle.display = "none"
33     }
34
35     return true;
36   }
37   
38   // Make codeblocks hidden by default
39   document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40   
41   // ]]>
42   </script>
43
44 </head>
45 <body>
46
47
48
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>
54         </tr>
55         <tr class="top-aligned-row">
56             <td><strong>In:</strong></td>
57             <td>
58                 <a href="../../../files/lib/mcollective/ddl/discoveryddl_rb.html">
59                 lib/mcollective/ddl/discoveryddl.rb
60                 </a>
61         <br />
62             </td>
63         </tr>
64
65         <tr class="top-aligned-row">
66             <td><strong>Parent:</strong></td>
67             <td>
68                 <a href="Base.html">
69                 Base
70                </a>
71             </td>
72         </tr>
73         </table>
74     </div>
75   <!-- banner header -->
76
77   <div id="bodyContent">
78
79
80
81   <div id="contextContent">
82
83     <div id="description">
84       <p>
85 <a href="../DDL.html">DDL</a> for <a
86 href="DiscoveryDDL.html#M000165">discovery</a> plugins, a full example can
87 be seen below
88 </p>
89 <p>
90 metadata :name =&gt; &quot;mc&quot;,
91 </p>
92 <pre>
93             :description =&gt; &quot;MCollective Broadcast based discovery&quot;,
94             :author      =&gt; &quot;R.I.Pienaar &lt;rip@devco.net&gt;&quot;,
95             :license     =&gt; &quot;ASL 2.0&quot;,
96             :version     =&gt; &quot;0.1&quot;,
97             :url         =&gt; &quot;http://marionette-collective.org/&quot;,
98             :timeout     =&gt; 2
99 </pre>
100 <p>
101 <a href="DiscoveryDDL.html#M000165">discovery</a> do
102 </p>
103 <pre>
104     capabilities [:classes, :facts, :identity, :agents, :compound]
105 </pre>
106 <p>
107 end
108 </p>
109
110     </div>
111
112
113    </div>
114
115     <div id="method-list">
116       <h3 class="section-bar">Methods</h3>
117
118       <div class="name-list">
119       <a href="#M000164">capabilities</a>&nbsp;&nbsp;
120       <a href="#M000165">discovery</a>&nbsp;&nbsp;
121       <a href="#M000163">discovery_interface</a>&nbsp;&nbsp;
122       </div>
123     </div>
124
125   </div>
126
127
128     <!-- if includes -->
129
130     <div id="section">
131
132
133
134
135
136       
137
138
139     <!-- if method_list -->
140     <div id="methods">
141       <h3 class="section-bar">Public Instance methods</h3>
142
143       <div id="method-M000164" class="method-detail">
144         <a name="M000164"></a>
145
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>
149           </a>
150         </div>
151       
152         <div class="method-description">
153           <p>
154 records valid <a href="DiscoveryDDL.html#M000164">capabilities</a> for <a
155 href="DiscoveryDDL.html#M000165">discovery</a> plugins
156 </p>
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">
160 <pre>
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>
164 24: 
165 25:         <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Discovery plugin capabilities can't be empty&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">caps</span>.<span class="ruby-identifier">empty?</span>
166 26: 
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">&lt;&lt;</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">&quot;%s is not a valid capability, valid capabilities are :classes, :facts, :identity, :agents and :compound&quot;</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>
175 </pre>
176           </div>
177         </div>
178       </div>
179
180       <div id="method-M000165" class="method-detail">
181         <a name="M000165"></a>
182
183         <div class="method-heading">
184           <a href="#M000165" class="method-signature">
185           <span class="method-name">discovery</span><span class="method-args">(&amp;block)</span>
186           </a>
187         </div>
188       
189         <div class="method-description">
190           <p>
191 Creates the definition for new <a
192 href="DiscoveryDDL.html#M000165">discovery</a> plugins
193 </p>
194 <pre>
195    discovery do
196       capabilities [:classes, :facts, :identity, :agents, :compound]
197    end
198 </pre>
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">
202 <pre>
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">&amp;</span><span class="ruby-identifier">block</span>)
205 42:         <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Discovery plugins can only have one definition&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@entities</span>[<span class="ruby-identifier">:discovery</span>]
206 43: 
207 44:         <span class="ruby-ivar">@entities</span>[<span class="ruby-identifier">:discovery</span>] = {<span class="ruby-identifier">:capabilities</span> =<span class="ruby-operator">&gt;</span> []}
208 45: 
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>
213 </pre>
214           </div>
215         </div>
216       </div>
217
218       <div id="method-M000163" class="method-detail">
219         <a name="M000163"></a>
220
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>
224           </a>
225         </div>
226       
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">
231 <pre>
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>
236 </pre>
237           </div>
238         </div>
239       </div>
240
241
242     </div>
243
244
245   </div>
246
247
248 <div id="validator-badges">
249   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
250 </div>
251
252 </body>
253 </html>