Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / MCollective / Data / Base.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::Data::Base</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::Data::Base</td>
54         </tr>
55         <tr class="top-aligned-row">
56             <td><strong>In:</strong></td>
57             <td>
58                 <a href="../../../files/lib/mcollective/data/base_rb.html">
59                 lib/mcollective/data/base.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                 Object
69             </td>
70         </tr>
71         </table>
72     </div>
73   <!-- banner header -->
74
75   <div id="bodyContent">
76
77
78
79   <div id="contextContent">
80
81
82
83    </div>
84
85     <div id="method-list">
86       <h3 class="section-bar">Methods</h3>
87
88       <div class="name-list">
89       <a href="#M000243">activate?</a>&nbsp;&nbsp;
90       <a href="#M000242">activate_when</a>&nbsp;&nbsp;
91       <a href="#M000241">ddl_validate</a>&nbsp;&nbsp;
92       <a href="#M000237">inherited</a>&nbsp;&nbsp;
93       <a href="#M000239">lookup</a>&nbsp;&nbsp;
94       <a href="#M000238">new</a>&nbsp;&nbsp;
95       <a href="#M000240">query</a>&nbsp;&nbsp;
96       <a href="#M000244">startup_hook</a>&nbsp;&nbsp;
97       </div>
98     </div>
99
100   </div>
101
102
103     <!-- if includes -->
104
105     <div id="section">
106
107
108
109
110
111     <div id="attribute-list">
112       <h3 class="section-bar">Attributes</h3>
113
114       <div class="name-list">
115         <table>
116         <tr class="top-aligned-row context-row">
117           <td class="context-item-name">ddl</td>
118           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
119           <td class="context-item-desc"></td>
120         </tr>
121         <tr class="top-aligned-row context-row">
122           <td class="context-item-name">name</td>
123           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
124           <td class="context-item-desc"></td>
125         </tr>
126         <tr class="top-aligned-row context-row">
127           <td class="context-item-name">result</td>
128           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
129           <td class="context-item-desc"></td>
130         </tr>
131         <tr class="top-aligned-row context-row">
132           <td class="context-item-name">timeout</td>
133           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
134           <td class="context-item-desc"></td>
135         </tr>
136         </table>
137       </div>
138     </div>
139       
140
141
142     <!-- if method_list -->
143     <div id="methods">
144       <h3 class="section-bar">Public Class methods</h3>
145
146       <div id="method-M000243" class="method-detail">
147         <a name="M000243"></a>
148
149         <div class="method-heading">
150           <a href="#M000243" class="method-signature">
151           <span class="method-name">activate?</span><span class="method-args">()</span>
152           </a>
153         </div>
154       
155         <div class="method-description">
156           <p>
157 Always be active unless a specific block is given with <a
158 href="Base.html#M000242">activate_when</a>
159 </p>
160           <p><a class="source-toggle" href="#"
161             onclick="toggleCode('M000243-source');return false;">[Source]</a></p>
162           <div class="method-source-code" id="M000243-source">
163 <pre>
164     <span class="ruby-comment cmt"># File lib/mcollective/data/base.rb, line 60</span>
165 60:       <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">activate?</span>
166 61:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
167 62:       <span class="ruby-keyword kw">end</span>
168 </pre>
169           </div>
170         </div>
171       </div>
172
173       <div id="method-M000242" class="method-detail">
174         <a name="M000242"></a>
175
176         <div class="method-heading">
177           <a href="#M000242" class="method-signature">
178           <span class="method-name">activate_when</span><span class="method-args">(&amp;block)</span>
179           </a>
180         </div>
181       
182         <div class="method-description">
183           <p>
184 <a href="Base.html#M000242">activate_when</a> do
185 </p>
186 <pre>
187    file.exist?(&quot;/usr/bin/puppet&quot;)
188 </pre>
189 <p>
190 end
191 </p>
192           <p><a class="source-toggle" href="#"
193             onclick="toggleCode('M000242-source');return false;">[Source]</a></p>
194           <div class="method-source-code" id="M000242-source">
195 <pre>
196     <span class="ruby-comment cmt"># File lib/mcollective/data/base.rb, line 53</span>
197 53:       <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">activate_when</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
198 54:         (<span class="ruby-keyword kw">class</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>; <span class="ruby-keyword kw">self</span>; <span class="ruby-keyword kw">end</span>).<span class="ruby-identifier">instance_eval</span> <span class="ruby-keyword kw">do</span>
199 55:           <span class="ruby-identifier">define_method</span>(<span class="ruby-value str">&quot;activate?&quot;</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
200 56:         <span class="ruby-keyword kw">end</span>
201 57:       <span class="ruby-keyword kw">end</span>
202 </pre>
203           </div>
204         </div>
205       </div>
206
207       <div id="method-M000237" class="method-detail">
208         <a name="M000237"></a>
209
210         <div class="method-heading">
211           <a href="#M000237" class="method-signature">
212           <span class="method-name">inherited</span><span class="method-args">(klass)</span>
213           </a>
214         </div>
215       
216         <div class="method-description">
217           <p>
218 Register plugins that inherits base
219 </p>
220           <p><a class="source-toggle" href="#"
221             onclick="toggleCode('M000237-source');return false;">[Source]</a></p>
222           <div class="method-source-code" id="M000237-source">
223 <pre>
224     <span class="ruby-comment cmt"># File lib/mcollective/data/base.rb, line 7</span>
225  7:       <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">klass</span>)
226  8:         <span class="ruby-identifier">type</span> = <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;::&quot;</span>).<span class="ruby-identifier">last</span>.<span class="ruby-identifier">downcase</span>
227  9: 
228 10:         <span class="ruby-constant">PluginManager</span> <span class="ruby-operator">&lt;&lt;</span> {<span class="ruby-identifier">:type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">type</span>, <span class="ruby-identifier">:class</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">:single_instance</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>}
229 11:       <span class="ruby-keyword kw">end</span>
230 </pre>
231           </div>
232         </div>
233       </div>
234
235       <div id="method-M000238" class="method-detail">
236         <a name="M000238"></a>
237
238         <div class="method-heading">
239           <a href="#M000238" class="method-signature">
240           <span class="method-name">new</span><span class="method-args">()</span>
241           </a>
242         </div>
243       
244         <div class="method-description">
245           <p><a class="source-toggle" href="#"
246             onclick="toggleCode('M000238-source');return false;">[Source]</a></p>
247           <div class="method-source-code" id="M000238-source">
248 <pre>
249     <span class="ruby-comment cmt"># File lib/mcollective/data/base.rb, line 13</span>
250 13:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
251 14:         <span class="ruby-ivar">@name</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;::&quot;</span>).<span class="ruby-identifier">last</span>.<span class="ruby-identifier">downcase</span>
252 15:         <span class="ruby-ivar">@ddl</span> = <span class="ruby-constant">DDL</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@name</span>, <span class="ruby-identifier">:data</span>)
253 16:         <span class="ruby-ivar">@result</span> = <span class="ruby-constant">Result</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@ddl</span>.<span class="ruby-identifier">dataquery_interface</span>[<span class="ruby-identifier">:output</span>])
254 17:         <span class="ruby-ivar">@timeout</span> = <span class="ruby-ivar">@ddl</span>.<span class="ruby-identifier">meta</span>[<span class="ruby-identifier">:timeout</span>] <span class="ruby-operator">||</span> <span class="ruby-value">1</span>
255 18: 
256 19:         <span class="ruby-identifier">startup_hook</span>
257 20:       <span class="ruby-keyword kw">end</span>
258 </pre>
259           </div>
260         </div>
261       </div>
262
263       <div id="method-M000240" class="method-detail">
264         <a name="M000240"></a>
265
266         <div class="method-heading">
267           <a href="#M000240" class="method-signature">
268           <span class="method-name">query</span><span class="method-args">(&amp;block)</span>
269           </a>
270         </div>
271       
272         <div class="method-description">
273           <p><a class="source-toggle" href="#"
274             onclick="toggleCode('M000240-source');return false;">[Source]</a></p>
275           <div class="method-source-code" id="M000240-source">
276 <pre>
277     <span class="ruby-comment cmt"># File lib/mcollective/data/base.rb, line 42</span>
278 42:       <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">query</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
279 43:         <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">module_eval</span> { <span class="ruby-identifier">define_method</span>(<span class="ruby-value str">&quot;query_data&quot;</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) }
280 44:       <span class="ruby-keyword kw">end</span>
281 </pre>
282           </div>
283         </div>
284       </div>
285
286       <h3 class="section-bar">Public Instance methods</h3>
287
288       <div id="method-M000241" class="method-detail">
289         <a name="M000241"></a>
290
291         <div class="method-heading">
292           <a href="#M000241" class="method-signature">
293           <span class="method-name">ddl_validate</span><span class="method-args">(what)</span>
294           </a>
295         </div>
296       
297         <div class="method-description">
298           <p><a class="source-toggle" href="#"
299             onclick="toggleCode('M000241-source');return false;">[Source]</a></p>
300           <div class="method-source-code" id="M000241-source">
301 <pre>
302     <span class="ruby-comment cmt"># File lib/mcollective/data/base.rb, line 46</span>
303 46:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ddl_validate</span>(<span class="ruby-identifier">what</span>)
304 47:         <span class="ruby-constant">Data</span>.<span class="ruby-identifier">ddl_validate</span>(<span class="ruby-ivar">@ddl</span>, <span class="ruby-identifier">what</span>)
305 48:       <span class="ruby-keyword kw">end</span>
306 </pre>
307           </div>
308         </div>
309       </div>
310
311       <div id="method-M000239" class="method-detail">
312         <a name="M000239"></a>
313
314         <div class="method-heading">
315           <a href="#M000239" class="method-signature">
316           <span class="method-name">lookup</span><span class="method-args">(what)</span>
317           </a>
318         </div>
319       
320         <div class="method-description">
321           <p><a class="source-toggle" href="#"
322             onclick="toggleCode('M000239-source');return false;">[Source]</a></p>
323           <div class="method-source-code" id="M000239-source">
324 <pre>
325     <span class="ruby-comment cmt"># File lib/mcollective/data/base.rb, line 22</span>
326 22:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lookup</span>(<span class="ruby-identifier">what</span>)
327 23:         <span class="ruby-identifier">ddl_validate</span>(<span class="ruby-identifier">what</span>)
328 24: 
329 25:         <span class="ruby-constant">Log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">&quot;Doing data query %s for '%s'&quot;</span> <span class="ruby-operator">%</span> [ <span class="ruby-ivar">@name</span>, <span class="ruby-identifier">what</span> ])
330 26: 
331 27:         <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-identifier">timeout</span>(<span class="ruby-ivar">@timeout</span>) <span class="ruby-keyword kw">do</span>
332 28:           <span class="ruby-identifier">query_data</span>(<span class="ruby-identifier">what</span>)
333 29:         <span class="ruby-keyword kw">end</span>
334 30: 
335 31:         <span class="ruby-ivar">@result</span>
336 32:       <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Timeout</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span>
337 33:         <span class="ruby-comment cmt"># Timeout::Error is a inherited from Interrupt which seems a really</span>
338 34:         <span class="ruby-comment cmt"># strange choice, making it an equivelant of ^C and such.  Catch it</span>
339 35:         <span class="ruby-comment cmt"># and raise something less critical that will not the runner to just</span>
340 36:         <span class="ruby-comment cmt"># give up the ghost</span>
341 37:         <span class="ruby-identifier">msg</span> = <span class="ruby-value str">&quot;Data plugin %s timed out on query '%s'&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-ivar">@name</span>, <span class="ruby-identifier">what</span>]
342 38:         <span class="ruby-constant">Log</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">msg</span>)
343 39:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">MsgTTLExpired</span>, <span class="ruby-identifier">msg</span>
344 40:       <span class="ruby-keyword kw">end</span>
345 </pre>
346           </div>
347         </div>
348       </div>
349
350       <div id="method-M000244" class="method-detail">
351         <a name="M000244"></a>
352
353         <div class="method-heading">
354           <a href="#M000244" class="method-signature">
355           <span class="method-name">startup_hook</span><span class="method-args">()</span>
356           </a>
357         </div>
358       
359         <div class="method-description">
360           <p><a class="source-toggle" href="#"
361             onclick="toggleCode('M000244-source');return false;">[Source]</a></p>
362           <div class="method-source-code" id="M000244-source">
363 <pre>
364     <span class="ruby-comment cmt"># File lib/mcollective/data/base.rb, line 64</span>
365 64:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">startup_hook</span>;<span class="ruby-keyword kw">end</span>
366 </pre>
367           </div>
368         </div>
369       </div>
370
371
372     </div>
373
374
375   </div>
376
377
378 <div id="validator-badges">
379   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
380 </div>
381
382 </body>
383 </html>