Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / MCollective / RPC / Request.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::RPC::Request</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::RPC::Request</td>
54         </tr>
55         <tr class="top-aligned-row">
56             <td><strong>In:</strong></td>
57             <td>
58                 <a href="../../../files/lib/mcollective/rpc/request_rb.html">
59                 lib/mcollective/rpc/request.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     <div id="description">
82       <p>
83 Simple class to manage compliant requests for <a
84 href="../RPC.html">MCollective::RPC</a> agents
85 </p>
86
87     </div>
88
89
90    </div>
91
92     <div id="method-list">
93       <h3 class="section-bar">Methods</h3>
94
95       <div class="name-list">
96       <a href="#M000138">[]</a>&nbsp;&nbsp;
97       <a href="#M000139">fetch</a>&nbsp;&nbsp;
98       <a href="#M000136">include?</a>&nbsp;&nbsp;
99       <a href="#M000135">new</a>&nbsp;&nbsp;
100       <a href="#M000137">should_respond?</a>&nbsp;&nbsp;
101       <a href="#M000140">to_hash</a>&nbsp;&nbsp;
102       <a href="#M000142">to_json</a>&nbsp;&nbsp;
103       <a href="#M000141">validate!</a>&nbsp;&nbsp;
104       </div>
105     </div>
106
107   </div>
108
109
110     <!-- if includes -->
111
112     <div id="section">
113
114
115
116
117
118     <div id="attribute-list">
119       <h3 class="section-bar">Attributes</h3>
120
121       <div class="name-list">
122         <table>
123         <tr class="top-aligned-row context-row">
124           <td class="context-item-name">action</td>
125           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
126           <td class="context-item-desc"></td>
127         </tr>
128         <tr class="top-aligned-row context-row">
129           <td class="context-item-name">agent</td>
130           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
131           <td class="context-item-desc"></td>
132         </tr>
133         <tr class="top-aligned-row context-row">
134           <td class="context-item-name">caller</td>
135           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
136           <td class="context-item-desc"></td>
137         </tr>
138         <tr class="top-aligned-row context-row">
139           <td class="context-item-name">data</td>
140           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
141           <td class="context-item-desc"></td>
142         </tr>
143         <tr class="top-aligned-row context-row">
144           <td class="context-item-name">ddl</td>
145           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
146           <td class="context-item-desc"></td>
147         </tr>
148         <tr class="top-aligned-row context-row">
149           <td class="context-item-name">sender</td>
150           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
151           <td class="context-item-desc"></td>
152         </tr>
153         <tr class="top-aligned-row context-row">
154           <td class="context-item-name">time</td>
155           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
156           <td class="context-item-desc"></td>
157         </tr>
158         <tr class="top-aligned-row context-row">
159           <td class="context-item-name">uniqid</td>
160           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
161           <td class="context-item-desc"></td>
162         </tr>
163         </table>
164       </div>
165     </div>
166       
167
168
169     <!-- if method_list -->
170     <div id="methods">
171       <h3 class="section-bar">Public Class methods</h3>
172
173       <div id="method-M000135" class="method-detail">
174         <a name="M000135"></a>
175
176         <div class="method-heading">
177           <a href="#M000135" class="method-signature">
178           <span class="method-name">new</span><span class="method-args">(msg, ddl)</span>
179           </a>
180         </div>
181       
182         <div class="method-description">
183           <p><a class="source-toggle" href="#"
184             onclick="toggleCode('M000135-source');return false;">[Source]</a></p>
185           <div class="method-source-code" id="M000135-source">
186 <pre>
187     <span class="ruby-comment cmt"># File lib/mcollective/rpc/request.rb, line 7</span>
188  7:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">msg</span>, <span class="ruby-identifier">ddl</span>)
189  8:         <span class="ruby-ivar">@time</span> = <span class="ruby-identifier">msg</span>[<span class="ruby-identifier">:msgtime</span>]
190  9:         <span class="ruby-ivar">@action</span> = <span class="ruby-identifier">msg</span>[<span class="ruby-identifier">:body</span>][<span class="ruby-identifier">:action</span>]
191 10:         <span class="ruby-ivar">@data</span> = <span class="ruby-identifier">msg</span>[<span class="ruby-identifier">:body</span>][<span class="ruby-identifier">:data</span>]
192 11:         <span class="ruby-ivar">@sender</span> = <span class="ruby-identifier">msg</span>[<span class="ruby-identifier">:senderid</span>]
193 12:         <span class="ruby-ivar">@agent</span> = <span class="ruby-identifier">msg</span>[<span class="ruby-identifier">:body</span>][<span class="ruby-identifier">:agent</span>]
194 13:         <span class="ruby-ivar">@uniqid</span> = <span class="ruby-identifier">msg</span>[<span class="ruby-identifier">:requestid</span>]
195 14:         <span class="ruby-ivar">@caller</span> = <span class="ruby-identifier">msg</span>[<span class="ruby-identifier">:callerid</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;unknown&quot;</span>
196 15:         <span class="ruby-ivar">@ddl</span> = <span class="ruby-identifier">ddl</span>
197 16:       <span class="ruby-keyword kw">end</span>
198 </pre>
199           </div>
200         </div>
201       </div>
202
203       <h3 class="section-bar">Public Instance methods</h3>
204
205       <div id="method-M000138" class="method-detail">
206         <a name="M000138"></a>
207
208         <div class="method-heading">
209           <a href="#M000138" class="method-signature">
210           <span class="method-name">[]</span><span class="method-args">(key)</span>
211           </a>
212         </div>
213       
214         <div class="method-description">
215           <p>
216 If data is a hash, gives easy access to its members, else returns nil
217 </p>
218           <p><a class="source-toggle" href="#"
219             onclick="toggleCode('M000138-source');return false;">[Source]</a></p>
220           <div class="method-source-code" id="M000138-source">
221 <pre>
222     <span class="ruby-comment cmt"># File lib/mcollective/rpc/request.rb, line 34</span>
223 34:       <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
224 35:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
225 36:         <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">key</span>]
226 37:       <span class="ruby-keyword kw">end</span>
227 </pre>
228           </div>
229         </div>
230       </div>
231
232       <div id="method-M000139" class="method-detail">
233         <a name="M000139"></a>
234
235         <div class="method-heading">
236           <a href="#M000139" class="method-signature">
237           <span class="method-name">fetch</span><span class="method-args">(key, default)</span>
238           </a>
239         </div>
240       
241         <div class="method-description">
242           <p><a class="source-toggle" href="#"
243             onclick="toggleCode('M000139-source');return false;">[Source]</a></p>
244           <div class="method-source-code" id="M000139-source">
245 <pre>
246     <span class="ruby-comment cmt"># File lib/mcollective/rpc/request.rb, line 39</span>
247 39:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">default</span>)
248 40:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
249 41:         <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">default</span>)
250 42:       <span class="ruby-keyword kw">end</span>
251 </pre>
252           </div>
253         </div>
254       </div>
255
256       <div id="method-M000136" class="method-detail">
257         <a name="M000136"></a>
258
259         <div class="method-heading">
260           <a href="#M000136" class="method-signature">
261           <span class="method-name">include?</span><span class="method-args">(key)</span>
262           </a>
263         </div>
264       
265         <div class="method-description">
266           <p>
267 If data is a hash, quick helper to get access to it&#8216;s <a
268 href="Request.html#M000136">include?</a> method else returns false
269 </p>
270           <p><a class="source-toggle" href="#"
271             onclick="toggleCode('M000136-source');return false;">[Source]</a></p>
272           <div class="method-source-code" id="M000136-source">
273 <pre>
274     <span class="ruby-comment cmt"># File lib/mcollective/rpc/request.rb, line 20</span>
275 20:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">include?</span>(<span class="ruby-identifier">key</span>)
276 21:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
277 22:         <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">key</span>)
278 23:       <span class="ruby-keyword kw">end</span>
279 </pre>
280           </div>
281         </div>
282       </div>
283
284       <div id="method-M000137" class="method-detail">
285         <a name="M000137"></a>
286
287         <div class="method-heading">
288           <a href="#M000137" class="method-signature">
289           <span class="method-name">should_respond?</span><span class="method-args">()</span>
290           </a>
291         </div>
292       
293         <div class="method-description">
294           <p>
295 If no :process_results is specified always respond else respond based on
296 the supplied property
297 </p>
298           <p><a class="source-toggle" href="#"
299             onclick="toggleCode('M000137-source');return false;">[Source]</a></p>
300           <div class="method-source-code" id="M000137-source">
301 <pre>
302     <span class="ruby-comment cmt"># File lib/mcollective/rpc/request.rb, line 27</span>
303 27:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">should_respond?</span>
304 28:         <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">:process_results</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:process_results</span>)
305 29: 
306 30:         <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
307 31:       <span class="ruby-keyword kw">end</span>
308 </pre>
309           </div>
310         </div>
311       </div>
312
313       <div id="method-M000140" class="method-detail">
314         <a name="M000140"></a>
315
316         <div class="method-heading">
317           <a href="#M000140" class="method-signature">
318           <span class="method-name">to_hash</span><span class="method-args">()</span>
319           </a>
320         </div>
321       
322         <div class="method-description">
323           <p><a class="source-toggle" href="#"
324             onclick="toggleCode('M000140-source');return false;">[Source]</a></p>
325           <div class="method-source-code" id="M000140-source">
326 <pre>
327     <span class="ruby-comment cmt"># File lib/mcollective/rpc/request.rb, line 44</span>
328 44:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
329 45:         <span class="ruby-keyword kw">return</span> {<span class="ruby-identifier">:agent</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@agent</span>,
330 46:                 <span class="ruby-identifier">:action</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@action</span>,
331 47:                 <span class="ruby-identifier">:data</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@data</span>}
332 48:       <span class="ruby-keyword kw">end</span>
333 </pre>
334           </div>
335         </div>
336       </div>
337
338       <div id="method-M000142" class="method-detail">
339         <a name="M000142"></a>
340
341         <div class="method-heading">
342           <a href="#M000142" class="method-signature">
343           <span class="method-name">to_json</span><span class="method-args">()</span>
344           </a>
345         </div>
346       
347         <div class="method-description">
348           <p><a class="source-toggle" href="#"
349             onclick="toggleCode('M000142-source');return false;">[Source]</a></p>
350           <div class="method-source-code" id="M000142-source">
351 <pre>
352     <span class="ruby-comment cmt"># File lib/mcollective/rpc/request.rb, line 55</span>
353 55:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_json</span>
354 56:         <span class="ruby-identifier">to_hash</span>.<span class="ruby-identifier">merge!</span>({<span class="ruby-identifier">:sender</span>   =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@sender</span>,
355 57:                         <span class="ruby-identifier">:callerid</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@callerid</span>,
356 58:                         <span class="ruby-identifier">:uniqid</span>   =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@uniqid</span>}).<span class="ruby-identifier">to_json</span>
357 59:       <span class="ruby-keyword kw">end</span>
358 </pre>
359           </div>
360         </div>
361       </div>
362
363       <div id="method-M000141" class="method-detail">
364         <a name="M000141"></a>
365
366         <div class="method-heading">
367           <a href="#M000141" class="method-signature">
368           <span class="method-name">validate!</span><span class="method-args">()</span>
369           </a>
370         </div>
371       
372         <div class="method-description">
373           <p>
374 Validate the request against the <a href="../DDL.html">DDL</a>
375 </p>
376           <p><a class="source-toggle" href="#"
377             onclick="toggleCode('M000141-source');return false;">[Source]</a></p>
378           <div class="method-source-code" id="M000141-source">
379 <pre>
380     <span class="ruby-comment cmt"># File lib/mcollective/rpc/request.rb, line 51</span>
381 51:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">validate!</span>
382 52:         <span class="ruby-ivar">@ddl</span>.<span class="ruby-identifier">validate_rpc_request</span>(<span class="ruby-ivar">@action</span>, <span class="ruby-ivar">@data</span>)
383 53:       <span class="ruby-keyword kw">end</span>
384 </pre>
385           </div>
386         </div>
387       </div>
388
389
390     </div>
391
392
393   </div>
394
395
396 <div id="validator-badges">
397   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
398 </div>
399
400 </body>
401 </html>