Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / MCollective / Config.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::Config</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::Config</td>
54         </tr>
55         <tr class="top-aligned-row">
56             <td><strong>In:</strong></td>
57             <td>
58                 <a href="../../files/lib/mcollective/config_rb.html">
59                 lib/mcollective/config.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 pretty sucky config class, ripe for refactoring/improving
84 </p>
85
86     </div>
87
88
89    </div>
90
91     <div id="method-list">
92       <h3 class="section-bar">Methods</h3>
93
94       <div class="name-list">
95       <a href="#M000493">loadconfig</a>&nbsp;&nbsp;
96       <a href="#M000492">new</a>&nbsp;&nbsp;
97       <a href="#M000495">read_plugin_config_dir</a>&nbsp;&nbsp;
98       <a href="#M000494">set_config_defaults</a>&nbsp;&nbsp;
99       </div>
100     </div>
101
102   </div>
103
104
105     <!-- if includes -->
106     <div id="includes">
107       <h3 class="section-bar">Included Modules</h3>
108
109       <div id="includes-list">
110         <span class="include-name">Singleton</span>
111       </div>
112     </div>
113
114     <div id="section">
115
116
117
118
119
120     <div id="attribute-list">
121       <h3 class="section-bar">Attributes</h3>
122
123       <div class="name-list">
124         <table>
125         <tr class="top-aligned-row context-row">
126           <td class="context-item-name">classesfile</td>
127           <td class="context-item-value">&nbsp;[R]&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">collectives</td>
132           <td class="context-item-value">&nbsp;[R]&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">color</td>
137           <td class="context-item-value">&nbsp;[R]&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">configdir</td>
142           <td class="context-item-value">&nbsp;[R]&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">configfile</td>
147           <td class="context-item-value">&nbsp;[R]&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">configured</td>
152           <td class="context-item-value">&nbsp;[R]&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">connector</td>
157           <td class="context-item-value">&nbsp;[R]&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">daemonize</td>
162           <td class="context-item-value">&nbsp;[R]&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">daemonize</td>
167           <td class="context-item-value">&nbsp;[R]&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">default_discovery_method</td>
172           <td class="context-item-value">&nbsp;[R]&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">default_discovery_options</td>
177           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
178           <td class="context-item-desc"></td>
179         </tr>
180         <tr class="top-aligned-row context-row">
181           <td class="context-item-name">direct_addressing</td>
182           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
183           <td class="context-item-desc"></td>
184         </tr>
185         <tr class="top-aligned-row context-row">
186           <td class="context-item-name">direct_addressing_threshold</td>
187           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
188           <td class="context-item-desc"></td>
189         </tr>
190         <tr class="top-aligned-row context-row">
191           <td class="context-item-name">fact_cache_time</td>
192           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
193           <td class="context-item-desc"></td>
194         </tr>
195         <tr class="top-aligned-row context-row">
196           <td class="context-item-name">factsource</td>
197           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
198           <td class="context-item-desc"></td>
199         </tr>
200         <tr class="top-aligned-row context-row">
201           <td class="context-item-name">identity</td>
202           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
203           <td class="context-item-desc"></td>
204         </tr>
205         <tr class="top-aligned-row context-row">
206           <td class="context-item-name">keeplogs</td>
207           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
208           <td class="context-item-desc"></td>
209         </tr>
210         <tr class="top-aligned-row context-row">
211           <td class="context-item-name">libdir</td>
212           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
213           <td class="context-item-desc"></td>
214         </tr>
215         <tr class="top-aligned-row context-row">
216           <td class="context-item-name">logfacility</td>
217           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
218           <td class="context-item-desc"></td>
219         </tr>
220         <tr class="top-aligned-row context-row">
221           <td class="context-item-name">logfile</td>
222           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
223           <td class="context-item-desc"></td>
224         </tr>
225         <tr class="top-aligned-row context-row">
226           <td class="context-item-name">logger_type</td>
227           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
228           <td class="context-item-desc"></td>
229         </tr>
230         <tr class="top-aligned-row context-row">
231           <td class="context-item-name">loglevel</td>
232           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
233           <td class="context-item-desc"></td>
234         </tr>
235         <tr class="top-aligned-row context-row">
236           <td class="context-item-name">main_collective</td>
237           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
238           <td class="context-item-desc"></td>
239         </tr>
240         <tr class="top-aligned-row context-row">
241           <td class="context-item-name">max_log_size</td>
242           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
243           <td class="context-item-desc"></td>
244         </tr>
245         <tr class="top-aligned-row context-row">
246           <td class="context-item-name">mode</td>
247           <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
248           <td class="context-item-desc"></td>
249         </tr>
250         <tr class="top-aligned-row context-row">
251           <td class="context-item-name">pluginconf</td>
252           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
253           <td class="context-item-desc"></td>
254         </tr>
255         <tr class="top-aligned-row context-row">
256           <td class="context-item-name">publish_timeout</td>
257           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
258           <td class="context-item-desc"></td>
259         </tr>
260         <tr class="top-aligned-row context-row">
261           <td class="context-item-name">registerinterval</td>
262           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
263           <td class="context-item-desc"></td>
264         </tr>
265         <tr class="top-aligned-row context-row">
266           <td class="context-item-name">registration</td>
267           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
268           <td class="context-item-desc"></td>
269         </tr>
270         <tr class="top-aligned-row context-row">
271           <td class="context-item-name">registration_collective</td>
272           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
273           <td class="context-item-desc"></td>
274         </tr>
275         <tr class="top-aligned-row context-row">
276           <td class="context-item-name">rpcaudit</td>
277           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
278           <td class="context-item-desc"></td>
279         </tr>
280         <tr class="top-aligned-row context-row">
281           <td class="context-item-name">rpcauditprovider</td>
282           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
283           <td class="context-item-desc"></td>
284         </tr>
285         <tr class="top-aligned-row context-row">
286           <td class="context-item-name">rpcauthorization</td>
287           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
288           <td class="context-item-desc"></td>
289         </tr>
290         <tr class="top-aligned-row context-row">
291           <td class="context-item-name">rpcauthprovider</td>
292           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
293           <td class="context-item-desc"></td>
294         </tr>
295         <tr class="top-aligned-row context-row">
296           <td class="context-item-name">rpclimitmethod</td>
297           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
298           <td class="context-item-desc"></td>
299         </tr>
300         <tr class="top-aligned-row context-row">
301           <td class="context-item-name">securityprovider</td>
302           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
303           <td class="context-item-desc"></td>
304         </tr>
305         <tr class="top-aligned-row context-row">
306           <td class="context-item-name">ssl_cipher</td>
307           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
308           <td class="context-item-desc"></td>
309         </tr>
310         <tr class="top-aligned-row context-row">
311           <td class="context-item-name">threaded</td>
312           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
313           <td class="context-item-desc"></td>
314         </tr>
315         <tr class="top-aligned-row context-row">
316           <td class="context-item-name">ttl</td>
317           <td class="context-item-value">&nbsp;[R]&nbsp;</td>
318           <td class="context-item-desc"></td>
319         </tr>
320         </table>
321       </div>
322     </div>
323       
324
325
326     <!-- if method_list -->
327     <div id="methods">
328       <h3 class="section-bar">Public Class methods</h3>
329
330       <div id="method-M000492" class="method-detail">
331         <a name="M000492"></a>
332
333         <div class="method-heading">
334           <a href="#M000492" class="method-signature">
335           <span class="method-name">new</span><span class="method-args">()</span>
336           </a>
337         </div>
338       
339         <div class="method-description">
340           <p><a class="source-toggle" href="#"
341             onclick="toggleCode('M000492-source');return false;">[Source]</a></p>
342           <div class="method-source-code" id="M000492-source">
343 <pre>
344     <span class="ruby-comment cmt"># File lib/mcollective/config.rb, line 20</span>
345 20:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
346 21:       <span class="ruby-ivar">@configured</span> = <span class="ruby-keyword kw">false</span>
347 22:     <span class="ruby-keyword kw">end</span>
348 </pre>
349           </div>
350         </div>
351       </div>
352
353       <h3 class="section-bar">Public Instance methods</h3>
354
355       <div id="method-M000493" class="method-detail">
356         <a name="M000493"></a>
357
358         <div class="method-heading">
359           <a href="#M000493" class="method-signature">
360           <span class="method-name">loadconfig</span><span class="method-args">(configfile)</span>
361           </a>
362         </div>
363       
364         <div class="method-description">
365           <p><a class="source-toggle" href="#"
366             onclick="toggleCode('M000493-source');return false;">[Source]</a></p>
367           <div class="method-source-code" id="M000493-source">
368 <pre>
369      <span class="ruby-comment cmt"># File lib/mcollective/config.rb, line 24</span>
370  24:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">loadconfig</span>(<span class="ruby-identifier">configfile</span>)
371  25:       <span class="ruby-identifier">set_config_defaults</span>(<span class="ruby-identifier">configfile</span>)
372  26: 
373  27:       <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">configfile</span>)
374  28:         <span class="ruby-constant">File</span>.<span class="ruby-identifier">readlines</span>(<span class="ruby-identifier">configfile</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
375  29: 
376  30:           <span class="ruby-comment cmt"># strip blank spaces, tabs etc off the end of all lines</span>
377  31:           <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\s*$/</span>, <span class="ruby-value str">&quot;&quot;</span>)
378  32: 
379  33:           <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^#|^$/</span>
380  34:             <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/(.+?)\s*=\s*(.+)/</span>)
381  35:               <span class="ruby-identifier">key</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">strip</span>
382  36:               <span class="ruby-identifier">val</span> = <span class="ruby-identifier">$2</span>
383  37: 
384  38:               <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">key</span>
385  39:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;registration&quot;</span>
386  40:                   <span class="ruby-ivar">@registration</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">capitalize</span>
387  41:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;registration_collective&quot;</span>
388  42:                   <span class="ruby-ivar">@registration_collective</span> = <span class="ruby-identifier">val</span>
389  43:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;registerinterval&quot;</span>
390  44:                   <span class="ruby-ivar">@registerinterval</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_i</span>
391  45:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;collectives&quot;</span>
392  46:                   <span class="ruby-ivar">@collectives</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">&quot;,&quot;</span>).<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">strip</span>}
393  47:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;main_collective&quot;</span>
394  48:                   <span class="ruby-ivar">@main_collective</span> = <span class="ruby-identifier">val</span>
395  49:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;logfile&quot;</span>
396  50:                   <span class="ruby-ivar">@logfile</span> = <span class="ruby-identifier">val</span>
397  51:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;keeplogs&quot;</span>
398  52:                   <span class="ruby-ivar">@keeplogs</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_i</span>
399  53:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;max_log_size&quot;</span>
400  54:                   <span class="ruby-ivar">@max_log_size</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_i</span>
401  55:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;loglevel&quot;</span>
402  56:                   <span class="ruby-ivar">@loglevel</span> = <span class="ruby-identifier">val</span>
403  57:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;logfacility&quot;</span>
404  58:                   <span class="ruby-ivar">@logfacility</span> = <span class="ruby-identifier">val</span>
405  59:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;libdir&quot;</span>
406  60:                   <span class="ruby-identifier">paths</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">split</span>(<span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">PATH_SEPARATOR</span>)
407  61:                   <span class="ruby-identifier">paths</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
408  62:                     <span class="ruby-identifier">raise</span>(<span class="ruby-value str">&quot;libdir paths should be absolute paths but '%s' is relative&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">path</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">absolute_path?</span>(<span class="ruby-identifier">path</span>)
409  63: 
410  64:                     <span class="ruby-ivar">@libdir</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">path</span>
411  65:                     <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">$LOAD_PATH</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">path</span>)
412  66:                       <span class="ruby-identifier">$LOAD_PATH</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">path</span>
413  67:                     <span class="ruby-keyword kw">end</span>
414  68:                   <span class="ruby-keyword kw">end</span>
415  69:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;identity&quot;</span>
416  70:                   <span class="ruby-ivar">@identity</span> = <span class="ruby-identifier">val</span>
417  71:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;direct_addressing&quot;</span>
418  72:                   <span class="ruby-ivar">@direct_addressing</span> = <span class="ruby-constant">Util</span>.<span class="ruby-identifier">str_to_bool</span>(<span class="ruby-identifier">val</span>)
419  73:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;direct_addressing_threshold&quot;</span>
420  74:                   <span class="ruby-ivar">@direct_addressing_threshold</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_i</span>
421  75:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;color&quot;</span>
422  76:                   <span class="ruby-ivar">@color</span> = <span class="ruby-constant">Util</span>.<span class="ruby-identifier">str_to_bool</span>(<span class="ruby-identifier">val</span>)
423  77:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;daemonize&quot;</span>
424  78:                   <span class="ruby-ivar">@daemonize</span> = <span class="ruby-constant">Util</span>.<span class="ruby-identifier">str_to_bool</span>(<span class="ruby-identifier">val</span>)
425  79:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;securityprovider&quot;</span>
426  80:                   <span class="ruby-ivar">@securityprovider</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">capitalize</span>
427  81:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;factsource&quot;</span>
428  82:                   <span class="ruby-ivar">@factsource</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">capitalize</span>
429  83:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;connector&quot;</span>
430  84:                   <span class="ruby-ivar">@connector</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">capitalize</span>
431  85:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;classesfile&quot;</span>
432  86:                   <span class="ruby-ivar">@classesfile</span> = <span class="ruby-identifier">val</span>
433  87:                 <span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/^plugin.(.+)$/</span>
434  88:                   <span class="ruby-ivar">@pluginconf</span>[<span class="ruby-identifier">$1</span>] = <span class="ruby-identifier">val</span>
435  89:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;publish_timeout&quot;</span>
436  90:                   <span class="ruby-ivar">@publish_timeout</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_i</span>
437  91:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;rpcaudit&quot;</span>
438  92:                   <span class="ruby-ivar">@rpcaudit</span> = <span class="ruby-constant">Util</span>.<span class="ruby-identifier">str_to_bool</span>(<span class="ruby-identifier">val</span>)
439  93:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;rpcauditprovider&quot;</span>
440  94:                   <span class="ruby-ivar">@rpcauditprovider</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">capitalize</span>
441  95:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;rpcauthorization&quot;</span>
442  96:                   <span class="ruby-ivar">@rpcauthorization</span> = <span class="ruby-constant">Util</span>.<span class="ruby-identifier">str_to_bool</span>(<span class="ruby-identifier">val</span>)
443  97:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;rpcauthprovider&quot;</span>
444  98:                   <span class="ruby-ivar">@rpcauthprovider</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">capitalize</span>
445  99:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;rpclimitmethod&quot;</span>
446 100:                   <span class="ruby-ivar">@rpclimitmethod</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_sym</span>
447 101:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;logger_type&quot;</span>
448 102:                   <span class="ruby-ivar">@logger_type</span> = <span class="ruby-identifier">val</span>
449 103:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;fact_cache_time&quot;</span>
450 104:                   <span class="ruby-ivar">@fact_cache_time</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_i</span>
451 105:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;ssl_cipher&quot;</span>
452 106:                   <span class="ruby-ivar">@ssl_cipher</span> = <span class="ruby-identifier">val</span>
453 107:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;threaded&quot;</span>
454 108:                   <span class="ruby-ivar">@threaded</span> = <span class="ruby-constant">Util</span>.<span class="ruby-identifier">str_to_bool</span>(<span class="ruby-identifier">val</span>)
455 109:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;ttl&quot;</span>
456 110:                   <span class="ruby-ivar">@ttl</span> = <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_i</span>
457 111:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;default_discovery_options&quot;</span>
458 112:                   <span class="ruby-ivar">@default_discovery_options</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">val</span>
459 113:                 <span class="ruby-keyword kw">when</span> <span class="ruby-value str">&quot;default_discovery_method&quot;</span>
460 114:                   <span class="ruby-ivar">@default_discovery_method</span> = <span class="ruby-identifier">val</span>
461 115:                 <span class="ruby-keyword kw">else</span>
462 116:                   <span class="ruby-identifier">raise</span>(<span class="ruby-node">&quot;Unknown config parameter '#{key}'&quot;</span>)
463 117:               <span class="ruby-keyword kw">end</span>
464 118:             <span class="ruby-keyword kw">end</span>
465 119:           <span class="ruby-keyword kw">end</span>
466 120:         <span class="ruby-keyword kw">end</span>
467 121: 
468 122:         <span class="ruby-identifier">raise</span>(<span class="ruby-value str">'The %s config file does not specify a libdir setting, cannot continue'</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">configfile</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@libdir</span>.<span class="ruby-identifier">empty?</span>
469 123: 
470 124:         <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">load_path</span> = <span class="ruby-constant">Dir</span>[<span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword kw">__FILE__</span>), <span class="ruby-value str">&quot;locales&quot;</span>, <span class="ruby-value str">&quot;*.yml&quot;</span>))]
471 125:         <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">locale</span> = <span class="ruby-identifier">:en</span>
472 126: 
473 127:         <span class="ruby-identifier">read_plugin_config_dir</span>(<span class="ruby-node">&quot;#{@configdir}/plugin.d&quot;</span>)
474 128: 
475 129:         <span class="ruby-identifier">raise</span> <span class="ruby-value str">'Identities can only match /\w\.\-/'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@identity</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/^[\w\.\-]+$/</span>)
476 130: 
477 131:         <span class="ruby-ivar">@configured</span> = <span class="ruby-keyword kw">true</span>
478 132: 
479 133:         <span class="ruby-ivar">@libdir</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">dir</span><span class="ruby-operator">|</span> <span class="ruby-constant">Log</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Cannot find libdir: #{dir}&quot;</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">dir</span>)}
480 134: 
481 135:         <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@logger_type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;syslog&quot;</span>
482 136:           <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;The sylog logger is not usable on the Windows platform&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">windows?</span>
483 137:         <span class="ruby-keyword kw">end</span>
484 138: 
485 139:         <span class="ruby-constant">PluginManager</span>.<span class="ruby-identifier">loadclass</span>(<span class="ruby-node">&quot;Mcollective::Facts::#{@factsource}_facts&quot;</span>)
486 140:         <span class="ruby-constant">PluginManager</span>.<span class="ruby-identifier">loadclass</span>(<span class="ruby-node">&quot;Mcollective::Connector::#{@connector}&quot;</span>)
487 141:         <span class="ruby-constant">PluginManager</span>.<span class="ruby-identifier">loadclass</span>(<span class="ruby-node">&quot;Mcollective::Security::#{@securityprovider}&quot;</span>)
488 142:         <span class="ruby-constant">PluginManager</span>.<span class="ruby-identifier">loadclass</span>(<span class="ruby-node">&quot;Mcollective::Registration::#{@registration}&quot;</span>)
489 143:         <span class="ruby-constant">PluginManager</span>.<span class="ruby-identifier">loadclass</span>(<span class="ruby-node">&quot;Mcollective::Audit::#{@rpcauditprovider}&quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@rpcaudit</span>
490 144:         <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-value str">&quot;global_stats&quot;</span>, <span class="ruby-identifier">:class</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">RunnerStats</span>.<span class="ruby-identifier">new</span>}
491 145: 
492 146:         <span class="ruby-constant">Log</span>.<span class="ruby-identifier">logmsg</span>(<span class="ruby-identifier">:PLMC1</span>, <span class="ruby-value str">&quot;The Marionette Collective version %{version} started by %{name} using config file %{config}&quot;</span>, <span class="ruby-identifier">:info</span>, <span class="ruby-identifier">:version</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">MCollective</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>, <span class="ruby-identifier">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">$0</span>, <span class="ruby-identifier">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">configfile</span>)
493 147:       <span class="ruby-keyword kw">else</span>
494 148:         <span class="ruby-identifier">raise</span>(<span class="ruby-node">&quot;Cannot find config file '#{configfile}'&quot;</span>)
495 149:       <span class="ruby-keyword kw">end</span>
496 150:     <span class="ruby-keyword kw">end</span>
497 </pre>
498           </div>
499         </div>
500       </div>
501
502       <div id="method-M000495" class="method-detail">
503         <a name="M000495"></a>
504
505         <div class="method-heading">
506           <a href="#M000495" class="method-signature">
507           <span class="method-name">read_plugin_config_dir</span><span class="method-args">(dir)</span>
508           </a>
509         </div>
510       
511         <div class="method-description">
512           <p><a class="source-toggle" href="#"
513             onclick="toggleCode('M000495-source');return false;">[Source]</a></p>
514           <div class="method-source-code" id="M000495-source">
515 <pre>
516      <span class="ruby-comment cmt"># File lib/mcollective/config.rb, line 192</span>
517 192:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_plugin_config_dir</span>(<span class="ruby-identifier">dir</span>)
518 193:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">dir</span>)
519 194: 
520 195:       <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">dir</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pluginconfigfile</span><span class="ruby-operator">|</span>
521 196:         <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">pluginconfigfile</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^([\w]+).cfg$/</span>
522 197: 
523 198:         <span class="ruby-identifier">plugin</span> = <span class="ruby-identifier">$1</span>
524 199:         <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-node">&quot;#{dir}/#{pluginconfigfile}&quot;</span>, <span class="ruby-value str">&quot;r&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
525 200:           <span class="ruby-comment cmt"># strip blank lines</span>
526 201:           <span class="ruby-identifier">line</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\s*$/</span>, <span class="ruby-value str">&quot;&quot;</span>)
527 202:           <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^#|^$/</span>
528 203:           <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/(.+?)\s*=\s*(.+)/</span>)
529 204:             <span class="ruby-identifier">key</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">strip</span>
530 205:             <span class="ruby-identifier">val</span> = <span class="ruby-identifier">$2</span>
531 206:             <span class="ruby-ivar">@pluginconf</span>[<span class="ruby-node">&quot;#{plugin}.#{key}&quot;</span>] = <span class="ruby-identifier">val</span>
532 207:           <span class="ruby-keyword kw">end</span>
533 208:         <span class="ruby-keyword kw">end</span>
534 209:       <span class="ruby-keyword kw">end</span>
535 210:     <span class="ruby-keyword kw">end</span>
536 </pre>
537           </div>
538         </div>
539       </div>
540
541       <div id="method-M000494" class="method-detail">
542         <a name="M000494"></a>
543
544         <div class="method-heading">
545           <a href="#M000494" class="method-signature">
546           <span class="method-name">set_config_defaults</span><span class="method-args">(configfile)</span>
547           </a>
548         </div>
549       
550         <div class="method-description">
551           <p><a class="source-toggle" href="#"
552             onclick="toggleCode('M000494-source');return false;">[Source]</a></p>
553           <div class="method-source-code" id="M000494-source">
554 <pre>
555      <span class="ruby-comment cmt"># File lib/mcollective/config.rb, line 152</span>
556 152:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_config_defaults</span>(<span class="ruby-identifier">configfile</span>)
557 153:       <span class="ruby-ivar">@stomp</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
558 154:       <span class="ruby-ivar">@subscribe</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
559 155:       <span class="ruby-ivar">@pluginconf</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
560 156:       <span class="ruby-ivar">@connector</span> = <span class="ruby-value str">&quot;activemq&quot;</span>
561 157:       <span class="ruby-ivar">@securityprovider</span> = <span class="ruby-value str">&quot;Psk&quot;</span>
562 158:       <span class="ruby-ivar">@factsource</span> = <span class="ruby-value str">&quot;Yaml&quot;</span>
563 159:       <span class="ruby-ivar">@identity</span> = <span class="ruby-constant">Socket</span>.<span class="ruby-identifier">gethostname</span>
564 160:       <span class="ruby-ivar">@registration</span> = <span class="ruby-value str">&quot;Agentlist&quot;</span>
565 161:       <span class="ruby-ivar">@registerinterval</span> = <span class="ruby-value">0</span>
566 162:       <span class="ruby-ivar">@registration_collective</span> = <span class="ruby-keyword kw">nil</span>
567 163:       <span class="ruby-ivar">@classesfile</span> = <span class="ruby-value str">&quot;/var/lib/puppet/state/classes.txt&quot;</span>
568 164:       <span class="ruby-ivar">@rpcaudit</span> = <span class="ruby-keyword kw">false</span>
569 165:       <span class="ruby-ivar">@rpcauditprovider</span> = <span class="ruby-value str">&quot;&quot;</span>
570 166:       <span class="ruby-ivar">@rpcauthorization</span> = <span class="ruby-keyword kw">false</span>
571 167:       <span class="ruby-ivar">@rpcauthprovider</span> = <span class="ruby-value str">&quot;&quot;</span>
572 168:       <span class="ruby-ivar">@configdir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">configfile</span>)
573 169:       <span class="ruby-ivar">@color</span> = <span class="ruby-operator">!</span><span class="ruby-constant">Util</span>.<span class="ruby-identifier">windows?</span>
574 170:       <span class="ruby-ivar">@configfile</span> = <span class="ruby-identifier">configfile</span>
575 171:       <span class="ruby-ivar">@logger_type</span> = <span class="ruby-value str">&quot;file&quot;</span>
576 172:       <span class="ruby-ivar">@keeplogs</span> = <span class="ruby-value">5</span>
577 173:       <span class="ruby-ivar">@max_log_size</span> = <span class="ruby-value">2097152</span>
578 174:       <span class="ruby-ivar">@rpclimitmethod</span> = <span class="ruby-identifier">:first</span>
579 175:       <span class="ruby-ivar">@libdir</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
580 176:       <span class="ruby-ivar">@fact_cache_time</span> = <span class="ruby-value">300</span>
581 177:       <span class="ruby-ivar">@loglevel</span> = <span class="ruby-value str">&quot;info&quot;</span>
582 178:       <span class="ruby-ivar">@logfacility</span> = <span class="ruby-value str">&quot;user&quot;</span>
583 179:       <span class="ruby-ivar">@collectives</span> = [<span class="ruby-value str">&quot;mcollective&quot;</span>]
584 180:       <span class="ruby-ivar">@main_collective</span> = <span class="ruby-ivar">@collectives</span>.<span class="ruby-identifier">first</span>
585 181:       <span class="ruby-ivar">@ssl_cipher</span> = <span class="ruby-value str">&quot;aes-256-cbc&quot;</span>
586 182:       <span class="ruby-ivar">@direct_addressing</span> = <span class="ruby-keyword kw">true</span>
587 183:       <span class="ruby-ivar">@direct_addressing_threshold</span> = <span class="ruby-value">10</span>
588 184:       <span class="ruby-ivar">@default_discovery_method</span> = <span class="ruby-value str">&quot;mc&quot;</span>
589 185:       <span class="ruby-ivar">@default_discovery_options</span> = []
590 186:       <span class="ruby-ivar">@ttl</span> = <span class="ruby-value">60</span>
591 187:       <span class="ruby-ivar">@mode</span> = <span class="ruby-identifier">:client</span>
592 188:       <span class="ruby-ivar">@publish_timeout</span> = <span class="ruby-value">2</span>
593 189:       <span class="ruby-ivar">@threaded</span> = <span class="ruby-keyword kw">false</span>
594 190:     <span class="ruby-keyword kw">end</span>
595 </pre>
596           </div>
597         </div>
598       </div>
599
600
601     </div>
602
603
604   </div>
605
606
607 <div id="validator-badges">
608   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
609 </div>
610
611 </body>
612 </html>