Update version according to OSCI-883
[packages/precise/mcollective.git] / doc / MCollective / Application.html
1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5 <head>
6         <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
8         <title>Class: MCollective::Application</title>
9
10         <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
12         <script src="../js/jquery.js" type="text/javascript"
13                 charset="utf-8"></script>
14         <script src="../js/thickbox-compressed.js" type="text/javascript"
15                 charset="utf-8"></script>
16         <script src="../js/quicksearch.js" type="text/javascript"
17                 charset="utf-8"></script>
18         <script src="../js/darkfish.js" type="text/javascript"
19                 charset="utf-8"></script>
20
21 </head>
22 <body class="class">
23
24         <div id="metadata">
25                 <div id="file-metadata">
26                         <div id="file-list-section" class="section">
27                                 <h3 class="section-header">In Files</h3>
28                                 <div class="section-body">
29                                         <ul>
30                                         
31                                                 <li><a href="../lib/mcollective/application_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
32                                                         class="thickbox" title="lib/mcollective/application.rb">lib/mcollective/application.rb</a></li>
33                                         
34                                         </ul>
35                                 </div>
36                         </div>
37
38                         
39                 </div>
40
41                 <div id="class-metadata">
42
43                         <!-- Parent Class -->
44                         
45                         <div id="parent-class-section" class="section">
46                                 <h3 class="section-header">Parent</h3>
47                                 
48                                 <p class="link"><a href="../Object.html">Object</a></p>
49                                 
50                         </div>
51                         
52
53                         <!-- Namespace Contents -->
54                         
55
56                         <!-- Method Quickref -->
57                         
58                         <div id="method-list-section" class="section">
59                                 <h3 class="section-header">Methods</h3>
60                                 <ul class="link-list">
61                                         
62                                         <li><a href="#M000003">::[]</a></li>
63                                         
64                                         <li><a href="#M000002">::[]=</a></li>
65                                         
66                                         <li><a href="#M000001">::application_options</a></li>
67                                         
68                                         <li><a href="#M000004">::description</a></li>
69                                         
70                                         <li><a href="#M000006">::exclude_argument_sections</a></li>
71                                         
72                                         <li><a href="#M000008">::intialize_application_options</a></li>
73                                         
74                                         <li><a href="#M000007">::option</a></li>
75                                         
76                                         <li><a href="#M000005">::usage</a></li>
77                                         
78                                         <li><a href="#M000018">#application_cli_arguments</a></li>
79                                         
80                                         <li><a href="#M000016">#application_description</a></li>
81                                         
82                                         <li><a href="#M000019">#application_failure</a></li>
83                                         
84                                         <li><a href="#M000015">#application_options</a></li>
85                                         
86                                         <li><a href="#M000013">#application_parse_options</a></li>
87                                         
88                                         <li><a href="#M000017">#application_usage</a></li>
89                                         
90                                         <li><a href="#M000012">#clioptions</a></li>
91                                         
92                                         <li><a href="#M000009">#configuration</a></li>
93                                         
94                                         <li><a href="#M000025">#disconnect</a></li>
95                                         
96                                         <li><a href="#M000029">#halt</a></li>
97                                         
98                                         <li><a href="#M000027">#halt_code</a></li>
99                                         
100                                         <li><a href="#M000022">#help</a></li>
101                                         
102                                         <li><a href="#M000026">#main</a></li>
103                                         
104                                         <li><a href="#M000010">#options</a></li>
105                                         
106                                         <li><a href="#M000030">#rpcclient</a></li>
107                                         
108                                         <li><a href="#M000023">#run</a></li>
109                                         
110                                         <li><a href="#M000014">#validate_cli_options</a></li>
111                                         
112                                         <li><a href="#M000011">#validate_option</a></li>
113                                         
114                                 </ul>
115                         </div>
116                         
117
118                         <!-- Included Modules -->
119                         
120                         <div id="includes-section" class="section">
121                                 <h3 class="section-header">Included Modules</h3>
122                                 <ul class="link-list">
123                                 
124                                 
125                                         <li><a class="include" href="Validator.html">MCollective::Validator</a></li>
126                                 
127                                 
128                                 </ul>
129                         </div>
130                         
131                 </div>
132
133                 <div id="project-metadata">
134                         
135                         
136                         <div id="fileindex-section" class="section project-section">
137                                 <h3 class="section-header">Files</h3>
138                                 <ul>
139                                 
140                                         <li class="file"><a href="../COPYING.html">COPYING</a></li>
141                                 
142                                         <li class="file"><a href="../Gemfile.html">Gemfile</a></li>
143                                 
144                                         <li class="file"><a href="../README.html">README</a></li>
145                                 
146                                         <li class="file"><a href="../Rakefile.html">Rakefile</a></li>
147                                 
148                                         <li class="file"><a href="../etc/client_cfg_dist.html">client.cfg.dist</a></li>
149                                 
150                                         <li class="file"><a href="../etc/data-help_erb.html">data-help.erb</a></li>
151                                 
152                                         <li class="file"><a href="../etc/discovery-help_erb.html">discovery-help.erb</a></li>
153                                 
154                                         <li class="file"><a href="../etc/facts_yaml_dist.html">facts.yaml.dist</a></li>
155                                 
156                                         <li class="file"><a href="../etc/metadata-help_erb.html">metadata-help.erb</a></li>
157                                 
158                                         <li class="file"><a href="../etc/msg-help_erb.html">msg-help.erb</a></li>
159                                 
160                                         <li class="file"><a href="../etc/rpc-help_erb.html">rpc-help.erb</a></li>
161                                 
162                                         <li class="file"><a href="../etc/server_cfg_dist.html">server.cfg.dist</a></li>
163                                 
164                                         <li class="file"><a href="../etc/ssl/PLACEHOLDER.html">PLACEHOLDER</a></li>
165                                 
166                                         <li class="file"><a href="../etc/ssl/clients/PLACEHOLDER.html">PLACEHOLDER</a></li>
167                                 
168                                         <li class="file"><a href="../lib/mcollective/generators/templates/action_snippet_erb.html">action_snippet.erb</a></li>
169                                 
170                                         <li class="file"><a href="../lib/mcollective/generators/templates/data_input_snippet_erb.html">data_input_snippet.erb</a></li>
171                                 
172                                         <li class="file"><a href="../lib/mcollective/generators/templates/ddl_erb.html">ddl.erb</a></li>
173                                 
174                                         <li class="file"><a href="../lib/mcollective/generators/templates/plugin_erb.html">plugin.erb</a></li>
175                                 
176                                         <li class="file"><a href="../lib/mcollective/locales/en_yml.html">en.yml</a></li>
177                                 
178                                         <li class="file"><a href="../mcollective_init.html">mcollective.init</a></li>
179                                 
180                                 </ul>
181                         </div>
182                         
183
184                         <div id="classindex-section" class="section project-section">
185                                 <h3 class="section-header">Class Index
186                                         <span class="search-toggle"><img src="../images/find.png"
187                                                 height="16" width="16" alt="[+]"
188                                                 title="show/hide quicksearch" /></span></h3>
189                                 <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
190                                 <fieldset>
191                                         <legend>Quicksearch</legend>
192                                         <input type="text" name="quicksearch" value=""
193                                                 class="quicksearch-field" />
194                                 </fieldset>
195                                 </form>
196
197                                 <ul class="link-list">
198                                 
199                                         <li><a href="../MCollective.html">MCollective</a></li>
200                                 
201                                         <li><a href="../MCollective/Agent.html">MCollective::Agent</a></li>
202                                 
203                                         <li><a href="../MCollective/Agents.html">MCollective::Agents</a></li>
204                                 
205                                         <li><a href="../MCollective/Aggregate.html">MCollective::Aggregate</a></li>
206                                 
207                                         <li><a href="../MCollective/Aggregate/Base.html">MCollective::Aggregate::Base</a></li>
208                                 
209                                         <li><a href="../MCollective/Aggregate/Result.html">MCollective::Aggregate::Result</a></li>
210                                 
211                                         <li><a href="../MCollective/Aggregate/Result/Base.html">MCollective::Aggregate::Result::Base</a></li>
212                                 
213                                         <li><a href="../MCollective/Aggregate/Result/CollectionResult.html">MCollective::Aggregate::Result::CollectionResult</a></li>
214                                 
215                                         <li><a href="../MCollective/Aggregate/Result/NumericResult.html">MCollective::Aggregate::Result::NumericResult</a></li>
216                                 
217                                         <li><a href="../MCollective/Application.html">MCollective::Application</a></li>
218                                 
219                                         <li><a href="../MCollective/Applications.html">MCollective::Applications</a></li>
220                                 
221                                         <li><a href="../MCollective/Cache.html">MCollective::Cache</a></li>
222                                 
223                                         <li><a href="../MCollective/Client.html">MCollective::Client</a></li>
224                                 
225                                         <li><a href="../MCollective/CodedError.html">MCollective::CodedError</a></li>
226                                 
227                                         <li><a href="../MCollective/Config.html">MCollective::Config</a></li>
228                                 
229                                         <li><a href="../MCollective/Connector.html">MCollective::Connector</a></li>
230                                 
231                                         <li><a href="../MCollective/Connector/Base.html">MCollective::Connector::Base</a></li>
232                                 
233                                         <li><a href="../MCollective/DDL.html">MCollective::DDL</a></li>
234                                 
235                                         <li><a href="../MCollective/DDL/AgentDDL.html">MCollective::DDL::AgentDDL</a></li>
236                                 
237                                         <li><a href="../MCollective/DDL/Base.html">MCollective::DDL::Base</a></li>
238                                 
239                                         <li><a href="../MCollective/DDL/DataDDL.html">MCollective::DDL::DataDDL</a></li>
240                                 
241                                         <li><a href="../MCollective/DDL/DiscoveryDDL.html">MCollective::DDL::DiscoveryDDL</a></li>
242                                 
243                                         <li><a href="../MCollective/DDL/ValidatorDDL.html">MCollective::DDL::ValidatorDDL</a></li>
244                                 
245                                         <li><a href="../MCollective/DDLValidationError.html">MCollective::DDLValidationError</a></li>
246                                 
247                                         <li><a href="../MCollective/Data.html">MCollective::Data</a></li>
248                                 
249                                         <li><a href="../MCollective/Data/Base.html">MCollective::Data::Base</a></li>
250                                 
251                                         <li><a href="../MCollective/Data/Result.html">MCollective::Data::Result</a></li>
252                                 
253                                         <li><a href="../MCollective/Discovery.html">MCollective::Discovery</a></li>
254                                 
255                                         <li><a href="../MCollective/Facts.html">MCollective::Facts</a></li>
256                                 
257                                         <li><a href="../MCollective/Facts/Base.html">MCollective::Facts::Base</a></li>
258                                 
259                                         <li><a href="../MCollective/Generators.html">MCollective::Generators</a></li>
260                                 
261                                         <li><a href="../MCollective/Generators/AgentGenerator.html">MCollective::Generators::AgentGenerator</a></li>
262                                 
263                                         <li><a href="../MCollective/Generators/Base.html">MCollective::Generators::Base</a></li>
264                                 
265                                         <li><a href="../MCollective/Generators/DataGenerator.html">MCollective::Generators::DataGenerator</a></li>
266                                 
267                                         <li><a href="../MCollective/InvalidRPCData.html">MCollective::InvalidRPCData</a></li>
268                                 
269                                         <li><a href="../MCollective/Log.html">MCollective::Log</a></li>
270                                 
271                                         <li><a href="../MCollective/Logger.html">MCollective::Logger</a></li>
272                                 
273                                         <li><a href="../MCollective/Logger/Base.html">MCollective::Logger::Base</a></li>
274                                 
275                                         <li><a href="../MCollective/Logger/Console_logger.html">MCollective::Logger::Console_logger</a></li>
276                                 
277                                         <li><a href="../MCollective/Logger/File_logger.html">MCollective::Logger::File_logger</a></li>
278                                 
279                                         <li><a href="../MCollective/Logger/Syslog_logger.html">MCollective::Logger::Syslog_logger</a></li>
280                                 
281                                         <li><a href="../MCollective/Matcher.html">MCollective::Matcher</a></li>
282                                 
283                                         <li><a href="../MCollective/Matcher/Parser.html">MCollective::Matcher::Parser</a></li>
284                                 
285                                         <li><a href="../MCollective/Matcher/Scanner.html">MCollective::Matcher::Scanner</a></li>
286                                 
287                                         <li><a href="../MCollective/Message.html">MCollective::Message</a></li>
288                                 
289                                         <li><a href="../MCollective/MissingRPCData.html">MCollective::MissingRPCData</a></li>
290                                 
291                                         <li><a href="../MCollective/MsgDoesNotMatchRequestID.html">MCollective::MsgDoesNotMatchRequestID</a></li>
292                                 
293                                         <li><a href="../MCollective/MsgTTLExpired.html">MCollective::MsgTTLExpired</a></li>
294                                 
295                                         <li><a href="../MCollective/NotTargettedAtUs.html">MCollective::NotTargettedAtUs</a></li>
296                                 
297                                         <li><a href="../MCollective/Optionparser.html">MCollective::Optionparser</a></li>
298                                 
299                                         <li><a href="../MCollective/PluginManager.html">MCollective::PluginManager</a></li>
300                                 
301                                         <li><a href="../MCollective/PluginPackager.html">MCollective::PluginPackager</a></li>
302                                 
303                                         <li><a href="../MCollective/PluginPackager/AgentDefinition.html">MCollective::PluginPackager::AgentDefinition</a></li>
304                                 
305                                         <li><a href="../MCollective/PluginPackager/StandardDefinition.html">MCollective::PluginPackager::StandardDefinition</a></li>
306                                 
307                                         <li><a href="../MCollective/RPC.html">MCollective::RPC</a></li>
308                                 
309                                         <li><a href="../MCollective/RPC/ActionRunner.html">MCollective::RPC::ActionRunner</a></li>
310                                 
311                                         <li><a href="../MCollective/RPC/Agent.html">MCollective::RPC::Agent</a></li>
312                                 
313                                         <li><a href="../MCollective/RPC/Audit.html">MCollective::RPC::Audit</a></li>
314                                 
315                                         <li><a href="../MCollective/RPC/Client.html">MCollective::RPC::Client</a></li>
316                                 
317                                         <li><a href="../MCollective/RPC/Helpers.html">MCollective::RPC::Helpers</a></li>
318                                 
319                                         <li><a href="../MCollective/RPC/Progress.html">MCollective::RPC::Progress</a></li>
320                                 
321                                         <li><a href="../MCollective/RPC/Reply.html">MCollective::RPC::Reply</a></li>
322                                 
323                                         <li><a href="../MCollective/RPC/Request.html">MCollective::RPC::Request</a></li>
324                                 
325                                         <li><a href="../MCollective/RPC/Result.html">MCollective::RPC::Result</a></li>
326                                 
327                                         <li><a href="../MCollective/RPC/Stats.html">MCollective::RPC::Stats</a></li>
328                                 
329                                         <li><a href="../MCollective/RPCAborted.html">MCollective::RPCAborted</a></li>
330                                 
331                                         <li><a href="../MCollective/RPCError.html">MCollective::RPCError</a></li>
332                                 
333                                         <li><a href="../MCollective/Registration.html">MCollective::Registration</a></li>
334                                 
335                                         <li><a href="../MCollective/Registration/Base.html">MCollective::Registration::Base</a></li>
336                                 
337                                         <li><a href="../MCollective/Runner.html">MCollective::Runner</a></li>
338                                 
339                                         <li><a href="../MCollective/RunnerStats.html">MCollective::RunnerStats</a></li>
340                                 
341                                         <li><a href="../MCollective/SSL.html">MCollective::SSL</a></li>
342                                 
343                                         <li><a href="../MCollective/Security.html">MCollective::Security</a></li>
344                                 
345                                         <li><a href="../MCollective/Security/Base.html">MCollective::Security::Base</a></li>
346                                 
347                                         <li><a href="../MCollective/SecurityValidationFailed.html">MCollective::SecurityValidationFailed</a></li>
348                                 
349                                         <li><a href="../MCollective/Shell.html">MCollective::Shell</a></li>
350                                 
351                                         <li><a href="../MCollective/Translatable.html">MCollective::Translatable</a></li>
352                                 
353                                         <li><a href="../MCollective/UnixDaemon.html">MCollective::UnixDaemon</a></li>
354                                 
355                                         <li><a href="../MCollective/UnknownRPCAction.html">MCollective::UnknownRPCAction</a></li>
356                                 
357                                         <li><a href="../MCollective/UnknownRPCError.html">MCollective::UnknownRPCError</a></li>
358                                 
359                                         <li><a href="../MCollective/Util.html">MCollective::Util</a></li>
360                                 
361                                         <li><a href="../MCollective/Validator.html">MCollective::Validator</a></li>
362                                 
363                                         <li><a href="../MCollective/ValidatorError.html">MCollective::ValidatorError</a></li>
364                                 
365                                         <li><a href="../MCollective/WindowsDaemon.html">MCollective::WindowsDaemon</a></li>
366                                 
367                                         <li><a href="../Array.html">Array</a></li>
368                                 
369                                         <li><a href="../Dir.html">Dir</a></li>
370                                 
371                                         <li><a href="../Object.html">Object</a></li>
372                                 
373                                         <li><a href="../String.html">String</a></li>
374                                 
375                                         <li><a href="../Symbol.html">Symbol</a></li>
376                                 
377                                 </ul>
378                                 <div id="no-class-search-results" style="display: none;">No matching classes.</div>
379                         </div>
380
381                         
382                 </div>
383         </div>
384
385         <div id="documentation">
386                 <h1 class="class">MCollective::Application</h1>
387
388                 <div id="description">
389                         
390                 </div>
391
392                 <!-- Constants -->
393                 
394
395                 <!-- Attributes -->
396                 
397
398                 <!-- Methods -->
399                 
400                 <div id="public-class-method-details" class="method-section section">
401                         <h3 class="section-header">Public Class Methods</h3>
402
403                 
404                         <div id="--method" class="method-detail ">
405                                 <a name="M000003"></a>
406
407                                 <div class="method-heading">
408                                 
409                                         <span class="method-name">[]</span><span
410                                                 class="method-args">(option)</span>
411                                         <span class="method-click-advice">click to toggle source</span>
412                                 
413                                 </div>
414
415                                 <div class="method-description">
416                                         
417                                         <p>
418 retrieves a specific option
419 </p>
420                                         
421
422                                         
423                                         <div class="method-source-code"
424                                                 id="--source">
425 <pre>
426     <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 20</span>
427 20:       <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">option</span>)
428 21:         <span class="ruby-identifier">intialize_application_options</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@application_options</span>
429 22:         <span class="ruby-ivar">@application_options</span>[<span class="ruby-identifier">option</span>]
430 23:       <span class="ruby-keyword kw">end</span></pre>
431                                         </div>
432                                         
433                                 </div>
434
435                                 
436                         </div>
437
438                 
439                         <div id="--method" class="method-detail ">
440                                 <a name="M000002"></a>
441
442                                 <div class="method-heading">
443                                 
444                                         <span class="method-name">[]=</span><span
445                                                 class="method-args">(option, value)</span>
446                                         <span class="method-click-advice">click to toggle source</span>
447                                 
448                                 </div>
449
450                                 <div class="method-description">
451                                         
452                                         <p>
453 set an option in the options hash
454 </p>
455                                         
456
457                                         
458                                         <div class="method-source-code"
459                                                 id="--source">
460 <pre>
461     <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 14</span>
462 14:       <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">option</span>, <span class="ruby-identifier">value</span>)
463 15:         <span class="ruby-identifier">intialize_application_options</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@application_options</span>
464 16:         <span class="ruby-ivar">@application_options</span>[<span class="ruby-identifier">option</span>] = <span class="ruby-identifier">value</span>
465 17:       <span class="ruby-keyword kw">end</span></pre>
466                                         </div>
467                                         
468                                 </div>
469
470                                 
471                         </div>
472
473                 
474                         <div id="application-options-method" class="method-detail ">
475                                 <a name="M000001"></a>
476
477                                 <div class="method-heading">
478                                 
479                                         <span class="method-name">application_options</span><span
480                                                 class="method-args">()</span>
481                                         <span class="method-click-advice">click to toggle source</span>
482                                 
483                                 </div>
484
485                                 <div class="method-description">
486                                         
487                                         <p>
488 Intialize a blank set of options if its the first time used else returns
489 active options
490 </p>
491                                         
492
493                                         
494                                         <div class="method-source-code"
495                                                 id="application-options-source">
496 <pre>
497     <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 8</span>
498  8:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">application_options</span>
499  9:         <span class="ruby-identifier">intialize_application_options</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@application_options</span>
500 10:         <span class="ruby-ivar">@application_options</span>
501 11:       <span class="ruby-keyword kw">end</span></pre>
502                                         </div>
503                                         
504                                 </div>
505
506                                 
507                         </div>
508
509                 
510                         <div id="description-method" class="method-detail ">
511                                 <a name="M000004"></a>
512
513                                 <div class="method-heading">
514                                 
515                                         <span class="method-name">description</span><span
516                                                 class="method-args">(descr)</span>
517                                         <span class="method-click-advice">click to toggle source</span>
518                                 
519                                 </div>
520
521                                 <div class="method-description">
522                                         
523                                         <p>
524 Sets the application description, there can be only one description per
525 application so multiple calls will just change the description
526 </p>
527                                         
528
529                                         
530                                         <div class="method-source-code"
531                                                 id="description-source">
532 <pre>
533     <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 28</span>
534 28:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">description</span>(<span class="ruby-identifier">descr</span>)
535 29:         <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">:description</span>] = <span class="ruby-identifier">descr</span>
536 30:       <span class="ruby-keyword kw">end</span></pre>
537                                         </div>
538                                         
539                                 </div>
540
541                                 
542                         </div>
543
544                 
545                         <div id="exclude-argument-sections-method" class="method-detail ">
546                                 <a name="M000006"></a>
547
548                                 <div class="method-heading">
549                                 
550                                         <span class="method-name">exclude_argument_sections</span><span
551                                                 class="method-args">(*sections)</span>
552                                         <span class="method-click-advice">click to toggle source</span>
553                                 
554                                 </div>
555
556                                 <div class="method-description">
557                                         
558                                         <p class="missing-docs">(Not documented)</p>
559                                         
560
561                                         
562                                         <div class="method-source-code"
563                                                 id="exclude-argument-sections-source">
564 <pre>
565     <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 38</span>
566 38:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">exclude_argument_sections</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">sections</span>)
567 39:         <span class="ruby-identifier">sections</span> = [<span class="ruby-identifier">sections</span>].<span class="ruby-identifier">flatten</span>
568 40: 
569 41:         <span class="ruby-identifier">sections</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span>
570 42:           <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown CLI argument section #{s}&quot;</span> <span class="ruby-keyword kw">unless</span> [<span class="ruby-value str">&quot;rpc&quot;</span>, <span class="ruby-value str">&quot;common&quot;</span>, <span class="ruby-value str">&quot;filter&quot;</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">s</span>)
571 43:         <span class="ruby-keyword kw">end</span>
572 44: 
573 45:         <span class="ruby-identifier">intialize_application_options</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@application_options</span>
574 46:         <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">:exclude_arg_sections</span>] = <span class="ruby-identifier">sections</span>
575 47:       <span class="ruby-keyword kw">end</span></pre>
576                                         </div>
577                                         
578                                 </div>
579
580                                 
581                         </div>
582
583                 
584                         <div id="intialize-application-options-method" class="method-detail ">
585                                 <a name="M000008"></a>
586
587                                 <div class="method-heading">
588                                 
589                                         <span class="method-name">intialize_application_options</span><span
590                                                 class="method-args">()</span>
591                                         <span class="method-click-advice">click to toggle source</span>
592                                 
593                                 </div>
594
595                                 <div class="method-description">
596                                         
597                                         <p>
598 Creates an empty set of options
599 </p>
600                                         
601
602                                         
603                                         <div class="method-source-code"
604                                                 id="intialize-application-options-source">
605 <pre>
606     <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 79</span>
607 79:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">intialize_application_options</span>
608 80:         <span class="ruby-ivar">@application_options</span> = {<span class="ruby-identifier">:description</span>          =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,
609 81:                                 <span class="ruby-identifier">:usage</span>                =<span class="ruby-operator">&gt;</span> [],
610 82:                                 <span class="ruby-identifier">:cli_arguments</span>        =<span class="ruby-operator">&gt;</span> [],
611 83:                                 <span class="ruby-identifier">:exclude_arg_sections</span> =<span class="ruby-operator">&gt;</span> []}
612 84:       <span class="ruby-keyword kw">end</span></pre>
613                                         </div>
614                                         
615                                 </div>
616
617                                 
618                         </div>
619
620                 
621                         <div id="option-method" class="method-detail ">
622                                 <a name="M000007"></a>
623
624                                 <div class="method-heading">
625                                 
626                                         <span class="method-name">option</span><span
627                                                 class="method-args">(name, arguments)</span>
628                                         <span class="method-click-advice">click to toggle source</span>
629                                 
630                                 </div>
631
632                                 <div class="method-description">
633                                         
634                                         <p>
635 Wrapper to create command line options
636 </p>
637 <pre>
638  - name: varaible name that will be used to access the option value
639  - description: textual info shown in --help
640  - arguments: a list of possible arguments that can be used
641    to activate this option
642  - type: a data type that ObjectParser understand of :bool or :array
643  - required: true or false if this option has to be supplied
644  - validate: a proc that will be called with the value used to validate
645    the supplied value
646
647   option :foo,
648          :description =&gt; &quot;The foo option&quot;
649          :arguments   =&gt; [&quot;--foo ARG&quot;]
650 </pre>
651 <p>
652 after this the value supplied will be in configuration[:foo]
653 </p>
654                                         
655
656                                         
657                                         <div class="method-source-code"
658                                                 id="option-source">
659 <pre>
660     <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 65</span>
661 65:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">option</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">arguments</span>)
662 66:         <span class="ruby-identifier">opt</span> = {<span class="ruby-identifier">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>,
663 67:                <span class="ruby-identifier">:description</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,
664 68:                <span class="ruby-identifier">:arguments</span> =<span class="ruby-operator">&gt;</span> [],
665 69:                <span class="ruby-identifier">:type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">String</span>,
666 70:                <span class="ruby-identifier">:required</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>,
667 71:                <span class="ruby-identifier">:validate</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span> { <span class="ruby-keyword kw">true</span> }}
668 72: 
669 73:         <span class="ruby-identifier">arguments</span>.<span class="ruby-identifier">each_pair</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">opt</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>}
670 74: 
671 75:         <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">:cli_arguments</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">opt</span>
672 76:       <span class="ruby-keyword kw">end</span></pre>
673                                         </div>
674                                         
675                                 </div>
676
677                                 
678                         </div>
679
680                 
681                         <div id="usage-method" class="method-detail ">
682                                 <a name="M000005"></a>
683
684                                 <div class="method-heading">
685                                 
686                                         <span class="method-name">usage</span><span
687                                                 class="method-args">(usage)</span>
688                                         <span class="method-click-advice">click to toggle source</span>
689                                 
690                                 </div>
691
692                                 <div class="method-description">
693                                         
694                                         <p>
695 Supplies usage information, calling multiple times will create multiple
696 usage lines in &#8212;help output
697 </p>
698                                         
699
700                                         
701                                         <div class="method-source-code"
702                                                 id="usage-source">
703 <pre>
704     <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 34</span>
705 34:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">usage</span>(<span class="ruby-identifier">usage</span>)
706 35:         <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">:usage</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">usage</span>
707 36:       <span class="ruby-keyword kw">end</span></pre>
708                                         </div>
709                                         
710                                 </div>
711
712                                 
713                         </div>
714
715                 
716                 </div>
717         
718                 <div id="public-instance-method-details" class="method-section section">
719                         <h3 class="section-header">Public Instance Methods</h3>
720
721                 
722                         <div id="application-cli-arguments-method" class="method-detail ">
723                                 <a name="M000018"></a>
724
725                                 <div class="method-heading">
726                                 
727                                         <span class="method-name">application_cli_arguments</span><span
728                                                 class="method-args">()</span>
729                                         <span class="method-click-advice">click to toggle source</span>
730                                 
731                                 </div>
732
733                                 <div class="method-description">
734                                         
735                                         <p>
736 Returns an array of all the arguments built using calls to optin
737 </p>
738                                         
739
740                                         
741                                         <div class="method-source-code"
742                                                 id="application-cli-arguments-source">
743 <pre>
744      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 247</span>
745 247:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">application_cli_arguments</span>
746 248:       <span class="ruby-identifier">application_options</span>[<span class="ruby-identifier">:cli_arguments</span>]
747 249:     <span class="ruby-keyword kw">end</span></pre>
748                                         </div>
749                                         
750                                 </div>
751
752                                 
753                         </div>
754
755                 
756                         <div id="application-description-method" class="method-detail ">
757                                 <a name="M000016"></a>
758
759                                 <div class="method-heading">
760                                 
761                                         <span class="method-name">application_description</span><span
762                                                 class="method-args">()</span>
763                                         <span class="method-click-advice">click to toggle source</span>
764                                 
765                                 </div>
766
767                                 <div class="method-description">
768                                         
769                                         <p>
770 Retrieve the current application description
771 </p>
772                                         
773
774                                         
775                                         <div class="method-source-code"
776                                                 id="application-description-source">
777 <pre>
778      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 234</span>
779 234:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">application_description</span>
780 235:       <span class="ruby-identifier">application_options</span>[<span class="ruby-identifier">:description</span>]
781 236:     <span class="ruby-keyword kw">end</span></pre>
782                                         </div>
783                                         
784                                 </div>
785
786                                 
787                         </div>
788
789                 
790                         <div id="application-failure-method" class="method-detail ">
791                                 <a name="M000019"></a>
792
793                                 <div class="method-heading">
794                                 
795                                         <span class="method-name">application_failure</span><span
796                                                 class="method-args">(e, err_dest=STDERR)</span>
797                                         <span class="method-click-advice">click to toggle source</span>
798                                 
799                                 </div>
800
801                                 <div class="method-description">
802                                         
803                                         <p>
804 Handles failure, if we&#8217;re far enough in the initialization phase it
805 will log backtraces if its in verbose mode only
806 </p>
807                                         
808
809                                         
810                                         <div class="method-source-code"
811                                                 id="application-failure-source">
812 <pre>
813      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 253</span>
814 253:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">application_failure</span>(<span class="ruby-identifier">e</span>, <span class="ruby-identifier">err_dest</span>=<span class="ruby-constant">STDERR</span>)
815 254:       <span class="ruby-comment cmt"># peole can use exit() anywhere and not get nasty backtraces as a result</span>
816 255:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">SystemExit</span>)
817 256:         <span class="ruby-identifier">disconnect</span>
818 257:         <span class="ruby-identifier">raise</span>(<span class="ruby-identifier">e</span>)
819 258:       <span class="ruby-keyword kw">end</span>
820 259: 
821 260:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">CodedError</span>)
822 261:         <span class="ruby-identifier">err_dest</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\nThe %s application failed to run: %s: %s\n&quot;</span> <span class="ruby-operator">%</span> [ <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:bold</span>, <span class="ruby-identifier">$0</span>), <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:bold</span>, <span class="ruby-identifier">e</span>.<span class="ruby-identifier">code</span>), <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:red</span>, <span class="ruby-identifier">e</span>.<span class="ruby-identifier">to_s</span>)]
823 262: 
824 263:         <span class="ruby-identifier">err_dest</span>.<span class="ruby-identifier">puts</span>
825 264:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:verbose</span>]
826 265:           <span class="ruby-identifier">err_dest</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Use the 'mco doc %s' command for details about this error&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">code</span>
827 266:         <span class="ruby-keyword kw">else</span>
828 267:           <span class="ruby-identifier">err_dest</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Use the 'mco doc %s' command for details about this error, use -v for full error backtrace details&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">code</span>
829 268:         <span class="ruby-keyword kw">end</span>
830 269:       <span class="ruby-keyword kw">else</span>
831 270:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:verbose</span>]
832 271:           <span class="ruby-identifier">err_dest</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\nThe %s application failed to run: %s\n&quot;</span> <span class="ruby-operator">%</span> [ <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:bold</span>, <span class="ruby-identifier">$0</span>), <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:red</span>, <span class="ruby-identifier">e</span>.<span class="ruby-identifier">to_s</span>)]
833 272:         <span class="ruby-keyword kw">else</span>
834 273:           <span class="ruby-identifier">err_dest</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\nThe %s application failed to run, use -v for full error backtrace details: %s\n&quot;</span> <span class="ruby-operator">%</span> [ <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:bold</span>, <span class="ruby-identifier">$0</span>), <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:red</span>, <span class="ruby-identifier">e</span>.<span class="ruby-identifier">to_s</span>)]
835 274:         <span class="ruby-keyword kw">end</span>
836 275:       <span class="ruby-keyword kw">end</span>
837 276: 
838 277:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:verbose</span>]
839 278:         <span class="ruby-identifier">e</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">first</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:red</span>, <span class="ruby-value str">&quot;  &lt;----&quot;</span>)
840 279:         <span class="ruby-identifier">err_dest</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\n%s %s&quot;</span> <span class="ruby-operator">%</span> [ <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:red</span>, <span class="ruby-identifier">e</span>.<span class="ruby-identifier">to_s</span>), <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:bold</span>, <span class="ruby-node">&quot;(#{e.class.to_s})&quot;</span>)]
841 280:         <span class="ruby-identifier">e</span>.<span class="ruby-identifier">backtrace</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span> <span class="ruby-identifier">err_dest</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;\tfrom #{l}&quot;</span>}
842 281:       <span class="ruby-keyword kw">end</span>
843 282: 
844 283:       <span class="ruby-identifier">disconnect</span>
845 284: 
846 285:       <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
847 286:     <span class="ruby-keyword kw">end</span></pre>
848                                         </div>
849                                         
850                                 </div>
851
852                                 
853                         </div>
854
855                 
856                         <div id="application-options-method" class="method-detail ">
857                                 <a name="M000015"></a>
858
859                                 <div class="method-heading">
860                                 
861                                         <span class="method-name">application_options</span><span
862                                                 class="method-args">()</span>
863                                         <span class="method-click-advice">click to toggle source</span>
864                                 
865                                 </div>
866
867                                 <div class="method-description">
868                                         
869                                         <p>
870 Retrieves the full hash of application options
871 </p>
872                                         
873
874                                         
875                                         <div class="method-source-code"
876                                                 id="application-options-source">
877 <pre>
878      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 229</span>
879 229:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">application_options</span>
880 230:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">application_options</span>
881 231:     <span class="ruby-keyword kw">end</span></pre>
882                                         </div>
883                                         
884                                 </div>
885
886                                 
887                         </div>
888
889                 
890                         <div id="application-parse-options-method" class="method-detail ">
891                                 <a name="M000013"></a>
892
893                                 <div class="method-heading">
894                                 
895                                         <span class="method-name">application_parse_options</span><span
896                                                 class="method-args">(help=false)</span>
897                                         <span class="method-click-advice">click to toggle source</span>
898                                 
899                                 </div>
900
901                                 <div class="method-description">
902                                         
903                                         <p>
904 Builds an ObjectParser config, parse the CLI options and validates based on
905 the option config
906 </p>
907                                         
908
909                                         
910                                         <div class="method-source-code"
911                                                 id="application-parse-options-source">
912 <pre>
913      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 135</span>
914 135:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">application_parse_options</span>(<span class="ruby-identifier">help</span>=<span class="ruby-keyword kw">false</span>)
915 136:       <span class="ruby-ivar">@options</span> <span class="ruby-operator">||=</span> {<span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>}
916 137: 
917 138:       <span class="ruby-ivar">@options</span> = <span class="ruby-identifier">clioptions</span>(<span class="ruby-identifier">help</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">parser</span>, <span class="ruby-identifier">options</span><span class="ruby-operator">|</span>
918 139:         <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">define_head</span> <span class="ruby-identifier">application_description</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">application_description</span>
919 140:         <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-value str">&quot;&quot;</span>
920 141: 
921 142:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">application_usage</span>
922 143:           <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">&quot;&quot;</span>
923 144: 
924 145:           <span class="ruby-identifier">application_usage</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">u</span><span class="ruby-operator">|</span>
925 146:             <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">separator</span> <span class="ruby-node">&quot;Usage: #{u}&quot;</span>
926 147:           <span class="ruby-keyword kw">end</span>
927 148: 
928 149:           <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">&quot;&quot;</span>
929 150:         <span class="ruby-keyword kw">end</span>
930 151: 
931 152:         <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">&quot;Application Options&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">application_cli_arguments</span>.<span class="ruby-identifier">empty?</span>
932 153: 
933 154:         <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">define_tail</span> <span class="ruby-value str">&quot;&quot;</span>
934 155:         <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">define_tail</span> <span class="ruby-node">&quot;The Marionette Collective #{MCollective.version}&quot;</span>
935 156: 
936 157: 
937 158:         <span class="ruby-identifier">application_cli_arguments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">carg</span><span class="ruby-operator">|</span>
938 159:           <span class="ruby-identifier">opts_array</span> = []
939 160: 
940 161:           <span class="ruby-identifier">opts_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">:on</span>
941 162: 
942 163:           <span class="ruby-comment cmt"># if a default is set from the application set it up front</span>
943 164:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">carg</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:default</span>)
944 165:             <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:name</span>]] = <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:default</span>]
945 166:           <span class="ruby-keyword kw">end</span>
946 167: 
947 168:           <span class="ruby-comment cmt"># :arguments are multiple possible ones</span>
948 169:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:arguments</span>].<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
949 170:             <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:arguments</span>].<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">opts_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">a</span>}
950 171:           <span class="ruby-keyword kw">else</span>
951 172:             <span class="ruby-identifier">opts_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:arguments</span>]
952 173:           <span class="ruby-keyword kw">end</span>
953 174: 
954 175:           <span class="ruby-comment cmt"># type was given and its not one of our special types, just pass it onto optparse</span>
955 176:           <span class="ruby-identifier">opts_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span>[<span class="ruby-identifier">:boolean</span>, <span class="ruby-identifier">:bool</span>, <span class="ruby-identifier">:array</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:type</span>])
956 177: 
957 178:           <span class="ruby-identifier">opts_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:description</span>]
958 179: 
959 180:           <span class="ruby-comment cmt"># Handle our special types else just rely on the optparser to handle the types</span>
960 181:           <span class="ruby-keyword kw">if</span> [<span class="ruby-identifier">:bool</span>, <span class="ruby-identifier">:boolean</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:type</span>])
961 182:             <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">send</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">opts_array</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
962 183:               <span class="ruby-identifier">validate_option</span>(<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:validate</span>], <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:name</span>], <span class="ruby-identifier">v</span>)
963 184: 
964 185:               <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:name</span>]] = <span class="ruby-identifier">v</span>
965 186:             <span class="ruby-keyword kw">end</span>
966 187: 
967 188:           <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">:array</span>
968 189:             <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">send</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">opts_array</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
969 190:               <span class="ruby-identifier">validate_option</span>(<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:validate</span>], <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:name</span>], <span class="ruby-identifier">v</span>)
970 191: 
971 192:               <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:name</span>]] = [] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">configuration</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:name</span>])
972 193:               <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:name</span>]] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">v</span>
973 194:             <span class="ruby-keyword kw">end</span>
974 195: 
975 196:           <span class="ruby-keyword kw">else</span>
976 197:             <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">send</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">opts_array</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
977 198:               <span class="ruby-identifier">validate_option</span>(<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:validate</span>], <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:name</span>], <span class="ruby-identifier">v</span>)
978 199: 
979 200:               <span class="ruby-identifier">configuration</span>[<span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:name</span>]] = <span class="ruby-identifier">v</span>
980 201:             <span class="ruby-keyword kw">end</span>
981 202:           <span class="ruby-keyword kw">end</span>
982 203:         <span class="ruby-keyword kw">end</span>
983 204:       <span class="ruby-keyword kw">end</span>
984 205:     <span class="ruby-keyword kw">end</span></pre>
985                                         </div>
986                                         
987                                 </div>
988
989                                 
990                         </div>
991
992                 
993                         <div id="application-usage-method" class="method-detail ">
994                                 <a name="M000017"></a>
995
996                                 <div class="method-heading">
997                                 
998                                         <span class="method-name">application_usage</span><span
999                                                 class="method-args">()</span>
1000                                         <span class="method-click-advice">click to toggle source</span>
1001                                 
1002                                 </div>
1003
1004                                 <div class="method-description">
1005                                         
1006                                         <p>
1007 Return the current usage text false if nothing is set
1008 </p>
1009                                         
1010
1011                                         
1012                                         <div class="method-source-code"
1013                                                 id="application-usage-source">
1014 <pre>
1015      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 239</span>
1016 239:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">application_usage</span>
1017 240:       <span class="ruby-identifier">usage</span> = <span class="ruby-identifier">application_options</span>[<span class="ruby-identifier">:usage</span>]
1018 241: 
1019 242:       <span class="ruby-identifier">usage</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">false</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">usage</span>
1020 243:     <span class="ruby-keyword kw">end</span></pre>
1021                                         </div>
1022                                         
1023                                 </div>
1024
1025                                 
1026                         </div>
1027
1028                 
1029                         <div id="clioptions-method" class="method-detail ">
1030                                 <a name="M000012"></a>
1031
1032                                 <div class="method-heading">
1033                                 
1034                                         <span class="method-name">clioptions</span><span
1035                                                 class="method-args">(help)</span>
1036                                         <span class="method-click-advice">click to toggle source</span>
1037                                 
1038                                 </div>
1039
1040                                 <div class="method-description">
1041                                         
1042                                         <p>
1043 Creates a standard options hash, pass in a block to add extra headings etc
1044 see <a href="Optionparser.html">Optionparser</a>
1045 </p>
1046                                         
1047
1048                                         
1049                                         <div class="method-source-code"
1050                                                 id="clioptions-source">
1051 <pre>
1052      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 111</span>
1053 111:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clioptions</span>(<span class="ruby-identifier">help</span>)
1054 112:       <span class="ruby-identifier">oparser</span> = <span class="ruby-constant">Optionparser</span>.<span class="ruby-identifier">new</span>({<span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">:progress_bar</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>}, <span class="ruby-value str">&quot;filter&quot;</span>, <span class="ruby-identifier">application_options</span>[<span class="ruby-identifier">:exclude_arg_sections</span>])
1055 113: 
1056 114:       <span class="ruby-identifier">options</span> = <span class="ruby-identifier">oparser</span>.<span class="ruby-identifier">parse</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">parser</span>, <span class="ruby-identifier">options</span><span class="ruby-operator">|</span>
1057 115:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
1058 116:           <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">parser</span>, <span class="ruby-identifier">options</span>)
1059 117:         <span class="ruby-keyword kw">end</span>
1060 118: 
1061 119:         <span class="ruby-constant">RPC</span><span class="ruby-operator">::</span><span class="ruby-constant">Helpers</span>.<span class="ruby-identifier">add_simplerpc_options</span>(<span class="ruby-identifier">parser</span>, <span class="ruby-identifier">options</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">application_options</span>[<span class="ruby-identifier">:exclude_arg_sections</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-value str">&quot;rpc&quot;</span>)
1062 120:       <span class="ruby-keyword kw">end</span>
1063 121: 
1064 122:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">oparser</span>.<span class="ruby-identifier">parser</span>.<span class="ruby-identifier">help</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">help</span>
1065 123: 
1066 124:       <span class="ruby-identifier">validate_cli_options</span>
1067 125: 
1068 126:       <span class="ruby-identifier">post_option_parser</span>(<span class="ruby-identifier">configuration</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:post_option_parser</span>)
1069 127: 
1070 128:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">options</span>
1071 129:     <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
1072 130:       <span class="ruby-identifier">application_failure</span>(<span class="ruby-identifier">e</span>)
1073 131:     <span class="ruby-keyword kw">end</span></pre>
1074                                         </div>
1075                                         
1076                                 </div>
1077
1078                                 
1079                         </div>
1080
1081                 
1082                         <div id="configuration-method" class="method-detail ">
1083                                 <a name="M000009"></a>
1084
1085                                 <div class="method-heading">
1086                                 
1087                                         <span class="method-name">configuration</span><span
1088                                                 class="method-args">()</span>
1089                                         <span class="method-click-advice">click to toggle source</span>
1090                                 
1091                                 </div>
1092
1093                                 <div class="method-description">
1094                                         
1095                                         <p>
1096 The application configuration built from CLI arguments
1097 </p>
1098                                         
1099
1100                                         
1101                                         <div class="method-source-code"
1102                                                 id="configuration-source">
1103 <pre>
1104     <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 88</span>
1105 88:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">configuration</span>
1106 89:       <span class="ruby-ivar">@application_configuration</span> <span class="ruby-operator">||=</span> {}
1107 90:       <span class="ruby-ivar">@application_configuration</span>
1108 91:     <span class="ruby-keyword kw">end</span></pre>
1109                                         </div>
1110                                         
1111                                 </div>
1112
1113                                 
1114                         </div>
1115
1116                 
1117                         <div id="disconnect-method" class="method-detail ">
1118                                 <a name="M000025"></a>
1119
1120                                 <div class="method-heading">
1121                                 
1122                                         <span class="method-name">disconnect</span><span
1123                                                 class="method-args">()</span>
1124                                         <span class="method-click-advice">click to toggle source</span>
1125                                 
1126                                 </div>
1127
1128                                 <div class="method-description">
1129                                         
1130                                         <p class="missing-docs">(Not documented)</p>
1131                                         
1132
1133                                         
1134                                         <div class="method-source-code"
1135                                                 id="disconnect-source">
1136 <pre>
1137      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 310</span>
1138 310:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">disconnect</span>
1139 311:       <span class="ruby-constant">MCollective</span><span class="ruby-operator">::</span><span class="ruby-constant">PluginManager</span>[<span class="ruby-value str">&quot;connector_plugin&quot;</span>].<span class="ruby-identifier">disconnect</span>
1140 312:     <span class="ruby-keyword kw">rescue</span>
1141 313:     <span class="ruby-keyword kw">end</span></pre>
1142                                         </div>
1143                                         
1144                                 </div>
1145
1146                                 
1147                         </div>
1148
1149                 
1150                         <div id="halt-method" class="method-detail ">
1151                                 <a name="M000029"></a>
1152
1153                                 <div class="method-heading">
1154                                 
1155                                         <span class="method-name">halt</span><span
1156                                                 class="method-args">(stats)</span>
1157                                         <span class="method-click-advice">click to toggle source</span>
1158                                 
1159                                 </div>
1160
1161                                 <div class="method-description">
1162                                         
1163                                         <p>
1164 A helper that creates a consistent exit code for applications by looking at
1165 an instance of <a href="RPC/Stats.html">MCollective::RPC::Stats</a>
1166 </p>
1167 <p>
1168 Exit with 0 if nodes were discovered and all passed Exit with 0 if no
1169 discovery were done and > 0 responses were received, all ok Exit with 1 if
1170 no nodes were discovered Exit with 2 if nodes were discovered but some <a
1171 href="RPC.html">RPC</a> requests failed Exit with 3 if nodes were
1172 discovered, but no responses received Exit with 4 if no discovery were done
1173 and no responses were received
1174 </p>
1175                                         
1176
1177                                         
1178                                         <div class="method-source-code"
1179                                                 id="halt-source">
1180 <pre>
1181      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 345</span>
1182 345:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">halt</span>(<span class="ruby-identifier">stats</span>)
1183 346:       <span class="ruby-identifier">exit</span>(<span class="ruby-identifier">halt_code</span>(<span class="ruby-identifier">stats</span>))
1184 347:     <span class="ruby-keyword kw">end</span></pre>
1185                                         </div>
1186                                         
1187                                 </div>
1188
1189                                 
1190                         </div>
1191
1192                 
1193                         <div id="halt-code-method" class="method-detail ">
1194                                 <a name="M000027"></a>
1195
1196                                 <div class="method-heading">
1197                                 
1198                                         <span class="method-name">halt_code</span><span
1199                                                 class="method-args">(stats)</span>
1200                                         <span class="method-click-advice">click to toggle source</span>
1201                                 
1202                                 </div>
1203
1204                                 <div class="method-description">
1205                                         
1206                                         <p class="missing-docs">(Not documented)</p>
1207                                         
1208
1209                                         
1210                                         <div class="method-source-code"
1211                                                 id="halt-code-source">
1212 <pre>
1213      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 322</span>
1214 322:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">halt_code</span>(<span class="ruby-identifier">stats</span>)
1215 323:       <span class="ruby-identifier">request_stats</span> = {<span class="ruby-identifier">:discoverytime</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>,
1216 324:                        <span class="ruby-identifier">:discovered</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>,
1217 325:                        <span class="ruby-identifier">:okcount</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>,
1218 326:                        <span class="ruby-identifier">:failcount</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">stats</span>.<span class="ruby-identifier">to_hash</span>)
1219 327: 
1220 328:       <span class="ruby-keyword kw">return</span> <span class="ruby-value">4</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:discoverytime</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:responses</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1221 329:       <span class="ruby-keyword kw">return</span> <span class="ruby-value">3</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:discovered</span>] <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:responses</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1222 330:       <span class="ruby-keyword kw">return</span> <span class="ruby-value">2</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:discovered</span>] <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:failcount</span>] <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
1223 331:       <span class="ruby-keyword kw">return</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:discovered</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1224 332:       <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:discoverytime</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:discovered</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:okcount</span>]
1225 333:       <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:discovered</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">request_stats</span>[<span class="ruby-identifier">:okcount</span>]
1226 334:     <span class="ruby-keyword kw">end</span></pre>
1227                                         </div>
1228                                         
1229                                 </div>
1230
1231                                 
1232                         </div>
1233
1234                 
1235                         <div id="help-method" class="method-detail ">
1236                                 <a name="M000022"></a>
1237
1238                                 <div class="method-heading">
1239                                 
1240                                         <span class="method-name">help</span><span
1241                                                 class="method-args">()</span>
1242                                         <span class="method-click-advice">click to toggle source</span>
1243                                 
1244                                 </div>
1245
1246                                 <div class="method-description">
1247                                         
1248                                         <p class="missing-docs">(Not documented)</p>
1249                                         
1250
1251                                         
1252                                         <div class="method-source-code"
1253                                                 id="help-source">
1254 <pre>
1255      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 288</span>
1256 288:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">help</span>
1257 289:       <span class="ruby-identifier">application_parse_options</span>(<span class="ruby-keyword kw">true</span>)
1258 290:     <span class="ruby-keyword kw">end</span></pre>
1259                                         </div>
1260                                         
1261                                 </div>
1262
1263                                 
1264                         </div>
1265
1266                 
1267                         <div id="main-method" class="method-detail ">
1268                                 <a name="M000026"></a>
1269
1270                                 <div class="method-heading">
1271                                 
1272                                         <span class="method-name">main</span><span
1273                                                 class="method-args">()</span>
1274                                         <span class="method-click-advice">click to toggle source</span>
1275                                 
1276                                 </div>
1277
1278                                 <div class="method-description">
1279                                         
1280                                         <p>
1281 Fake abstract class that logs if the user tries to use an application
1282 without supplying a main override method.
1283 </p>
1284                                         
1285
1286                                         
1287                                         <div class="method-source-code"
1288                                                 id="main-source">
1289 <pre>
1290      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 317</span>
1291 317:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">main</span>
1292 318:       <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;Applications need to supply a 'main' method&quot;</span>
1293 319:       <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
1294 320:     <span class="ruby-keyword kw">end</span></pre>
1295                                         </div>
1296                                         
1297                                 </div>
1298
1299                                 
1300                         </div>
1301
1302                 
1303                         <div id="options-method" class="method-detail ">
1304                                 <a name="M000010"></a>
1305
1306                                 <div class="method-heading">
1307                                 
1308                                         <span class="method-name">options</span><span
1309                                                 class="method-args">()</span>
1310                                         <span class="method-click-advice">click to toggle source</span>
1311                                 
1312                                 </div>
1313
1314                                 <div class="method-description">
1315                                         
1316                                         <p>
1317 The active options hash used for MC::Client and other configuration
1318 </p>
1319                                         
1320
1321                                         
1322                                         <div class="method-source-code"
1323                                                 id="options-source">
1324 <pre>
1325     <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 94</span>
1326 94:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options</span>
1327 95:       <span class="ruby-ivar">@options</span>
1328 96:     <span class="ruby-keyword kw">end</span></pre>
1329                                         </div>
1330                                         
1331                                 </div>
1332
1333                                 
1334                         </div>
1335
1336                 
1337                         <div id="rpcclient-method" class="method-detail ">
1338                                 <a name="M000030"></a>
1339
1340                                 <div class="method-heading">
1341                                 
1342                                         <span class="method-name">rpcclient</span><span
1343                                                 class="method-args">(agent, flags = {})</span>
1344                                         <span class="method-click-advice">click to toggle source</span>
1345                                 
1346                                 </div>
1347
1348                                 <div class="method-description">
1349                                         
1350                                         <p>
1351 Wrapper around MC::RPC#rpcclient that forcably supplies our options hash if
1352 someone forgets to pass in options in an application the filters and other
1353 cli options wouldnt take effect which could have a disasterous outcome
1354 </p>
1355                                         
1356
1357                                         
1358                                         <div class="method-source-code"
1359                                                 id="rpcclient-source">
1360 <pre>
1361      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 352</span>
1362 352:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rpcclient</span>(<span class="ruby-identifier">agent</span>, <span class="ruby-identifier">flags</span> = {})
1363 353:       <span class="ruby-identifier">flags</span>[<span class="ruby-identifier">:options</span>] = <span class="ruby-identifier">options</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">flags</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">:options</span>)
1364 354:       <span class="ruby-identifier">flags</span>[<span class="ruby-identifier">:exit_on_failure</span>] = <span class="ruby-keyword kw">false</span>
1365 355: 
1366 356:       <span class="ruby-keyword kw">super</span>
1367 357:     <span class="ruby-keyword kw">end</span></pre>
1368                                         </div>
1369                                         
1370                                 </div>
1371
1372                                 
1373                         </div>
1374
1375                 
1376                         <div id="run-method" class="method-detail ">
1377                                 <a name="M000023"></a>
1378
1379                                 <div class="method-heading">
1380                                 
1381                                         <span class="method-name">run</span><span
1382                                                 class="method-args">()</span>
1383                                         <span class="method-click-advice">click to toggle source</span>
1384                                 
1385                                 </div>
1386
1387                                 <div class="method-description">
1388                                         
1389                                         <p>
1390 The main logic loop, builds up the options, validate configuration and
1391 calls the main as supplied by the user. Disconnects when done and pass any
1392 exception onto the <a
1393 href="Application.html#M000019">application_failure</a> helper
1394 </p>
1395                                         
1396
1397                                         
1398                                         <div class="method-source-code"
1399                                                 id="run-source">
1400 <pre>
1401      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 295</span>
1402 295:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>
1403 296:       <span class="ruby-identifier">application_parse_options</span>
1404 297: 
1405 298:       <span class="ruby-identifier">validate_configuration</span>(<span class="ruby-identifier">configuration</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:validate_configuration</span>)
1406 299: 
1407 300:       <span class="ruby-constant">Util</span>.<span class="ruby-identifier">setup_windows_sleeper</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">windows?</span>
1408 301: 
1409 302:       <span class="ruby-identifier">main</span>
1410 303: 
1411 304:       <span class="ruby-identifier">disconnect</span>
1412 305: 
1413 306:     <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
1414 307:       <span class="ruby-identifier">application_failure</span>(<span class="ruby-identifier">e</span>)
1415 308:     <span class="ruby-keyword kw">end</span></pre>
1416                                         </div>
1417                                         
1418                                 </div>
1419
1420                                 
1421                         </div>
1422
1423                 
1424                         <div id="validate-cli-options-method" class="method-detail ">
1425                                 <a name="M000014"></a>
1426
1427                                 <div class="method-heading">
1428                                 
1429                                         <span class="method-name">validate_cli_options</span><span
1430                                                 class="method-args">()</span>
1431                                         <span class="method-click-advice">click to toggle source</span>
1432                                 
1433                                 </div>
1434
1435                                 <div class="method-description">
1436                                         
1437                                         <p class="missing-docs">(Not documented)</p>
1438                                         
1439
1440                                         
1441                                         <div class="method-source-code"
1442                                                 id="validate-cli-options-source">
1443 <pre>
1444      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 207</span>
1445 207:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">validate_cli_options</span>
1446 208:       <span class="ruby-comment cmt"># Check all required parameters were set</span>
1447 209:       <span class="ruby-identifier">validation_passed</span> = <span class="ruby-keyword kw">true</span>
1448 210:       <span class="ruby-identifier">application_cli_arguments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">carg</span><span class="ruby-operator">|</span>
1449 211:         <span class="ruby-comment cmt"># Check for required arguments</span>
1450 212:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:required</span>]
1451 213:           <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">configuration</span>[ <span class="ruby-identifier">carg</span>[<span class="ruby-identifier">:name</span>] ]
1452 214:             <span class="ruby-identifier">validation_passed</span> = <span class="ruby-keyword kw">false</span>
1453 215:             <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;The #{carg[:name]} option is mandatory&quot;</span>
1454 216:           <span class="ruby-keyword kw">end</span>
1455 217:         <span class="ruby-keyword kw">end</span>
1456 218:       <span class="ruby-keyword kw">end</span>
1457 219: 
1458 220:       <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">validation_passed</span>
1459 221:         <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">&quot;\nPlease run with --help for detailed help&quot;</span>
1460 222:         <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
1461 223:       <span class="ruby-keyword kw">end</span>
1462 224: 
1463 225: 
1464 226:     <span class="ruby-keyword kw">end</span></pre>
1465                                         </div>
1466                                         
1467                                 </div>
1468
1469                                 
1470                         </div>
1471
1472                 
1473                         <div id="validate-option-method" class="method-detail ">
1474                                 <a name="M000011"></a>
1475
1476                                 <div class="method-heading">
1477                                 
1478                                         <span class="method-name">validate_option</span><span
1479                                                 class="method-args">(blk, name, value)</span>
1480                                         <span class="method-click-advice">click to toggle source</span>
1481                                 
1482                                 </div>
1483
1484                                 <div class="method-description">
1485                                         
1486                                         <p>
1487 Calls the supplied block in an option for validation, an error raised will
1488 log to STDERR and exit the application
1489 </p>
1490                                         
1491
1492                                         
1493                                         <div class="method-source-code"
1494                                                 id="validate-option-source">
1495 <pre>
1496      <span class="ruby-comment cmt"># File lib/mcollective/application.rb, line 100</span>
1497 100:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">validate_option</span>(<span class="ruby-identifier">blk</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
1498 101:       <span class="ruby-identifier">validation_result</span> = <span class="ruby-identifier">blk</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">value</span>)
1499 102: 
1500 103:       <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">validation_result</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">true</span>
1501 104:         <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Validation of #{name} failed: #{validation_result}&quot;</span>
1502 105:         <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
1503 106:       <span class="ruby-keyword kw">end</span>
1504 107:     <span class="ruby-keyword kw">end</span></pre>
1505                                         </div>
1506                                         
1507                                 </div>
1508
1509                                 
1510                         </div>
1511
1512                 
1513                 </div>
1514         
1515
1516         </div>
1517
1518
1519         <div id="rdoc-debugging-section-dump" class="debugging-section">
1520         
1521                 <p>Disabled; run with --debug to generate this.</p>
1522         
1523         </div>
1524
1525         <div id="validator-badges">
1526                 <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1527                 <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1528                         Rdoc Generator</a> 1.1.6</small>.</p>
1529         </div>
1530
1531 </body>
1532 </html>
1533