Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / MCollective / PluginPackager / AgentDefinition.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::PluginPackager::AgentDefinition</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::PluginPackager::AgentDefinition</td>
54         </tr>
55         <tr class="top-aligned-row">
56             <td><strong>In:</strong></td>
57             <td>
58                 <a href="../../../files/lib/mcollective/pluginpackager/agent_definition_rb.html">
59                 lib/mcollective/pluginpackager/agent_definition.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 <a href="../../MCollective.html">MCollective</a> <a
84 href="../Agent.html">Agent</a> Plugin package
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="#M000325">agent</a>&nbsp;&nbsp;
97       <a href="#M000326">client</a>&nbsp;&nbsp;
98       <a href="#M000327">common</a>&nbsp;&nbsp;
99       <a href="#M000324">identify_packages</a>&nbsp;&nbsp;
100       <a href="#M000323">new</a>&nbsp;&nbsp;
101       </div>
102     </div>
103
104   </div>
105
106
107     <!-- if includes -->
108
109     <div id="section">
110
111
112
113
114
115     <div id="attribute-list">
116       <h3 class="section-bar">Attributes</h3>
117
118       <div class="name-list">
119         <table>
120         <tr class="top-aligned-row context-row">
121           <td class="context-item-name">dependencies</td>
122           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
123           <td class="context-item-desc"></td>
124         </tr>
125         <tr class="top-aligned-row context-row">
126           <td class="context-item-name">mcname</td>
127           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
128           <td class="context-item-desc"></td>
129         </tr>
130         <tr class="top-aligned-row context-row">
131           <td class="context-item-name">mcversion</td>
132           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
133           <td class="context-item-desc"></td>
134         </tr>
135         <tr class="top-aligned-row context-row">
136           <td class="context-item-name">metadata</td>
137           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
138           <td class="context-item-desc"></td>
139         </tr>
140         <tr class="top-aligned-row context-row">
141           <td class="context-item-name">packagedata</td>
142           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
143           <td class="context-item-desc"></td>
144         </tr>
145         <tr class="top-aligned-row context-row">
146           <td class="context-item-name">path</td>
147           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
148           <td class="context-item-desc"></td>
149         </tr>
150         <tr class="top-aligned-row context-row">
151           <td class="context-item-name">plugintype</td>
152           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
153           <td class="context-item-desc"></td>
154         </tr>
155         <tr class="top-aligned-row context-row">
156           <td class="context-item-name">postinstall</td>
157           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
158           <td class="context-item-desc"></td>
159         </tr>
160         <tr class="top-aligned-row context-row">
161           <td class="context-item-name">preinstall</td>
162           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
163           <td class="context-item-desc"></td>
164         </tr>
165         <tr class="top-aligned-row context-row">
166           <td class="context-item-name">revision</td>
167           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
168           <td class="context-item-desc"></td>
169         </tr>
170         <tr class="top-aligned-row context-row">
171           <td class="context-item-name">target_path</td>
172           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
173           <td class="context-item-desc"></td>
174         </tr>
175         <tr class="top-aligned-row context-row">
176           <td class="context-item-name">vendor</td>
177           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
178           <td class="context-item-desc"></td>
179         </tr>
180         </table>
181       </div>
182     </div>
183       
184
185
186     <!-- if method_list -->
187     <div id="methods">
188       <h3 class="section-bar">Public Class methods</h3>
189
190       <div id="method-M000323" class="method-detail">
191         <a name="M000323"></a>
192
193         <div class="method-heading">
194           <a href="#M000323" class="method-signature">
195           <span class="method-name">new</span><span class="method-args">(configuration, mcdependency, plugintype)</span>
196           </a>
197         </div>
198       
199         <div class="method-description">
200           <p><a class="source-toggle" href="#"
201             onclick="toggleCode('M000323-source');return false;">[Source]</a></p>
202           <div class="method-source-code" id="M000323-source">
203 <pre>
204     <span class="ruby-comment cmt"># File lib/mcollective/pluginpackager/agent_definition.rb, line 8</span>
205  8:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">configuration</span>, <span class="ruby-identifier">mcdependency</span>, <span class="ruby-identifier">plugintype</span>)
206  9:         <span class="ruby-ivar">@plugintype</span> = <span class="ruby-identifier">plugintype</span>
207 10:         <span class="ruby-ivar">@path</span> = <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">:target</span>]
208 11:         <span class="ruby-ivar">@packagedata</span> = {}
209 12:         <span class="ruby-ivar">@revision</span> = <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">:revision</span>] <span class="ruby-operator">||</span> <span class="ruby-value">1</span>
210 13:         <span class="ruby-ivar">@preinstall</span> = <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">:preinstall</span>]
211 14:         <span class="ruby-ivar">@postinstall</span> = <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">:postinstall</span>]
212 15:         <span class="ruby-ivar">@vendor</span> = <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">:vendor</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;Puppet Labs&quot;</span>
213 16:         <span class="ruby-ivar">@dependencies</span> = <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">:dependency</span>] <span class="ruby-operator">||</span> []
214 17:         <span class="ruby-ivar">@target_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-ivar">@path</span>)
215 18:         <span class="ruby-ivar">@metadata</span>, <span class="ruby-identifier">mcversion</span> = <span class="ruby-constant">PluginPackager</span>.<span class="ruby-identifier">get_metadata</span>(<span class="ruby-ivar">@path</span>, <span class="ruby-value str">&quot;agent&quot;</span>)
216 19:         <span class="ruby-ivar">@mcname</span> = <span class="ruby-identifier">mcdependency</span>[<span class="ruby-identifier">:mcname</span>] <span class="ruby-operator">||</span>  <span class="ruby-value str">&quot;mcollective&quot;</span>
217 20:         <span class="ruby-ivar">@mcversion</span> = <span class="ruby-identifier">mcdependency</span>[<span class="ruby-identifier">:mcversion</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">mcversion</span>
218 21:         <span class="ruby-ivar">@metadata</span>[<span class="ruby-identifier">:version</span>] = (<span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">:version</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@metadata</span>[<span class="ruby-identifier">:version</span>])
219 22:         <span class="ruby-ivar">@dependencies</span> <span class="ruby-operator">&lt;&lt;</span> {<span class="ruby-identifier">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{@mcname}-common&quot;</span>, <span class="ruby-identifier">:version</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@mcversion</span>}
220 23:         <span class="ruby-ivar">@metadata</span>[<span class="ruby-identifier">:name</span>] = (<span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">:pluginname</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@metadata</span>[<span class="ruby-identifier">:name</span>]).<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\s+|_/</span>, <span class="ruby-value str">&quot;-&quot;</span>)
221 24:         <span class="ruby-identifier">identify_packages</span>
222 25:       <span class="ruby-keyword kw">end</span>
223 </pre>
224           </div>
225         </div>
226       </div>
227
228       <h3 class="section-bar">Public Instance methods</h3>
229
230       <div id="method-M000325" class="method-detail">
231         <a name="M000325"></a>
232
233         <div class="method-heading">
234           <a href="#M000325" class="method-signature">
235           <span class="method-name">agent</span><span class="method-args">()</span>
236           </a>
237         </div>
238       
239         <div class="method-description">
240           <p>
241 Obtain <a href="../Agent.html">Agent</a> package files and dependencies.
242 </p>
243           <p><a class="source-toggle" href="#"
244             onclick="toggleCode('M000325-source');return false;">[Source]</a></p>
245           <div class="method-source-code" id="M000325-source">
246 <pre>
247     <span class="ruby-comment cmt"># File lib/mcollective/pluginpackager/agent_definition.rb, line 38</span>
248 38:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">agent</span>
249 39:         <span class="ruby-identifier">agent</span> = {<span class="ruby-identifier">:files</span> =<span class="ruby-operator">&gt;</span> [],
250 40:                  <span class="ruby-identifier">:dependencies</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@dependencies</span>.<span class="ruby-identifier">clone</span>,
251 41:                  <span class="ruby-identifier">:description</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;Agent plugin for #{@metadata[:name]}&quot;</span>}
252 42: 
253 43:         <span class="ruby-identifier">agentdir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@path</span>, <span class="ruby-value str">&quot;agent&quot;</span>)
254 44: 
255 45:         <span class="ruby-keyword kw">if</span> <span class="ruby-constant">PluginPackager</span>.<span class="ruby-identifier">check_dir_present</span> <span class="ruby-identifier">agentdir</span>
256 46:           <span class="ruby-identifier">ddls</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">agentdir</span>, <span class="ruby-value str">&quot;*.ddl&quot;</span>))
257 47:           <span class="ruby-identifier">agent</span>[<span class="ruby-identifier">:files</span>] = (<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">agentdir</span>, <span class="ruby-value str">&quot;*&quot;</span>)) <span class="ruby-operator">-</span> <span class="ruby-identifier">ddls</span>)
258 48:         <span class="ruby-keyword kw">else</span>
259 49:           <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
260 50:         <span class="ruby-keyword kw">end</span>
261 51:         <span class="ruby-identifier">agent</span>[<span class="ruby-identifier">:plugindependency</span>] = {<span class="ruby-identifier">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{@mcname}-#{@metadata[:name]}-common&quot;</span>, <span class="ruby-identifier">:version</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@metadata</span>[<span class="ruby-identifier">:version</span>], <span class="ruby-identifier">:revision</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@revision</span>}
262 52:         <span class="ruby-identifier">agent</span>
263 53:       <span class="ruby-keyword kw">end</span>
264 </pre>
265           </div>
266         </div>
267       </div>
268
269       <div id="method-M000326" class="method-detail">
270         <a name="M000326"></a>
271
272         <div class="method-heading">
273           <a href="#M000326" class="method-signature">
274           <span class="method-name">client</span><span class="method-args">()</span>
275           </a>
276         </div>
277       
278         <div class="method-description">
279           <p>
280 Obtain <a href="AgentDefinition.html#M000326">client</a> package files and
281 dependencies.
282 </p>
283           <p><a class="source-toggle" href="#"
284             onclick="toggleCode('M000326-source');return false;">[Source]</a></p>
285           <div class="method-source-code" id="M000326-source">
286 <pre>
287     <span class="ruby-comment cmt"># File lib/mcollective/pluginpackager/agent_definition.rb, line 56</span>
288 56:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">client</span>
289 57:         <span class="ruby-identifier">client</span> = {<span class="ruby-identifier">:files</span> =<span class="ruby-operator">&gt;</span> [],
290 58:                   <span class="ruby-identifier">:dependencies</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@dependencies</span>.<span class="ruby-identifier">clone</span>,
291 59:                   <span class="ruby-identifier">:description</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;Client plugin for #{@metadata[:name]}&quot;</span>}
292 60: 
293 61:         <span class="ruby-identifier">clientdir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@path</span>, <span class="ruby-value str">&quot;application&quot;</span>)
294 62:         <span class="ruby-identifier">aggregatedir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@path</span>, <span class="ruby-value str">&quot;aggregate&quot;</span>)
295 63: 
296 64:         <span class="ruby-identifier">client</span>[<span class="ruby-identifier">:files</span>] <span class="ruby-operator">+=</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">clientdir</span>, <span class="ruby-value str">&quot;*&quot;</span>)) <span class="ruby-keyword kw">if</span> <span class="ruby-constant">PluginPackager</span>.<span class="ruby-identifier">check_dir_present</span> <span class="ruby-identifier">clientdir</span>
297 65:         <span class="ruby-identifier">client</span>[<span class="ruby-identifier">:files</span>] <span class="ruby-operator">+=</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">aggregatedir</span>, <span class="ruby-value str">&quot;*&quot;</span>)) <span class="ruby-keyword kw">if</span> <span class="ruby-constant">PluginPackager</span>.<span class="ruby-identifier">check_dir_present</span> <span class="ruby-identifier">aggregatedir</span>
298 66:         <span class="ruby-identifier">client</span>[<span class="ruby-identifier">:plugindependency</span>] = {<span class="ruby-identifier">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;#{@mcname}-#{@metadata[:name]}-common&quot;</span>, <span class="ruby-identifier">:version</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@metadata</span>[<span class="ruby-identifier">:version</span>], <span class="ruby-identifier">:revision</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@revision</span>}
299 67:         <span class="ruby-identifier">client</span>[<span class="ruby-identifier">:files</span>].<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">client</span>
300 68:       <span class="ruby-keyword kw">end</span>
301 </pre>
302           </div>
303         </div>
304       </div>
305
306       <div id="method-M000327" class="method-detail">
307         <a name="M000327"></a>
308
309         <div class="method-heading">
310           <a href="#M000327" class="method-signature">
311           <span class="method-name">common</span><span class="method-args">()</span>
312           </a>
313         </div>
314       
315         <div class="method-description">
316           <p>
317 Obtain <a href="AgentDefinition.html#M000327">common</a> package files and
318 dependencies.
319 </p>
320           <p><a class="source-toggle" href="#"
321             onclick="toggleCode('M000327-source');return false;">[Source]</a></p>
322           <div class="method-source-code" id="M000327-source">
323 <pre>
324     <span class="ruby-comment cmt"># File lib/mcollective/pluginpackager/agent_definition.rb, line 71</span>
325 71:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">common</span>
326 72:         <span class="ruby-identifier">common</span> = {<span class="ruby-identifier">:files</span> =<span class="ruby-operator">&gt;</span>[],
327 73:                   <span class="ruby-identifier">:dependencies</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@dependencies</span>.<span class="ruby-identifier">clone</span>,
328 74:                   <span class="ruby-identifier">:description</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;Common libraries for #{@metadata[:name]}&quot;</span>}
329 75: 
330 76:         <span class="ruby-identifier">datadir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@path</span>, <span class="ruby-value str">&quot;data&quot;</span>, <span class="ruby-value str">&quot;**&quot;</span>)
331 77:         <span class="ruby-identifier">utildir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@path</span>, <span class="ruby-value str">&quot;util&quot;</span>, <span class="ruby-value str">&quot;**&quot;</span>, <span class="ruby-value str">&quot;**&quot;</span>)
332 78:         <span class="ruby-identifier">ddldir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@path</span>, <span class="ruby-value str">&quot;agent&quot;</span>, <span class="ruby-value str">&quot;*.ddl&quot;</span>)
333 79:         <span class="ruby-identifier">validatordir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@path</span>, <span class="ruby-value str">&quot;validator&quot;</span>, <span class="ruby-value str">&quot;**&quot;</span>)
334 80: 
335 81:         [<span class="ruby-identifier">datadir</span>, <span class="ruby-identifier">utildir</span>, <span class="ruby-identifier">validatordir</span>, <span class="ruby-identifier">ddldir</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">directory</span><span class="ruby-operator">|</span>
336 82:           <span class="ruby-identifier">common</span>[<span class="ruby-identifier">:files</span>] <span class="ruby-operator">+=</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-identifier">directory</span>)
337 83:         <span class="ruby-keyword kw">end</span>
338 84: 
339 85:         <span class="ruby-comment cmt"># We fail if there is no ddl file present</span>
340 86:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">common</span>[<span class="ruby-identifier">:files</span>].<span class="ruby-identifier">grep</span>(<span class="ruby-regexp re">/^.*\.ddl$/</span>).<span class="ruby-identifier">empty?</span>
341 87:           <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;cannot create package - No ddl file found in #{File.join(@path, &quot;agent&quot;)}&quot;</span>
342 88:         <span class="ruby-keyword kw">end</span>
343 89: 
344 90:         <span class="ruby-identifier">common</span>[<span class="ruby-identifier">:files</span>].<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">common</span>
345 91:       <span class="ruby-keyword kw">end</span>
346 </pre>
347           </div>
348         </div>
349       </div>
350
351       <div id="method-M000324" class="method-detail">
352         <a name="M000324"></a>
353
354         <div class="method-heading">
355           <a href="#M000324" class="method-signature">
356           <span class="method-name">identify_packages</span><span class="method-args">()</span>
357           </a>
358         </div>
359       
360         <div class="method-description">
361           <p>
362 Identify present packages and populate packagedata hash.
363 </p>
364           <p><a class="source-toggle" href="#"
365             onclick="toggleCode('M000324-source');return false;">[Source]</a></p>
366           <div class="method-source-code" id="M000324-source">
367 <pre>
368     <span class="ruby-comment cmt"># File lib/mcollective/pluginpackager/agent_definition.rb, line 28</span>
369 28:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">identify_packages</span>
370 29:         <span class="ruby-identifier">common_package</span> = <span class="ruby-identifier">common</span>
371 30:         <span class="ruby-ivar">@packagedata</span>[<span class="ruby-identifier">:common</span>] = <span class="ruby-identifier">common_package</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">common_package</span>
372 31:         <span class="ruby-identifier">agent_package</span> = <span class="ruby-identifier">agent</span>
373 32:         <span class="ruby-ivar">@packagedata</span>[<span class="ruby-identifier">:agent</span>] = <span class="ruby-identifier">agent_package</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">agent_package</span>
374 33:         <span class="ruby-identifier">client_package</span> = <span class="ruby-identifier">client</span>
375 34:         <span class="ruby-ivar">@packagedata</span>[<span class="ruby-identifier">:client</span>] = <span class="ruby-identifier">client_package</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">client_package</span>
376 35:       <span class="ruby-keyword kw">end</span>
377 </pre>
378           </div>
379         </div>
380       </div>
381
382
383     </div>
384
385
386   </div>
387
388
389 <div id="validator-badges">
390   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
391 </div>
392
393 </body>
394 </html>